@@ -3084,6 +3084,19 @@ public void testExtractTableNamesFromNode() {
30843084 Assert .assertEquals (tableNames .get (2 ), "tbl3" );
30853085 Assert .assertEquals (tableNames .get (3 ), "tbl4" );
30863086
3087+ // query with aliases, JOIN, IN/NOT-IN, group-by
3088+ query = "with tmp as (select col1, count(*) from tbl1 where condition1 = filter1 group by col1 order by col2), "
3089+ + "tmp2 as (select A.col1, B.col2 from tbl2 as A JOIN tbl3 AS B on A.key = B.key) "
3090+ + "select sum(col1) from tmp where col1 in (select col1 from tmp2) and col1 not in (select col1 from tbl4) "
3091+ + "order by A.col1" ;
3092+ sqlNodeAndOptions = RequestUtils .parseQuery (query );
3093+ tableNames = CalciteSqlParser .extractTableNamesFromNode (sqlNodeAndOptions .getSqlNode ());
3094+ Assert .assertEquals (tableNames .size (), 4 );
3095+ Assert .assertEquals (tableNames .get (0 ), "tbl1" );
3096+ Assert .assertEquals (tableNames .get (1 ), "tbl2" );
3097+ Assert .assertEquals (tableNames .get (2 ), "tbl3" );
3098+ Assert .assertEquals (tableNames .get (3 ), "tbl4" );
3099+
30873100 // query with aliases, JOIN, IN/NOT-IN, group-by and explain
30883101 query = "explain plan for with tmp as (select col1, count(*) from tbl1 where condition1 = filter1 group by col1), "
30893102 + "tmp2 as (select A.col1, B.col2 from tbl2 as A JOIN tbl3 AS B on A.key = B.key) "
0 commit comments