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]

Reply via email to