test fixes

outer-join-noncolocated-dist-tables
aykutbozkurt 2022-12-22 11:11:29 +03:00
parent a582b093da
commit d747f7476f
7 changed files with 47 additions and 48 deletions

View File

@ -307,7 +307,7 @@ ORDER BY
n_name, n_name,
su_name, su_name,
i_id; i_id;
LOG: join order: [ "stock" ][ reference join "supplier" ][ reference join "nation" ][ reference join "region" ] LOG: join order: [ "stock" ][ reference join(INNER) "supplier" ][ reference join(INNER) "nation" ][ reference join(INNER) "region" ]
su_suppkey | su_name | n_name | i_id | i_name | su_address | su_phone | su_comment su_suppkey | su_name | n_name | i_id | i_name | su_address | su_phone | su_comment
--------------------------------------------------------------------- ---------------------------------------------------------------------
9 | abc | Germany | 3 | Keyboard | def | ghi | jkl 9 | abc | Germany | 3 | Keyboard | def | ghi | jkl
@ -345,7 +345,7 @@ GROUP BY
ORDER BY ORDER BY
revenue DESC, revenue DESC,
o_entry_d; o_entry_d;
LOG: join order: [ "customer" ][ local partition join "oorder" ][ local partition join "new_order" ][ local partition join "order_line" ] LOG: join order: [ "customer" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "new_order" ][ local partition join(INNER) "order_line" ]
ol_o_id | ol_w_id | ol_d_id | revenue | o_entry_d ol_o_id | ol_w_id | ol_d_id | revenue | o_entry_d
--------------------------------------------------------------------- ---------------------------------------------------------------------
10 | 10 | 10 | 10.00 | Fri Oct 17 00:00:00 2008 10 | 10 | 10 | 10.00 | Fri Oct 17 00:00:00 2008
@ -414,7 +414,7 @@ WHERE c_id = o_c_id
AND o_entry_d >= '2007-01-02 00:00:00.000000' AND o_entry_d >= '2007-01-02 00:00:00.000000'
GROUP BY n_name GROUP BY n_name
ORDER BY revenue DESC; ORDER BY revenue DESC;
LOG: join order: [ "customer" ][ local partition join "oorder" ][ local partition join "order_line" ][ local partition join "stock" ][ reference join "supplier" ][ reference join "nation" ][ reference join "region" ] LOG: join order: [ "customer" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "order_line" ][ local partition join(INNER) "stock" ][ reference join(INNER) "supplier" ][ reference join(INNER) "nation" ][ reference join(INNER) "region" ]
n_name | revenue n_name | revenue
--------------------------------------------------------------------- ---------------------------------------------------------------------
Germany | 3.00 Germany | 3.00
@ -472,7 +472,7 @@ ORDER BY
su_nationkey, su_nationkey,
cust_nation, cust_nation,
l_year; l_year;
LOG: join order: [ "order_line" ][ local partition join "oorder" ][ local partition join "customer" ][ reference join "nation" ][ reference join "nation" ][ reference join "supplier" ][ dual partition join "stock" ] LOG: join order: [ "order_line" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "customer" ][ reference join(INNER) "nation" ][ reference join(INNER) "nation" ][ reference join(INNER) "supplier" ][ dual partition join(INNER) "stock" ]
supp_nation | cust_nation | l_year | revenue supp_nation | cust_nation | l_year | revenue
--------------------------------------------------------------------- ---------------------------------------------------------------------
9 | C | 2008 | 3.00 9 | C | 2008 | 3.00
@ -512,7 +512,7 @@ WHERE i_id = s_i_id
AND i_id = ol_i_id AND i_id = ol_i_id
GROUP BY extract(YEAR FROM o_entry_d) GROUP BY extract(YEAR FROM o_entry_d)
ORDER BY l_year; ORDER BY l_year;
LOG: join order: [ "order_line" ][ reference join "item" ][ local partition join "oorder" ][ local partition join "customer" ][ reference join "nation" ][ reference join "region" ][ dual partition join "stock" ][ reference join "supplier" ][ reference join "nation" ] LOG: join order: [ "order_line" ][ reference join(INNER) "item" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "customer" ][ reference join(INNER) "nation" ][ reference join(INNER) "region" ][ dual partition join(INNER) "stock" ][ reference join(INNER) "supplier" ][ reference join(INNER) "nation" ]
l_year | mkt_share l_year | mkt_share
--------------------------------------------------------------------- ---------------------------------------------------------------------
2008 | 0.50000000000000000000 2008 | 0.50000000000000000000
@ -545,7 +545,7 @@ GROUP BY
ORDER BY ORDER BY
n_name, n_name,
l_year DESC; l_year DESC;
LOG: join order: [ "order_line" ][ reference join "item" ][ local partition join "oorder" ][ dual partition join "stock" ][ reference join "supplier" ][ reference join "nation" ] LOG: join order: [ "order_line" ][ reference join(INNER) "item" ][ local partition join(INNER) "oorder" ][ dual partition join(INNER) "stock" ][ reference join(INNER) "supplier" ][ reference join(INNER) "nation" ]
n_name | l_year | sum_profit n_name | l_year | sum_profit
--------------------------------------------------------------------- ---------------------------------------------------------------------
Germany | 2008 | 3.00 Germany | 2008 | 3.00
@ -582,7 +582,7 @@ GROUP BY
c_phone, c_phone,
n_name n_name
ORDER BY revenue DESC; ORDER BY revenue DESC;
LOG: join order: [ "customer" ][ reference join "nation" ][ local partition join "oorder" ][ local partition join "order_line" ] LOG: join order: [ "customer" ][ reference join(INNER) "nation" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "order_line" ]
c_id | c_last | revenue | c_city | c_phone | n_name c_id | c_last | revenue | c_city | c_phone | n_name
--------------------------------------------------------------------- ---------------------------------------------------------------------
10 | John | 10.00 | Some City | +1 000 0000000 | Cambodia 10 | John | 10.00 | Some City | +1 000 0000000 | Cambodia
@ -620,7 +620,7 @@ HAVING sum(s_order_cnt) >
AND su_nationkey = n_nationkey AND su_nationkey = n_nationkey
AND n_name = 'Germany') AND n_name = 'Germany')
ORDER BY ordercount DESC; ORDER BY ordercount DESC;
LOG: join order: [ "stock" ][ reference join "supplier" ][ reference join "nation" ] LOG: join order: [ "stock" ][ reference join(INNER) "supplier" ][ reference join(INNER) "nation" ]
s_i_id | ordercount s_i_id | ordercount
--------------------------------------------------------------------- ---------------------------------------------------------------------
3 | 3 3 | 3
@ -641,7 +641,7 @@ WHERE ol_w_id = o_w_id
AND ol_delivery_d < '2020-01-01 00:00:00.000000' AND ol_delivery_d < '2020-01-01 00:00:00.000000'
GROUP BY o_ol_cnt GROUP BY o_ol_cnt
ORDER BY o_ol_cnt; ORDER BY o_ol_cnt;
LOG: join order: [ "oorder" ][ local partition join "order_line" ] LOG: join order: [ "oorder" ][ local partition join(INNER) "order_line" ]
o_ol_cnt | high_line_count | low_line_count o_ol_cnt | high_line_count | low_line_count
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 2 | 9 1 | 2 | 9
@ -680,7 +680,7 @@ FROM
WHERE ol_i_id = i_id WHERE ol_i_id = i_id
AND ol_delivery_d >= '2007-01-02 00:00:00.000000' AND ol_delivery_d >= '2007-01-02 00:00:00.000000'
AND ol_delivery_d < '2020-01-02 00:00:00.000000'; AND ol_delivery_d < '2020-01-02 00:00:00.000000';
LOG: join order: [ "order_line" ][ reference join "item" ] LOG: join order: [ "order_line" ][ reference join(INNER) "item" ]
promo_revenue promo_revenue
--------------------------------------------------------------------- ---------------------------------------------------------------------
0.00000000000000000000 0.00000000000000000000
@ -710,7 +710,7 @@ FROM
WHERE su_suppkey = supplier_no WHERE su_suppkey = supplier_no
AND total_revenue = (SELECT max(total_revenue) FROM revenue) AND total_revenue = (SELECT max(total_revenue) FROM revenue)
ORDER BY su_suppkey; ORDER BY su_suppkey;
LOG: join order: [ "order_line" ][ dual partition join "stock" ] LOG: join order: [ "order_line" ][ dual partition join(INNER) "stock" ]
su_suppkey | su_name | su_address | su_phone | total_revenue su_suppkey | su_name | su_address | su_phone | total_revenue
--------------------------------------------------------------------- ---------------------------------------------------------------------
9 | abc | def | ghi | 3.00 9 | abc | def | ghi | 3.00
@ -756,7 +756,7 @@ FROM
AND ol_i_id = i_id AND ol_i_id = i_id
GROUP BY i_id) t GROUP BY i_id) t
WHERE ol_i_id = t.i_id; WHERE ol_i_id = t.i_id;
LOG: join order: [ "order_line" ][ reference join "item" ] LOG: join order: [ "order_line" ][ reference join(INNER) "item" ]
avg_yearly avg_yearly
--------------------------------------------------------------------- ---------------------------------------------------------------------
27.5000000000000000 27.5000000000000000
@ -794,7 +794,7 @@ HAVING sum(ol_amount) > 5 -- was 200, but thats too big for the dataset
ORDER BY ORDER BY
sum(ol_amount) DESC, sum(ol_amount) DESC,
o_entry_d; o_entry_d;
LOG: join order: [ "customer" ][ local partition join "oorder" ][ local partition join "order_line" ] LOG: join order: [ "customer" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "order_line" ]
c_last | o_id | o_entry_d | o_ol_cnt | sum c_last | o_id | o_entry_d | o_ol_cnt | sum
--------------------------------------------------------------------- ---------------------------------------------------------------------
John | 10 | Fri Oct 17 00:00:00 2008 | 1 | 10.00 John | 10 | Fri Oct 17 00:00:00 2008 | 1 | 10.00
@ -828,7 +828,7 @@ WHERE ( ol_i_id = i_id
AND ol_quantity <= 10 AND ol_quantity <= 10
AND i_price BETWEEN 1 AND 400000 AND i_price BETWEEN 1 AND 400000
AND ol_w_id IN (1,5,3)); AND ol_w_id IN (1,5,3));
LOG: join order: [ "order_line" ][ reference join "item" ] LOG: join order: [ "order_line" ][ reference join(INNER) "item" ]
revenue revenue
--------------------------------------------------------------------- ---------------------------------------------------------------------
7.00 7.00
@ -858,7 +858,7 @@ WHERE su_suppkey in
AND su_nationkey = n_nationkey AND su_nationkey = n_nationkey
AND n_name = 'Germany' AND n_name = 'Germany'
ORDER BY su_name; ORDER BY su_name;
LOG: join order: [ "stock" ][ reference join "item" ][ dual partition join "order_line" ] LOG: join order: [ "stock" ][ reference join(INNER) "item" ][ dual partition join(INNER) "order_line" ]
su_name | su_address su_name | su_address
--------------------------------------------------------------------- ---------------------------------------------------------------------
abc | def abc | def
@ -963,7 +963,7 @@ ORDER BY
su_nationkey, su_nationkey,
cust_nation, cust_nation,
l_year; l_year;
LOG: join order: [ "order_line" ][ local partition join "oorder" ][ local partition join "customer" ][ reference join "nation" ][ reference join "nation" ][ reference join "supplier" ][ single hash partition join "stock" ] LOG: join order: [ "order_line" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "customer" ][ reference join(INNER) "nation" ][ reference join(INNER) "nation" ][ reference join(INNER) "supplier" ][ single hash partition join(INNER) "stock" ]
supp_nation | cust_nation | l_year | revenue supp_nation | cust_nation | l_year | revenue
--------------------------------------------------------------------- ---------------------------------------------------------------------
9 | C | 2008 | 3.00 9 | C | 2008 | 3.00
@ -1003,7 +1003,7 @@ WHERE i_id = s_i_id
AND i_id = ol_i_id AND i_id = ol_i_id
GROUP BY extract(YEAR FROM o_entry_d) GROUP BY extract(YEAR FROM o_entry_d)
ORDER BY l_year; ORDER BY l_year;
LOG: join order: [ "order_line" ][ reference join "item" ][ local partition join "oorder" ][ local partition join "customer" ][ reference join "nation" ][ reference join "region" ][ single hash partition join "stock" ][ reference join "supplier" ][ reference join "nation" ] LOG: join order: [ "order_line" ][ reference join(INNER) "item" ][ local partition join(INNER) "oorder" ][ local partition join(INNER) "customer" ][ reference join(INNER) "nation" ][ reference join(INNER) "region" ][ single hash partition join(INNER) "stock" ][ reference join(INNER) "supplier" ][ reference join(INNER) "nation" ]
l_year | mkt_share l_year | mkt_share
--------------------------------------------------------------------- ---------------------------------------------------------------------
2008 | 0.50000000000000000000 2008 | 0.50000000000000000000
@ -1036,7 +1036,7 @@ GROUP BY
ORDER BY ORDER BY
n_name, n_name,
l_year DESC; l_year DESC;
LOG: join order: [ "order_line" ][ reference join "item" ][ local partition join "oorder" ][ single hash partition join "stock" ][ reference join "supplier" ][ reference join "nation" ] LOG: join order: [ "order_line" ][ reference join(INNER) "item" ][ local partition join(INNER) "oorder" ][ single hash partition join(INNER) "stock" ][ reference join(INNER) "supplier" ][ reference join(INNER) "nation" ]
n_name | l_year | sum_profit n_name | l_year | sum_profit
--------------------------------------------------------------------- ---------------------------------------------------------------------
Germany | 2008 | 3.00 Germany | 2008 | 3.00

View File

@ -515,15 +515,14 @@ SELECT user_id, value_2 FROM users_table WHERE
value_1 = 101 value_1 = 101
AND value_2 >= 5 AND value_2 >= 5
AND NOT EXISTS (SELECT user_id FROM events_table WHERE event_type=101 AND value_3 > 100 AND user_id!=users_table.user_id); AND NOT EXISTS (SELECT user_id FROM events_table WHERE event_type=101 AND value_3 > 100 AND user_id!=users_table.user_id);
ERROR: complex joins are only supported when all distributed tables are joined on their distribution columns with equal operator ERROR: complex joins are only supported when all distributed tables are co-located and joined on their distribution columns
-- not pushable since the join is not the partition key -- not pushable since the join is not the partition key
INSERT INTO agg_results_third(user_id, value_2_agg) INSERT INTO agg_results_third(user_id, value_2_agg)
SELECT user_id, value_2 FROM users_table WHERE SELECT user_id, value_2 FROM users_table WHERE
value_1 = 101 value_1 = 101
AND value_2 >= 5 AND value_2 >= 5
AND NOT EXISTS (SELECT user_id FROM events_table WHERE event_type=101 AND value_3 > 100 AND event_type=users_table.user_id); AND NOT EXISTS (SELECT user_id FROM events_table WHERE event_type=101 AND value_3 > 100 AND event_type=users_table.user_id);
ERROR: the query contains a join that requires repartitioning ERROR: complex joins are only supported when all distributed tables are co-located and joined on their distribution columns
HINT: Set citus.enable_repartition_joins to on to enable repartitioning
--------------------------------------------------------------------- ---------------------------------------------------------------------
--------------------------------------------------------------------- ---------------------------------------------------------------------
-- Customers who have done X and Y, and satisfy other customer specific criteria -- Customers who have done X and Y, and satisfy other customer specific criteria

View File

@ -51,7 +51,7 @@ EXPLAIN (COSTS FALSE)
SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders
WHERE l_orderkey = o_orderkey; WHERE l_orderkey = o_orderkey;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "lineitem" ][ local partition join "orders" ] LOG: join order: [ "lineitem" ][ local partition join(INNER) "orders" ]
DEBUG: join prunable for intervals [1,6000] and [6001,20000] DEBUG: join prunable for intervals [1,6000] and [6001,20000]
DEBUG: join prunable for intervals [6001,20000] and [1,6000] DEBUG: join prunable for intervals [6001,20000] and [1,6000]
QUERY PLAN QUERY PLAN
@ -100,7 +100,7 @@ EXPLAIN (COSTS FALSE)
SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders
WHERE l_partkey = o_custkey; WHERE l_partkey = o_custkey;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "lineitem" ][ dual partition join "orders" ] LOG: join order: [ "lineitem" ][ dual partition join(INNER) "orders" ]
DEBUG: join prunable for task partitionId 0 and 1 DEBUG: join prunable for task partitionId 0 and 1
DEBUG: join prunable for task partitionId 0 and 2 DEBUG: join prunable for task partitionId 0 and 2
DEBUG: join prunable for task partitionId 0 and 3 DEBUG: join prunable for task partitionId 0 and 3
@ -165,7 +165,7 @@ EXPLAIN (COSTS FALSE)
SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders
WHERE l_partkey = o_custkey; WHERE l_partkey = o_custkey;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "lineitem" ][ dual partition join "orders" ] LOG: join order: [ "lineitem" ][ dual partition join(INNER) "orders" ]
DEBUG: join prunable for task partitionId 0 and 1 DEBUG: join prunable for task partitionId 0 and 1
DEBUG: join prunable for task partitionId 0 and 2 DEBUG: join prunable for task partitionId 0 and 2
DEBUG: join prunable for task partitionId 0 and 3 DEBUG: join prunable for task partitionId 0 and 3
@ -228,7 +228,7 @@ EXPLAIN (COSTS FALSE)
SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders SELECT sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders
WHERE l_partkey = o_custkey; WHERE l_partkey = o_custkey;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "lineitem" ][ dual partition join "orders" ] LOG: join order: [ "lineitem" ][ dual partition join(INNER) "orders" ]
DEBUG: join prunable for task partitionId 0 and 1 DEBUG: join prunable for task partitionId 0 and 1
DEBUG: join prunable for task partitionId 0 and 2 DEBUG: join prunable for task partitionId 0 and 2
DEBUG: join prunable for task partitionId 0 and 3 DEBUG: join prunable for task partitionId 0 and 3

View File

@ -170,7 +170,7 @@ FROM
multi_outer_join_left_hash a LEFT JOIN multi_outer_join_right_reference b ON (l_custkey = r_custkey) multi_outer_join_left_hash a LEFT JOIN multi_outer_join_right_reference b ON (l_custkey = r_custkey)
WHERE WHERE
r_custkey = 5 or r_custkey > 15; r_custkey = 5 or r_custkey > 15;
LOG: join order: [ "multi_outer_join_left_hash" ][ reference join "multi_outer_join_right_reference" ] LOG: join order: [ "multi_outer_join_left_hash" ][ reference join(INNER) "multi_outer_join_right_reference" ]
min | max min | max
--------------------------------------------------------------------- ---------------------------------------------------------------------
5 | 5 5 | 5
@ -275,7 +275,7 @@ SELECT
count(*) count(*)
FROM FROM
multi_outer_join_left_hash a LEFT JOIN multi_outer_join_right_hash b ON (l_nationkey = r_nationkey); multi_outer_join_left_hash a LEFT JOIN multi_outer_join_right_hash b ON (l_nationkey = r_nationkey);
LOG: join order: [ "multi_outer_join_left_hash" ][ dual partition join "multi_outer_join_right_hash" ] LOG: join order: [ "multi_outer_join_left_hash" ][ dual partition join(LEFT) "multi_outer_join_right_hash" ]
ERROR: the query contains a join that requires repartitioning ERROR: the query contains a join that requires repartitioning
HINT: Set citus.enable_repartition_joins to on to enable repartitioning HINT: Set citus.enable_repartition_joins to on to enable repartitioning
-- Anti-join should return customers for which there is no row in the right table -- Anti-join should return customers for which there is no row in the right table
@ -310,7 +310,7 @@ FROM
multi_outer_join_left_hash a LEFT JOIN multi_outer_join_right_reference b ON (l_custkey = r_custkey) multi_outer_join_left_hash a LEFT JOIN multi_outer_join_right_reference b ON (l_custkey = r_custkey)
WHERE WHERE
r_custkey = 21 or r_custkey < 10; r_custkey = 21 or r_custkey < 10;
LOG: join order: [ "multi_outer_join_left_hash" ][ reference join "multi_outer_join_right_reference" ] LOG: join order: [ "multi_outer_join_left_hash" ][ reference join(INNER) "multi_outer_join_right_reference" ]
min | max min | max
--------------------------------------------------------------------- ---------------------------------------------------------------------
21 | 21 21 | 21

View File

@ -1022,7 +1022,7 @@ FROM
WHERE WHERE
colocated_table_test.value_1 = reference_table_test.value_1 colocated_table_test.value_1 = reference_table_test.value_1
ORDER BY 1; ORDER BY 1;
LOG: join order: [ "colocated_table_test" ][ reference join "reference_table_test" ] LOG: join order: [ "colocated_table_test" ][ reference join(INNER) "reference_table_test" ]
value_1 value_1
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1
@ -1036,7 +1036,7 @@ FROM
WHERE WHERE
colocated_table_test.value_2 = reference_table_test.value_2 colocated_table_test.value_2 = reference_table_test.value_2
ORDER BY 1; ORDER BY 1;
LOG: join order: [ "colocated_table_test" ][ reference join "reference_table_test" ] LOG: join order: [ "colocated_table_test" ][ reference join(INNER) "reference_table_test" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1
@ -1050,7 +1050,7 @@ FROM
WHERE WHERE
reference_table_test.value_1 = colocated_table_test.value_1 reference_table_test.value_1 = colocated_table_test.value_1
ORDER BY 1; ORDER BY 1;
LOG: join order: [ "colocated_table_test" ][ reference join "reference_table_test" ] LOG: join order: [ "colocated_table_test" ][ reference join(INNER) "reference_table_test" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1
@ -1065,7 +1065,7 @@ FROM
WHERE WHERE
colocated_table_test.value_2 = reference_table_test.value_2 colocated_table_test.value_2 = reference_table_test.value_2
ORDER BY colocated_table_test.value_2; ORDER BY colocated_table_test.value_2;
LOG: join order: [ "colocated_table_test_2" ][ cartesian product reference join "reference_table_test" ][ dual partition join "colocated_table_test" ] LOG: join order: [ "colocated_table_test_2" ][ cartesian product reference join(INNER) "reference_table_test" ][ dual partition join(INNER) "colocated_table_test" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1
@ -1082,7 +1082,7 @@ FROM
WHERE WHERE
colocated_table_test.value_1 = colocated_table_test_2.value_1 AND colocated_table_test.value_2 = reference_table_test.value_2 colocated_table_test.value_1 = colocated_table_test_2.value_1 AND colocated_table_test.value_2 = reference_table_test.value_2
ORDER BY 1; ORDER BY 1;
LOG: join order: [ "colocated_table_test" ][ reference join "reference_table_test" ][ local partition join "colocated_table_test_2" ] LOG: join order: [ "colocated_table_test" ][ reference join(INNER) "reference_table_test" ][ local partition join(INNER) "colocated_table_test_2" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1
@ -1097,7 +1097,7 @@ FROM
WHERE WHERE
colocated_table_test.value_2 = colocated_table_test_2.value_2 AND colocated_table_test.value_2 = reference_table_test.value_2 colocated_table_test.value_2 = colocated_table_test_2.value_2 AND colocated_table_test.value_2 = reference_table_test.value_2
ORDER BY colocated_table_test.value_2; ORDER BY colocated_table_test.value_2;
LOG: join order: [ "colocated_table_test" ][ reference join "reference_table_test" ][ dual partition join "colocated_table_test_2" ] LOG: join order: [ "colocated_table_test" ][ reference join(INNER) "reference_table_test" ][ dual partition join(INNER) "colocated_table_test_2" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1
@ -1111,7 +1111,7 @@ FROM
WHERE WHERE
colocated_table_test.value_1 = reference_table_test.value_1 AND colocated_table_test_2.value_1 = reference_table_test.value_1 colocated_table_test.value_1 = reference_table_test.value_1 AND colocated_table_test_2.value_1 = reference_table_test.value_1
ORDER BY reference_table_test.value_2; ORDER BY reference_table_test.value_2;
LOG: join order: [ "colocated_table_test" ][ reference join "reference_table_test" ][ dual partition join "colocated_table_test_2" ] LOG: join order: [ "colocated_table_test" ][ reference join(INNER) "reference_table_test" ][ dual partition join(INNER) "colocated_table_test_2" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1

View File

@ -682,5 +682,5 @@ SELECT user_id, value_2 FROM users_table WHERE
AND NOT EXISTS (SELECT user_id FROM events_table WHERE event_type=1 AND value_3 > 1 AND test_join_function(events_table.user_id, users_table.user_id)) AND NOT EXISTS (SELECT user_id FROM events_table WHERE event_type=1 AND value_3 > 1 AND test_join_function(events_table.user_id, users_table.user_id))
ORDER BY 1 DESC, 2 DESC ORDER BY 1 DESC, 2 DESC
LIMIT 3; LIMIT 3;
ERROR: complex joins are only supported when all distributed tables are joined on their distribution columns with equal operator ERROR: complex joins are only supported when all distributed tables are co-located and joined on their distribution columns
DROP FUNCTION test_join_function(int,int); DROP FUNCTION test_join_function(int,int);

View File

@ -36,7 +36,7 @@ FROM
WHERE WHERE
t1.id = t2.sum; t1.id = t2.sum;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ] LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647]
@ -67,7 +67,7 @@ FROM
WHERE WHERE
t2.sum = t1.id; t2.sum = t1.id;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_second" ][ single hash partition join "single_hash_repartition_first" ] LOG: join order: [ "single_hash_repartition_second" ][ single hash partition join(INNER) "single_hash_repartition_first" ]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647]
@ -98,7 +98,7 @@ FROM
WHERE WHERE
r1.id = t1.id AND t2.sum = t1.id; r1.id = t1.id AND t2.sum = t1.id;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_second" ][ reference join "ref_table" ][ single hash partition join "single_hash_repartition_first" ] LOG: join order: [ "single_hash_repartition_second" ][ reference join(INNER) "ref_table" ][ single hash partition join(INNER) "single_hash_repartition_first" ]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647]
@ -129,7 +129,7 @@ FROM
WHERE WHERE
t1.id = t2.id AND t1.sum = t3.id; t1.id = t2.id AND t1.sum = t3.id;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ local partition join "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ] LOG: join order: [ "single_hash_repartition_first" ][ local partition join(INNER) "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647]
@ -172,7 +172,7 @@ FROM
WHERE WHERE
t1.sum = t2.sum AND t1.sum = t3.id; t1.sum = t2.sum AND t1.sum = t3.id;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ][ dual partition join "single_hash_repartition_first" ] LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ][ dual partition join(INNER) "single_hash_repartition_first" ]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647]
@ -243,7 +243,7 @@ DEBUG: dual partition column types do not match
DEBUG: single partition column types do not match DEBUG: single partition column types do not match
DEBUG: single partition column types do not match DEBUG: single partition column types do not match
DEBUG: dual partition column types do not match DEBUG: dual partition column types do not match
LOG: join order: [ "single_hash_repartition_second" ][ cartesian product "single_hash_repartition_first" ][ dual partition join "single_hash_repartition_first" ] LOG: join order: [ "single_hash_repartition_second" ][ cartesian product(INNER) "single_hash_repartition_first" ][ dual partition join(INNER) "single_hash_repartition_first" ]
ERROR: cannot perform distributed planning on this query ERROR: cannot perform distributed planning on this query
DETAIL: Cartesian products are currently unsupported DETAIL: Cartesian products are currently unsupported
-- single repartition query in CTE -- single repartition query in CTE
@ -269,7 +269,7 @@ WHERE
DEBUG: CTE cte1 is going to be inlined via distributed planning DEBUG: CTE cte1 is going to be inlined via distributed planning
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ] LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ]
DEBUG: push down of limit count: 50 DEBUG: push down of limit count: 50
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
@ -294,7 +294,7 @@ DETAIL: Creating dependency on merge taskId 20
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
DEBUG: generating subplan XXX_1 for CTE cte1: SELECT ((t1.id)::double precision OPERATOR(pg_catalog.*) t2.avg) AS data FROM single_hash_repartition.single_hash_repartition_first t1, single_hash_repartition.single_hash_repartition_second t2 WHERE ((t1.id OPERATOR(pg_catalog.=) t2.sum) AND (t1.sum OPERATOR(pg_catalog.>) 5000)) ORDER BY ((t1.id)::double precision OPERATOR(pg_catalog.*) t2.avg) DESC LIMIT 50 DEBUG: generating subplan XXX_1 for CTE cte1: SELECT ((t1.id)::double precision OPERATOR(pg_catalog.*) t2.avg) AS data FROM single_hash_repartition.single_hash_repartition_first t1, single_hash_repartition.single_hash_repartition_second t2 WHERE ((t1.id OPERATOR(pg_catalog.=) t2.sum) AND (t1.sum OPERATOR(pg_catalog.>) 5000)) ORDER BY ((t1.id)::double precision OPERATOR(pg_catalog.*) t2.avg) DESC LIMIT 50
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ] LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ]
DEBUG: push down of limit count: 50 DEBUG: push down of limit count: 50
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
@ -326,7 +326,7 @@ FROM
WHERE WHERE
t1.id = t2.sum AND t2.sum = t3.id; t1.id = t2.sum AND t2.sum = t3.id;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ][ single hash partition join "single_hash_repartition_second" ] LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ][ single hash partition join(INNER) "single_hash_repartition_second" ]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647]
@ -379,7 +379,7 @@ WHERE
t1.id = t2.sum AND t2.id = t3.sum t1.id = t2.sum AND t2.id = t3.sum
LIMIT 10; LIMIT 10;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_second" ][ single hash partition join "single_hash_repartition_second" ][ single hash partition join "single_hash_repartition_first" ] LOG: join order: [ "single_hash_repartition_second" ][ single hash partition join(INNER) "single_hash_repartition_second" ][ single hash partition join(INNER) "single_hash_repartition_first" ]
DEBUG: push down of limit count: 10 DEBUG: push down of limit count: 10
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
@ -436,7 +436,7 @@ FROM
WHERE WHERE
t1.id = t2.sum; t1.id = t2.sum;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ] LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ]
DEBUG: join prunable for intervals [-2147483648,-1073741826] and [-1073741824,-2] DEBUG: join prunable for intervals [-2147483648,-1073741826] and [-1073741824,-2]
DEBUG: join prunable for intervals [-2147483648,-1073741826] and [0,1073741822] DEBUG: join prunable for intervals [-2147483648,-1073741826] and [0,1073741822]
DEBUG: join prunable for intervals [-2147483648,-1073741826] and [1073741824,2147483646] DEBUG: join prunable for intervals [-2147483648,-1073741826] and [1073741824,2147483646]
@ -469,7 +469,7 @@ FROM
WHERE WHERE
t1.sum = t2.id; t1.sum = t2.id;
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join "single_hash_repartition_second" ] LOG: join order: [ "single_hash_repartition_first" ][ single hash partition join(INNER) "single_hash_repartition_second" ]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [-1073741824,-1]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [0,1073741823]
DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647] DEBUG: join prunable for intervals [-2147483648,-1073741825] and [1073741824,2147483647]