This is an automated email from the ASF dual-hosted git repository. somandal pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push: new ed62f82a88 Fix up the schema validation to perform most validations for virtual columns as well (#16091) ed62f82a88 is described below commit ed62f82a88dd469e02860025ee3e542435c83d06 Author: Sonam Mandal <sonam.man...@startree.ai> AuthorDate: Thu Jun 12 10:13:14 2025 -0700 Fix up the schema validation to perform most validations for virtual columns as well (#16091) --- .../pinot/segment/local/utils/SchemaUtils.java | 54 +++++++++++----------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/SchemaUtils.java b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/SchemaUtils.java index 45e6754052..32aa7ab097 100644 --- a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/SchemaUtils.java +++ b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/SchemaUtils.java @@ -117,37 +117,37 @@ public class SchemaUtils { Set<String> argumentColumns = new HashSet<>(); Set<String> primaryKeyColumnCandidates = new HashSet<>(); for (FieldSpec fieldSpec : schema.getAllFieldSpecs()) { + String column = fieldSpec.getName(); + Preconditions.checkState(!StringUtils.containsWhitespace(column), + "The column name \"%s\" should not contain blank space.", column); if (!fieldSpec.isVirtualColumn()) { - String column = fieldSpec.getName(); - Preconditions.checkState(!StringUtils.containsWhitespace(column), - "The column name \"%s\" should not contain blank space.", column); primaryKeyColumnCandidates.add(column); - String transformFunction = fieldSpec.getTransformFunction(); - if (transformFunction != null) { - try { - List<String> arguments = FunctionEvaluatorFactory.getExpressionEvaluator(fieldSpec).getArguments(); - Preconditions.checkState(!arguments.contains(column), - "The arguments of transform function %s should not contain the destination column %s", - transformFunction, column); - transformedColumns.add(column); - argumentColumns.addAll(arguments); - } catch (Exception e) { - throw new IllegalStateException( - "Exception in getting arguments for transform function '" + transformFunction + "' for column '" - + column + "'", e); - } - } - if (fieldSpec.getFieldType() == FieldSpec.FieldType.TIME) { - validateTimeFieldSpec((TimeFieldSpec) fieldSpec); - } - if (fieldSpec.getFieldType() == FieldSpec.FieldType.DATE_TIME) { - validateDateTimeFieldSpec((DateTimeFieldSpec) fieldSpec); - } - if (fieldSpec.getDataType().equals(FieldSpec.DataType.FLOAT) || fieldSpec.getDataType() - .equals(FieldSpec.DataType.DOUBLE)) { - validateDefaultIsNotNaN(fieldSpec); + } + String transformFunction = fieldSpec.getTransformFunction(); + if (transformFunction != null) { + try { + List<String> arguments = FunctionEvaluatorFactory.getExpressionEvaluator(fieldSpec).getArguments(); + Preconditions.checkState(!arguments.contains(column), + "The arguments of transform function %s should not contain the destination column %s", + transformFunction, column); + transformedColumns.add(column); + argumentColumns.addAll(arguments); + } catch (Exception e) { + throw new IllegalStateException( + "Exception in getting arguments for transform function '" + transformFunction + "' for column '" + + column + "'", e); } } + if (fieldSpec.getFieldType() == FieldSpec.FieldType.TIME) { + validateTimeFieldSpec((TimeFieldSpec) fieldSpec); + } + if (fieldSpec.getFieldType() == FieldSpec.FieldType.DATE_TIME) { + validateDateTimeFieldSpec((DateTimeFieldSpec) fieldSpec); + } + if (fieldSpec.getDataType().equals(FieldSpec.DataType.FLOAT) || fieldSpec.getDataType() + .equals(FieldSpec.DataType.DOUBLE)) { + validateDefaultIsNotNaN(fieldSpec); + } if (!fieldSpec.isSingleValueField()) { validateMultiValueCompatibility(fieldSpec); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org