This is an automated email from the ASF dual-hosted git repository. xiangfu pushed a commit to branch make_transform_functions_support_underscore_in_it in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
commit f0710637200ef99733e67ecf9aaacac18149cf44 Author: Xiang Fu <[email protected]> AuthorDate: Thu Oct 8 16:23:50 2020 -0700 Make transform functions support underscore in the query functions --- .../operator/transform/function/TransformFunctionFactory.java | 9 +++++++-- .../src/test/java/org/apache/pinot/queries/IdSetQueriesTest.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java index 6bdc701..287ba08 100644 --- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java +++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java @@ -23,6 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import org.apache.commons.lang3.StringUtils; import org.apache.pinot.common.function.FunctionInfo; import org.apache.pinot.common.function.FunctionRegistry; import org.apache.pinot.common.function.TransformFunctionType; @@ -148,7 +149,7 @@ public class TransformFunctionFactory { "Caught exception while instantiating transform function from class: " + transformFunctionClass.toString(), e); } - String transformFunctionName = transformFunction.getName().toLowerCase(); + String transformFunctionName = canonicalize(transformFunction.getName()); if (TRANSFORM_FUNCTION_MAP.containsKey(transformFunctionName)) { throw new IllegalArgumentException("Transform function: " + transformFunctionName + " already exists"); } @@ -167,7 +168,7 @@ public class TransformFunctionFactory { switch (expression.getType()) { case FUNCTION: FunctionContext function = expression.getFunction(); - String functionName = function.getFunctionName(); + String functionName = canonicalize(function.getFunctionName()); List<ExpressionContext> arguments = function.getArguments(); int numArguments = arguments.size(); @@ -210,4 +211,8 @@ public class TransformFunctionFactory { throw new IllegalStateException(); } } + + private static String canonicalize(String functionName) { + return StringUtils.remove(functionName, '_').toLowerCase(); + } } diff --git a/pinot-core/src/test/java/org/apache/pinot/queries/IdSetQueriesTest.java b/pinot-core/src/test/java/org/apache/pinot/queries/IdSetQueriesTest.java index 0ee4f0e..df83cab 100644 --- a/pinot-core/src/test/java/org/apache/pinot/queries/IdSetQueriesTest.java +++ b/pinot-core/src/test/java/org/apache/pinot/queries/IdSetQueriesTest.java @@ -425,7 +425,7 @@ public class IdSetQueriesTest extends BaseQueriesTest { } { - String query = "SELECT COUNT(*) FROM testTable where INIDSET(intColumn, '" + serializedIdSet + "') = 0"; + String query = "SELECT COUNT(*) FROM testTable where IN_ID_SET(intColumn, '" + serializedIdSet + "') = 0"; AggregationOperator aggregationOperator = getOperatorForPqlQuery(query); IntermediateResultsBlock resultsBlock = aggregationOperator.nextBlock(); QueriesTestUtils.testInnerSegmentExecutionStatistics(aggregationOperator.getExecutionStatistics(), --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
