Jackie-Jiang commented on code in PR #11117:
URL: https://github.com/apache/pinot/pull/11117#discussion_r1274111424
##########
pinot-common/src/main/java/org/apache/pinot/common/function/FunctionRegistry.java:
##########
@@ -216,5 +216,11 @@ public static Object clpDecode(String logtypeFieldName,
String dictVarsFieldName
String defaultValue) {
throw new UnsupportedOperationException("Placeholder scalar function,
should not reach here");
}
+
+ @ScalarFunction(names = {"arrayToMV", "array_to_mv", "arrayToMultiValue",
"array_to_multi_value"},
+ isPlaceholder = true)
+ public static String arrayToMultiValue(Object multiValue) {
Review Comment:
(minor)
```suggestion
public static String arrayToMV(Object array) {
```
##########
pinot-query-planner/src/main/java/org/apache/pinot/query/parser/CalciteRexExpressionParser.java:
##########
@@ -199,6 +203,12 @@ private static Expression
compileFunctionExpression(RexExpression.FunctionCall r
return compileOrExpression(rexCall, pinotQuery);
case OTHER_FUNCTION:
functionName = rexCall.getFunctionName();
+ // Special handle for leaf stage multi-value columns, as the default
behavior for filter and group by is not
+ // sql standard, so need to use `array_to_mv` to convert the array to
v1 multi-value column for behavior
+ // consistency meanwhile not violating the sql standard.
+ if (ARRAY_TO_MV_ALIAS.contains(functionName)) {
Review Comment:
Is function name always upper case?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]