diff --git a/presto-native-sidecar-plugin/src/test/java/com/facebook/presto/sidecar/TestNativeSidecarPlugin.java b/presto-native-sidecar-plugin/src/test/java/com/facebook/presto/sidecar/TestNativeSidecarPlugin.java index 91f18f18259db..36a5d67a31285 100644 --- a/presto-native-sidecar-plugin/src/test/java/com/facebook/presto/sidecar/TestNativeSidecarPlugin.java +++ b/presto-native-sidecar-plugin/src/test/java/com/facebook/presto/sidecar/TestNativeSidecarPlugin.java @@ -127,6 +127,8 @@ public void testShowFunctions() @Test public void testGeneralQueries() { + assertQuery("SELECT ARRAY['abc']"); + assertQuery("SELECT ARRAY[1, 2, 3]"); assertQuery("SELECT substr(comment, 1, 10), length(comment), trim(comment) FROM orders"); assertQuery("SELECT substr(comment, 1, 10), length(comment), ltrim(comment) FROM orders"); assertQuery("SELECT substr(comment, 1, 10), length(comment), rtrim(comment) FROM orders"); @@ -170,6 +172,7 @@ public void testAggregateFunctions() assertQuery("SELECT checksum(from_unixtime(orderkey, '+01:00')) FROM lineitem WHERE orderkey < 20"); assertQuerySucceeds("SELECT shuffle(array_sort(quantities)) FROM orders_ex"); assertQuery("SELECT array_sort(shuffle(quantities)) FROM orders_ex"); + assertQuery("SELECT orderkey, array_sort(reduce_agg(linenumber, CAST(array[] as ARRAY(INTEGER)), (s, x) -> s || x, (s, s2) -> s || s2)) FROM lineitem group by orderkey"); } @Test @@ -188,8 +191,6 @@ public void testArraySort() { assertQueryFails("SELECT array_sort(quantities, (x, y) -> if (x < y, 1, if (x > y, -1, 0))) FROM orders_ex", "line 1:31: Expected a lambda that takes 1 argument\\(s\\) but got 2"); - assertQueryFails("SELECT orderkey, array_sort(reduce_agg(linenumber, CAST(array[] as ARRAY(INTEGER)), (s, x) -> s || x, (s, s2) -> s || s2)) FROM lineitem group by orderkey", - ".*Unexpected parameters \\(array\\(integer\\), array\\(integer\\)\\) for function native.default.concat.*"); } @Test diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java index 4f777c747cd61..56b9423553c6a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java @@ -160,7 +160,7 @@ public SqlInvokedFunction( this.description = requireNonNull(description, "description is null"); this.routineCharacteristics = requireNonNull(routineCharacteristics, "routineCharacteristics is null"); this.body = requireNonNull(body, "body is null"); - this.signature = new Signature(functionName, kind, typeVariableConstraints, emptyList(), returnType, getArgumentTypes(parameters), false); + this.signature = new Signature(functionName, kind, typeVariableConstraints, emptyList(), returnType, getArgumentTypes(parameters), variableArity); this.functionId = requireNonNull(functionId, "functionId is null"); this.variableArity = variableArity; this.functionVersion = requireNonNull(version, "version is null");