From c9982654edc7ac6ed43a845fdde4917bd082d158 Mon Sep 17 00:00:00 2001 From: Ran Tao Date: Fri, 27 Oct 2023 21:23:29 +0800 Subject: [PATCH] Lint --- .../calcite/test/SqlToRelConverterTest.java | 24 +++++++++++++++ .../calcite/test/SqlToRelConverterTest.xml | 30 +++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java index a38ebf0b3be2..98b0c5c134dd 100644 --- a/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java +++ b/core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java @@ -4934,6 +4934,30 @@ void checkUserDefinedOrderByOver(NullCollation nullCollation) { .convertsTo("${planNotExpanded}"); } + /** + * Test case for + * [CALCITE-6028] + * SqlToRelConverter#substituteSubQuery gives NullPointerException when convert + * IN-subquery within JOIN if value size of IN exceeds IN_SUBQUERY_THRESHOLD. + */ + @Test void testInSubQueryWithinJoin0() { + String sql = "SELECT t1.x FROM (values (1, 'a')) as t1(x, y)\n" + + "left join (values (1, 'b')) as t2(x, y)\n" + + "ON t1.x=t2.x AND t1.x IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)"; + sql(sql).ok(); + } + + /** + * As {@link #testInSubQueryWithinJoin0()} but size of IN value list < 20 + */ + @Test void testInSubQueryWithinJoin1() { + String sql = "SELECT t1.x FROM (values (1, 'a')) as t1(x, y)\n" + + "left join (values (1, 'b')) as t2(x, y)\n" + + "ON t1.x=t2.x AND t1.x IN (1,2,3,4,5)"; + sql(sql).ok(); + } + + /** * Test case for * [CALCITE-4295] diff --git a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml index b914e14dc749..3c1b92ea54bf 100644 --- a/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml +++ b/core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml @@ -2779,6 +2779,36 @@ FROM dept, emp WHERE emp.deptno = dept.deptno AND emp.sal < ( )]]> + + + + + + + + + + + + + + + +