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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]