From cb5154cf03cba5c35ace5edbdcaa29af97faafab Mon Sep 17 00:00:00 2001 From: Jelte Fennema Date: Thu, 16 Jan 2020 16:39:05 +0100 Subject: [PATCH] Add more failing tests, of which some have bad error messages --- .../ch_bench_subquery_repartition.out | 47 +++++++++++++++++++ .../sql/ch_bench_subquery_repartition.sql | 45 ++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/src/test/regress/expected/ch_bench_subquery_repartition.out b/src/test/regress/expected/ch_bench_subquery_repartition.out index 371829fc1..b39c0710d 100644 --- a/src/test/regress/expected/ch_bench_subquery_repartition.out +++ b/src/test/regress/expected/ch_bench_subquery_repartition.out @@ -133,6 +133,53 @@ select s_i_id s_i_id not in (select i_im_id from item) AND s_i_id = ol_i_id; ERROR: complex joins are only supported when all distributed tables are co-located and joined on their distribution columns +-- Multiple subqueries are supported IN and a NOT IN when no repartition join +-- is necessary and the IN subquery returns unique results +select s_i_id + from stock + where + s_i_id in (select i_id from item) + AND s_i_id not in (select i_im_id from item); +ERROR: syntax error at or near "SubPlan" +CONTEXT: while executing command on localhost:xxxxx +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where both subqueries return unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_id from item) + AND s_i_id not in (select i_id from item) + AND s_i_id = ol_i_id; +ERROR: syntax error at or near "SubPlan" +CONTEXT: while executing command on localhost:xxxxx +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where the IN subquery returns unique results and the NOT IN returns non unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_id from item) + AND s_i_id not in (select i_im_id from item) + AND s_i_id = ol_i_id; +ERROR: syntax error at or near "SubPlan" +CONTEXT: while executing command on localhost:xxxxx +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where the IN subquery returns non unique results and the NOT IN returns unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_im_id from item) + AND s_i_id not in (select i_id from item) + AND s_i_id = ol_i_id; +ERROR: complex joins are only supported when all distributed tables are co-located and joined on their distribution columns +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where both subqueries return non unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_im_id from item) + AND s_i_id not in (select i_im_id from item) + AND s_i_id = ol_i_id; +ERROR: complex joins are only supported when all distributed tables are co-located and joined on their distribution columns -- Actual CHbenCHmark query is supported select su_name, su_address from supplier, nation diff --git a/src/test/regress/sql/ch_bench_subquery_repartition.sql b/src/test/regress/sql/ch_bench_subquery_repartition.sql index 04e7e23fa..1821972d0 100644 --- a/src/test/regress/sql/ch_bench_subquery_repartition.sql +++ b/src/test/regress/sql/ch_bench_subquery_repartition.sql @@ -112,6 +112,51 @@ select s_i_id s_i_id not in (select i_im_id from item) AND s_i_id = ol_i_id; +-- Multiple subqueries are supported IN and a NOT IN when no repartition join +-- is necessary and the IN subquery returns unique results +select s_i_id + from stock + where + s_i_id in (select i_id from item) + AND s_i_id not in (select i_im_id from item); + +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where both subqueries return unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_id from item) + AND s_i_id not in (select i_id from item) + AND s_i_id = ol_i_id; + +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where the IN subquery returns unique results and the NOT IN returns non unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_id from item) + AND s_i_id not in (select i_im_id from item) + AND s_i_id = ol_i_id; + + +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where the IN subquery returns non unique results and the NOT IN returns unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_im_id from item) + AND s_i_id not in (select i_id from item) + AND s_i_id = ol_i_id; + +-- Subquery + repartion is not supported when it contains both an IN and a NOT IN +-- where both subqueries return non unique results +select s_i_id + from stock, order_line + where + s_i_id in (select i_im_id from item) + AND s_i_id not in (select i_im_id from item) + AND s_i_id = ol_i_id; + -- Actual CHbenCHmark query is supported select su_name, su_address