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

Reply via email to