Skip to content

Commit 25e1533

Browse files
jiwen624findepi
authored andcommitted
Fix incorrect neverFails=true on array_union and array_intersect
1 parent 92ee69b commit 25e1533

3 files changed

Lines changed: 20 additions & 2 deletions

File tree

core/trino-main/src/main/java/io/trino/operator/scalar/ArrayIntersectFunction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import static io.trino.spi.function.OperatorType.HASH_CODE;
3333
import static io.trino.spi.function.OperatorType.IDENTICAL;
3434

35-
@ScalarFunction(value = "array_intersect", neverFails = true)
35+
@ScalarFunction(value = "array_intersect")
3636
@Description("Intersects elements of the two given arrays")
3737
public final class ArrayIntersectFunction
3838
{

core/trino-main/src/main/java/io/trino/operator/scalar/ArrayUnionFunction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import static io.trino.spi.function.OperatorType.IDENTICAL;
3737
import static io.trino.spi.type.BigintType.BIGINT;
3838

39-
@ScalarFunction(value = "array_union", neverFails = true)
39+
@ScalarFunction(value = "array_union")
4040
@Description("Union elements of the two given arrays")
4141
public final class ArrayUnionFunction
4242
{

core/trino-main/src/test/java/io/trino/type/TestArrayOperators.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,24 @@ public void testArraySize()
299299
.hasErrorCode(EXCEEDED_FUNCTION_MEMORY_LIMIT);
300300
}
301301

302+
@Test
303+
public void testArrayUnionSize()
304+
{
305+
int size = toIntExact(MAX_FUNCTION_MEMORY.toBytes() + 1);
306+
assertTrinoExceptionThrownBy(
307+
() -> assertions.expression("array_union(ARRAY[lpad('', %1$s , 'x')], ARRAY[lpad('', %1$s , 'y'), lpad('', %1$s , 'z')])".formatted(size)).evaluate())
308+
.hasErrorCode(EXCEEDED_FUNCTION_MEMORY_LIMIT);
309+
}
310+
311+
@Test
312+
public void testArrayIntersectSize()
313+
{
314+
int size = toIntExact(MAX_FUNCTION_MEMORY.toBytes() + 1);
315+
assertTrinoExceptionThrownBy(
316+
() -> assertions.expression("array_intersect(ARRAY[lpad('', %1$s , 'x'), lpad('', %1$s , 'y')], ARRAY[lpad('', %1$s , 'x'), lpad('', %1$s , 'y')])".formatted(size)).evaluate())
317+
.hasErrorCode(EXCEEDED_FUNCTION_MEMORY_LIMIT);
318+
}
319+
302320
@Test
303321
public void testArrayToJsonSmoke()
304322
{

0 commit comments

Comments
 (0)