update repartition join tests for check-multi

pull/3850/head
Sait Talha Nisanci 2020-05-19 13:51:40 +03:00
parent 43fc86646c
commit 1c2ee39f15
34 changed files with 282 additions and 417 deletions

View File

@ -404,15 +404,16 @@ select * FROM (
select * FROM ( select * FROM (
SELECT key k, avg(distinct floor(agg1.val/2)) m from aggdata agg1 SELECT key k, avg(distinct floor(agg1.val/2)) m from aggdata agg1
group by key group by key
) subq; ) subq
order by k,m;
k | m k | m
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 1 | 1
5 |
3 | 2
7 | 4
6 |
2 | 1.5 2 | 1.5
3 | 2
5 |
6 |
7 | 4
9 | 0 9 | 0
(7 rows) (7 rows)

View File

@ -3,6 +3,7 @@
-- --
-- Tests to log cross shard queries according to error log level -- Tests to log cross shard queries according to error log level
-- --
SET citus.enable_repartition_joins to ON;
-- Create a distributed table and add data to it -- Create a distributed table and add data to it
CREATE TABLE multi_task_table CREATE TABLE multi_task_table
( (

View File

@ -5,6 +5,7 @@ SET citus.next_shard_id TO 570000;
\a\t \a\t
RESET citus.task_executor_type; RESET citus.task_executor_type;
SET citus.explain_distributed_queries TO on; SET citus.explain_distributed_queries TO on;
SET citus.enable_repartition_joins to ON;
-- Function that parses explain output as JSON -- Function that parses explain output as JSON
CREATE FUNCTION explain_json(query text) CREATE FUNCTION explain_json(query text)
RETURNS jsonb RETURNS jsonb
@ -947,7 +948,7 @@ SET citus.task_executor_type TO 'task-tracker';
EXPLAIN (COSTS FALSE) EXPLAIN (COSTS FALSE)
SELECT avg(l_linenumber) FROM lineitem WHERE l_orderkey > 9030; SELECT avg(l_linenumber) FROM lineitem WHERE l_orderkey > 9030;
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 1 Task Count: 1
Tasks Shown: All Tasks Shown: All
-> Task -> Task
@ -963,7 +964,7 @@ EXPLAIN (COSTS FALSE)
AND o_custkey = c_custkey AND o_custkey = c_custkey
AND l_suppkey = s_suppkey; AND l_suppkey = s_suppkey;
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 1 Task Count: 1
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -989,7 +990,7 @@ EXPLAIN (COSTS FALSE, FORMAT JSON)
{ {
"Node Type": "Custom Scan", "Node Type": "Custom Scan",
"Parent Relationship": "Outer", "Parent Relationship": "Outer",
"Custom Plan Provider": "Citus Task-Tracker", "Custom Plan Provider": "Citus Adaptive",
"Parallel Aware": false, "Parallel Aware": false,
"Distributed Query": { "Distributed Query": {
"Job": { "Job": {
@ -1038,7 +1039,7 @@ EXPLAIN (COSTS FALSE, FORMAT XML)
<Plan> <Plan>
<Node-Type>Custom Scan</Node-Type> <Node-Type>Custom Scan</Node-Type>
<Parent-Relationship>Outer</Parent-Relationship> <Parent-Relationship>Outer</Parent-Relationship>
<Custom-Plan-Provider>Citus Task-Tracker</Custom-Plan-Provider> <Custom-Plan-Provider>Citus Adaptive</Custom-Plan-Provider>
<Parallel-Aware>false</Parallel-Aware> <Parallel-Aware>false</Parallel-Aware>
<Distributed-Query> <Distributed-Query>
<Job> <Job>
@ -1097,7 +1098,7 @@ EXPLAIN (COSTS FALSE, FORMAT YAML)
Plans: Plans:
- Node Type: "Custom Scan" - Node Type: "Custom Scan"
Parent Relationship: "Outer" Parent Relationship: "Outer"
Custom Plan Provider: "Citus Task-Tracker" Custom Plan Provider: "Citus Adaptive"
Parallel Aware: false Parallel Aware: false
Distributed Query: Distributed Query:
Job: Job:
@ -1114,7 +1115,7 @@ Aggregate
-- ensure distributed plans don't break -- ensure distributed plans don't break
EXPLAIN (COSTS FALSE) SELECT avg(l_linenumber) FROM lineitem; EXPLAIN (COSTS FALSE) SELECT avg(l_linenumber) FROM lineitem;
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 2 Task Count: 2
Tasks Shown: One of 2 Tasks Shown: One of 2
-> Task -> Task
@ -1126,7 +1127,7 @@ PREPARE task_tracker_query AS
SELECT avg(l_linenumber) FROM lineitem WHERE l_orderkey > 9030; SELECT avg(l_linenumber) FROM lineitem WHERE l_orderkey > 9030;
EXPLAIN (COSTS FALSE) EXECUTE task_tracker_query; EXPLAIN (COSTS FALSE) EXECUTE task_tracker_query;
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 1 Task Count: 1
Tasks Shown: All Tasks Shown: All
-> Task -> Task

View File

@ -6,6 +6,7 @@ SET citus.next_shard_id TO 650000;
SET citus.explain_distributed_queries TO off; SET citus.explain_distributed_queries TO off;
SET citus.log_multi_join_order TO TRUE; SET citus.log_multi_join_order TO TRUE;
SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise
SET citus.enable_repartition_joins to ON;
SET citus.shard_count to 2; SET citus.shard_count to 2;
SET citus.shard_replication_factor to 1; SET citus.shard_replication_factor to 1;
RESET client_min_messages; RESET client_min_messages;
@ -79,7 +80,7 @@ DEBUG: join prunable for intervals [1,5986] and [8997,14947]
DEBUG: join prunable for intervals [8997,14947] and [1,5986] DEBUG: join prunable for intervals [8997,14947] and [1,5986]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Custom Scan (Citus Task-Tracker) Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(2 rows) (2 rows)
@ -95,7 +96,7 @@ LOG: join order: [ "lineitem" ][ local partition join "orders" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -110,7 +111,7 @@ LOG: join order: [ "orders" ][ single range partition join "lineitem_hash" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -122,7 +123,7 @@ LOG: join order: [ "orders_hash" ][ local partition join "lineitem_hash" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -134,7 +135,7 @@ LOG: join order: [ "customer_hash" ][ reference join "nation" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -147,7 +148,7 @@ LOG: join order: [ "orders" ][ dual partition join "lineitem" ][ dual partition
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -160,7 +161,7 @@ LOG: join order: [ "orders" ][ dual partition join "customer_hash" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -173,7 +174,7 @@ LOG: join order: [ "orders_hash" ][ single range partition join "customer_appen
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -198,7 +199,7 @@ LOG: join order: [ "users_table" ][ local partition join "events_table" ][ loca
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)

View File

@ -6,6 +6,7 @@ SET citus.next_shard_id TO 660000;
SET citus.explain_distributed_queries TO off; SET citus.explain_distributed_queries TO off;
SET citus.log_multi_join_order TO TRUE; SET citus.log_multi_join_order TO TRUE;
SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise
SET citus.enable_repartition_joins to ON;
SET client_min_messages TO LOG; SET client_min_messages TO LOG;
-- The following queries are basically the same as the ones in tpch_small -- The following queries are basically the same as the ones in tpch_small
-- except that more data has been loaded into customer and part tables. Therefore, -- except that more data has been loaded into customer and part tables. Therefore,
@ -25,7 +26,7 @@ LOG: join order: [ "lineitem" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -60,7 +61,7 @@ LOG: join order: [ "orders" ][ local partition join "lineitem" ][ single range
Sort Key: (sum(remote_scan.revenue)) DESC, remote_scan.o_orderdate Sort Key: (sum(remote_scan.revenue)) DESC, remote_scan.o_orderdate
-> HashAggregate -> HashAggregate
Group Key: remote_scan.l_orderkey, remote_scan.o_orderdate, remote_scan.o_shippriority Group Key: remote_scan.l_orderkey, remote_scan.o_orderdate, remote_scan.o_shippriority
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(6 rows) (6 rows)
@ -104,7 +105,7 @@ LOG: join order: [ "orders" ][ local partition join "lineitem" ][ single range
Sort Key: (sum(remote_scan.revenue)) DESC Sort Key: (sum(remote_scan.revenue)) DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.c_custkey, remote_scan.c_name, remote_scan.c_acctbal, remote_scan.c_phone, remote_scan.n_name, remote_scan.c_address, remote_scan.c_comment Group Key: remote_scan.c_custkey, remote_scan.c_name, remote_scan.c_acctbal, remote_scan.c_phone, remote_scan.n_name, remote_scan.c_address, remote_scan.c_comment
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(6 rows) (6 rows)
@ -143,7 +144,7 @@ LOG: join order: [ "lineitem" ][ single range partition join "part_append" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(3 rows) (3 rows)
@ -164,7 +165,7 @@ LOG: join order: [ "lineitem" ][ local partition join "orders" ][ single range
--------------------------------------------------------------------- ---------------------------------------------------------------------
HashAggregate HashAggregate
Group Key: remote_scan.l_partkey Group Key: remote_scan.l_partkey
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
explain statements for distributed queries are not enabled explain statements for distributed queries are not enabled
(4 rows) (4 rows)

View File

@ -142,6 +142,7 @@ SELECT count(*) FROM test WHERE id = 1;
(1 row) (1 row)
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
SELECT count(*), min(current_user) FROM test; SELECT count(*), min(current_user) FROM test;
count | min count | min
--------------------------------------------------------------------- ---------------------------------------------------------------------
@ -230,6 +231,7 @@ SELECT count(*) FROM test WHERE id = 1;
(1 row) (1 row)
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
SELECT count(*), min(current_user) FROM test; SELECT count(*), min(current_user) FROM test;
count | min count | min
--------------------------------------------------------------------- ---------------------------------------------------------------------
@ -288,6 +290,7 @@ ERROR: permission denied for table test
SELECT count(*) FROM test WHERE id = 1; SELECT count(*) FROM test WHERE id = 1;
ERROR: permission denied for table test ERROR: permission denied for table test
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
SELECT count(*), min(current_user) FROM test; SELECT count(*), min(current_user) FROM test;
ERROR: permission denied for table test ERROR: permission denied for table test
-- test re-partition query -- test re-partition query

View File

@ -4,6 +4,7 @@
SET citus.next_shard_id TO 1660000; SET citus.next_shard_id TO 1660000;
SET citus.shard_count TO 4; SET citus.shard_count TO 4;
SET citus.shard_replication_factor TO 1; SET citus.shard_replication_factor TO 1;
SET citus.enable_repartition_joins to ON;
-- --
-- Distributed Partitioned Table Creation Tests -- Distributed Partitioned Table Creation Tests
-- --

View File

@ -1087,12 +1087,14 @@ LOG: join order: [ "colocated_table_test" ][ reference join "reference_table_te
(2 rows) (2 rows)
SET citus.task_executor_type to "task-tracker"; SET citus.task_executor_type to "task-tracker";
SET citus.enable_repartition_joins to ON;
SELECT SELECT
colocated_table_test.value_2 colocated_table_test.value_2
FROM FROM
reference_table_test, colocated_table_test, colocated_table_test_2 reference_table_test, colocated_table_test, colocated_table_test_2
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;
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 "reference_table_test" ][ dual partition join "colocated_table_test_2" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------
@ -1105,7 +1107,8 @@ SELECT
FROM FROM
reference_table_test, colocated_table_test, colocated_table_test_2 reference_table_test, colocated_table_test, colocated_table_test_2
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;
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 "reference_table_test" ][ dual partition join "colocated_table_test_2" ]
value_2 value_2
--------------------------------------------------------------------- ---------------------------------------------------------------------

View File

@ -7,6 +7,7 @@
-- executor here, as we cannot run repartition jobs with real time executor. -- executor here, as we cannot run repartition jobs with real time executor.
SET citus.next_shard_id TO 690000; SET citus.next_shard_id TO 690000;
SET citus.enable_unique_job_ids TO off; SET citus.enable_unique_job_ids TO off;
SET citus.enable_repartition_joins to ON;
create schema repartition_join; create schema repartition_join;
DROP TABLE IF EXISTS repartition_join.order_line; DROP TABLE IF EXISTS repartition_join.order_line;
NOTICE: table "order_line" does not exist, skipping NOTICE: table "order_line" does not exist, skipping
@ -40,7 +41,7 @@ SELECT create_distributed_table('stock','s_w_id');
(1 row) (1 row)
BEGIN; BEGIN;
SET client_min_messages TO DEBUG4; SET client_min_messages TO DEBUG;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
-- Debug4 log messages display jobIds within them. We explicitly set the jobId -- Debug4 log messages display jobIds within them. We explicitly set the jobId
-- sequence here so that the regression output becomes independent of the number -- sequence here so that the regression output becomes independent of the number
@ -65,62 +66,26 @@ GROUP BY
ORDER BY ORDER BY
l_partkey, o_orderkey; l_partkey, o_orderkey;
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: join prunable for intervals [1,5986] and [8997,14947] DEBUG: join prunable for intervals [1,5986] and [8997,14947]
DEBUG: join prunable for intervals [8997,14947] and [1,5986] DEBUG: join prunable for intervals [8997,14947] and [1,5986]
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT lineitem.l_partkey, orders.o_orderkey, lineitem.l_quantity, lineitem.l_extendedprice, orders.o_custkey FROM (lineitem_290000 lineitem JOIN orders_290002 orders ON ((lineitem.l_orderkey OPERATOR(pg_catalog.=) orders.o_orderkey))) WHERE ((lineitem.l_partkey OPERATOR(pg_catalog.<) 1000) AND (orders.o_totalprice OPERATOR(pg_catalog.>) 10.0))"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT lineitem.l_partkey, orders.o_orderkey, lineitem.l_quantity, lineitem.l_extendedprice, orders.o_custkey FROM (lineitem_290001 lineitem JOIN orders_290003 orders ON ((lineitem.l_orderkey OPERATOR(pg_catalog.=) orders.o_orderkey))) WHERE ((lineitem.l_partkey OPERATOR(pg_catalog.<) 1000) AND (orders.o_totalprice OPERATOR(pg_catalog.>) 10.0))"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: join prunable for intervals [1,1000] and [6001,7000] DEBUG: join prunable for intervals [1,1000] and [6001,7000]
DEBUG: join prunable for intervals [6001,7000] and [1,1000] DEBUG: join prunable for intervals [6001,7000] and [1,1000]
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT "pg_merge_job_0001.task_000003".intermediate_column_1_0, "pg_merge_job_0001.task_000003".intermediate_column_1_1, "pg_merge_job_0001.task_000003".intermediate_column_1_2, "pg_merge_job_0001.task_000003".intermediate_column_1_3, "pg_merge_job_0001.task_000003".intermediate_column_1_4 FROM (pg_merge_job_0001.task_000003 "pg_merge_job_0001.task_000003" JOIN part_append_290005 part_append ON (("pg_merge_job_0001.task_000003".intermediate_column_1_0 OPERATOR(pg_catalog.=) part_append.p_partkey))) WHERE (part_append.p_size OPERATOR(pg_catalog.>) 8)"
DEBUG: generated sql query for task 4
DETAIL: query string: "SELECT "pg_merge_job_0001.task_000006".intermediate_column_1_0, "pg_merge_job_0001.task_000006".intermediate_column_1_1, "pg_merge_job_0001.task_000006".intermediate_column_1_2, "pg_merge_job_0001.task_000006".intermediate_column_1_3, "pg_merge_job_0001.task_000006".intermediate_column_1_4 FROM (pg_merge_job_0001.task_000006 "pg_merge_job_0001.task_000006" JOIN part_append_280002 part_append ON (("pg_merge_job_0001.task_000006".intermediate_column_1_0 OPERATOR(pg_catalog.=) part_append.p_partkey))) WHERE (part_append.p_size OPERATOR(pg_catalog.>) 8)"
DEBUG: pruning merge fetch taskId 1 DEBUG: pruning merge fetch taskId 1
DETAIL: Creating dependency on merge taskId 3 DETAIL: Creating dependency on merge taskId 3
DEBUG: pruning merge fetch taskId 3 DEBUG: pruning merge fetch taskId 3
DETAIL: Creating dependency on merge taskId 6 DETAIL: Creating dependency on merge taskId 6
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: no valid constraints found
DEBUG: shard count: 3
DEBUG: join prunable for intervals [1,1000] and [1001,2000] DEBUG: join prunable for intervals [1,1000] and [1001,2000]
DEBUG: join prunable for intervals [1,1000] and [6001,7000] DEBUG: join prunable for intervals [1,1000] and [6001,7000]
DEBUG: join prunable for intervals [1001,2000] and [1,1000] DEBUG: join prunable for intervals [1001,2000] and [1,1000]
DEBUG: join prunable for intervals [1001,2000] and [6001,7000] DEBUG: join prunable for intervals [1001,2000] and [6001,7000]
DEBUG: join prunable for intervals [6001,7000] and [1,1000] DEBUG: join prunable for intervals [6001,7000] and [1,1000]
DEBUG: join prunable for intervals [6001,7000] and [1001,2000] DEBUG: join prunable for intervals [6001,7000] and [1001,2000]
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT "pg_merge_job_0002.task_000005".intermediate_column_2_0 AS l_partkey, "pg_merge_job_0002.task_000005".intermediate_column_2_1 AS o_orderkey, count(*) AS count FROM (pg_merge_job_0002.task_000005 "pg_merge_job_0002.task_000005" JOIN customer_append_290004 customer_append ON ((customer_append.c_custkey OPERATOR(pg_catalog.=) "pg_merge_job_0002.task_000005".intermediate_column_2_4))) WHERE ((("pg_merge_job_0002.task_000005".intermediate_column_2_2 OPERATOR(pg_catalog.>) 5.0) OR ("pg_merge_job_0002.task_000005".intermediate_column_2_3 OPERATOR(pg_catalog.>) 1200.0)) AND (customer_append.c_acctbal OPERATOR(pg_catalog.<) 5000.0)) GROUP BY "pg_merge_job_0002.task_000005".intermediate_column_2_0, "pg_merge_job_0002.task_000005".intermediate_column_2_1"
DEBUG: generated sql query for task 4
DETAIL: query string: "SELECT "pg_merge_job_0002.task_000008".intermediate_column_2_0 AS l_partkey, "pg_merge_job_0002.task_000008".intermediate_column_2_1 AS o_orderkey, count(*) AS count FROM (pg_merge_job_0002.task_000008 "pg_merge_job_0002.task_000008" JOIN customer_append_280001 customer_append ON ((customer_append.c_custkey OPERATOR(pg_catalog.=) "pg_merge_job_0002.task_000008".intermediate_column_2_4))) WHERE ((("pg_merge_job_0002.task_000008".intermediate_column_2_2 OPERATOR(pg_catalog.>) 5.0) OR ("pg_merge_job_0002.task_000008".intermediate_column_2_3 OPERATOR(pg_catalog.>) 1200.0)) AND (customer_append.c_acctbal OPERATOR(pg_catalog.<) 5000.0)) GROUP BY "pg_merge_job_0002.task_000008".intermediate_column_2_0, "pg_merge_job_0002.task_000008".intermediate_column_2_1"
DEBUG: generated sql query for task 6
DETAIL: query string: "SELECT "pg_merge_job_0002.task_000011".intermediate_column_2_0 AS l_partkey, "pg_merge_job_0002.task_000011".intermediate_column_2_1 AS o_orderkey, count(*) AS count FROM (pg_merge_job_0002.task_000011 "pg_merge_job_0002.task_000011" JOIN customer_append_280000 customer_append ON ((customer_append.c_custkey OPERATOR(pg_catalog.=) "pg_merge_job_0002.task_000011".intermediate_column_2_4))) WHERE ((("pg_merge_job_0002.task_000011".intermediate_column_2_2 OPERATOR(pg_catalog.>) 5.0) OR ("pg_merge_job_0002.task_000011".intermediate_column_2_3 OPERATOR(pg_catalog.>) 1200.0)) AND (customer_append.c_acctbal OPERATOR(pg_catalog.<) 5000.0)) GROUP BY "pg_merge_job_0002.task_000011".intermediate_column_2_0, "pg_merge_job_0002.task_000011".intermediate_column_2_1"
DEBUG: pruning merge fetch taskId 1 DEBUG: pruning merge fetch taskId 1
DETAIL: Creating dependency on merge taskId 5 DETAIL: Creating dependency on merge taskId 5
DEBUG: pruning merge fetch taskId 3 DEBUG: pruning merge fetch taskId 3
DETAIL: Creating dependency on merge taskId 8 DETAIL: Creating dependency on merge taskId 8
DEBUG: pruning merge fetch taskId 5 DEBUG: pruning merge fetch taskId 5
DETAIL: Creating dependency on merge taskId 11 DETAIL: Creating dependency on merge taskId 11
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: master query: SELECT l_partkey, o_orderkey, COALESCE((pg_catalog.sum(count))::bigint, '0'::bigint) AS count FROM pg_catalog.citus_extradata_container(XXX, NULL::cstring(0), NULL::cstring(0), '(i 1 3 2 4)'::cstring(0)) remote_scan(l_partkey integer, o_orderkey bigint, count bigint) GROUP BY l_partkey, o_orderkey ORDER BY l_partkey, o_orderkey
DEBUG: completed cleanup query for job 3
DEBUG: completed cleanup query for job 3
DEBUG: completed cleanup query for job 2
DEBUG: completed cleanup query for job 2
DEBUG: completed cleanup query for job 1
DEBUG: completed cleanup query for job 1
l_partkey | o_orderkey | count l_partkey | o_orderkey | count
--------------------------------------------------------------------- ---------------------------------------------------------------------
18 | 12005 | 1 18 | 12005 | 1
@ -166,22 +131,6 @@ GROUP BY
ORDER BY ORDER BY
l_partkey, o_orderkey; l_partkey, o_orderkey;
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT l_partkey, l_suppkey FROM lineitem_290000 lineitem WHERE (l_quantity OPERATOR(pg_catalog.<) 5.0)"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT l_partkey, l_suppkey FROM lineitem_290001 lineitem WHERE (l_quantity OPERATOR(pg_catalog.<) 5.0)"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290002 orders WHERE (o_totalprice OPERATOR(pg_catalog.<>) 4.0)"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290003 orders WHERE (o_totalprice OPERATOR(pg_catalog.<>) 4.0)"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
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
@ -194,14 +143,6 @@ DEBUG: join prunable for task partitionId 2 and 3
DEBUG: join prunable for task partitionId 3 and 0 DEBUG: join prunable for task partitionId 3 and 0
DEBUG: join prunable for task partitionId 3 and 1 DEBUG: join prunable for task partitionId 3 and 1
DEBUG: join prunable for task partitionId 3 and 2 DEBUG: join prunable for task partitionId 3 and 2
DEBUG: generated sql query for task 3
DETAIL: query string: "SELECT "pg_merge_job_0004.task_000003".intermediate_column_4_0 AS l_partkey, "pg_merge_job_0005.task_000003".intermediate_column_5_0 AS o_orderkey, count(*) AS count FROM (pg_merge_job_0004.task_000003 "pg_merge_job_0004.task_000003" JOIN pg_merge_job_0005.task_000003 "pg_merge_job_0005.task_000003" ON (("pg_merge_job_0004.task_000003".intermediate_column_4_1 OPERATOR(pg_catalog.=) "pg_merge_job_0005.task_000003".intermediate_column_5_1))) WHERE true GROUP BY "pg_merge_job_0004.task_000003".intermediate_column_4_0, "pg_merge_job_0005.task_000003".intermediate_column_5_0"
DEBUG: generated sql query for task 6
DETAIL: query string: "SELECT "pg_merge_job_0004.task_000006".intermediate_column_4_0 AS l_partkey, "pg_merge_job_0005.task_000006".intermediate_column_5_0 AS o_orderkey, count(*) AS count FROM (pg_merge_job_0004.task_000006 "pg_merge_job_0004.task_000006" JOIN pg_merge_job_0005.task_000006 "pg_merge_job_0005.task_000006" ON (("pg_merge_job_0004.task_000006".intermediate_column_4_1 OPERATOR(pg_catalog.=) "pg_merge_job_0005.task_000006".intermediate_column_5_1))) WHERE true GROUP BY "pg_merge_job_0004.task_000006".intermediate_column_4_0, "pg_merge_job_0005.task_000006".intermediate_column_5_0"
DEBUG: generated sql query for task 9
DETAIL: query string: "SELECT "pg_merge_job_0004.task_000009".intermediate_column_4_0 AS l_partkey, "pg_merge_job_0005.task_000009".intermediate_column_5_0 AS o_orderkey, count(*) AS count FROM (pg_merge_job_0004.task_000009 "pg_merge_job_0004.task_000009" JOIN pg_merge_job_0005.task_000009 "pg_merge_job_0005.task_000009" ON (("pg_merge_job_0004.task_000009".intermediate_column_4_1 OPERATOR(pg_catalog.=) "pg_merge_job_0005.task_000009".intermediate_column_5_1))) WHERE true GROUP BY "pg_merge_job_0004.task_000009".intermediate_column_4_0, "pg_merge_job_0005.task_000009".intermediate_column_5_0"
DEBUG: generated sql query for task 12
DETAIL: query string: "SELECT "pg_merge_job_0004.task_000012".intermediate_column_4_0 AS l_partkey, "pg_merge_job_0005.task_000012".intermediate_column_5_0 AS o_orderkey, count(*) AS count FROM (pg_merge_job_0004.task_000012 "pg_merge_job_0004.task_000012" JOIN pg_merge_job_0005.task_000012 "pg_merge_job_0005.task_000012" ON (("pg_merge_job_0004.task_000012".intermediate_column_4_1 OPERATOR(pg_catalog.=) "pg_merge_job_0005.task_000012".intermediate_column_5_1))) WHERE true GROUP BY "pg_merge_job_0004.task_000012".intermediate_column_4_0, "pg_merge_job_0005.task_000012".intermediate_column_5_0"
DEBUG: pruning merge fetch taskId 1 DEBUG: pruning merge fetch taskId 1
DETAIL: Creating dependency on merge taskId 3 DETAIL: Creating dependency on merge taskId 3
DEBUG: pruning merge fetch taskId 2 DEBUG: pruning merge fetch taskId 2
@ -218,17 +159,6 @@ DEBUG: pruning merge fetch taskId 10
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: pruning merge fetch taskId 11 DEBUG: pruning merge fetch taskId 11
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: master query: SELECT l_partkey, o_orderkey, COALESCE((pg_catalog.sum(count))::bigint, '0'::bigint) AS count FROM pg_catalog.citus_extradata_container(XXX, NULL::cstring(0), NULL::cstring(0), '(i 1 2)'::cstring(0)) remote_scan(l_partkey integer, o_orderkey bigint, count bigint) GROUP BY l_partkey, o_orderkey ORDER BY l_partkey, o_orderkey
DEBUG: completed cleanup query for job 6
DEBUG: completed cleanup query for job 6
DEBUG: completed cleanup query for job 4
DEBUG: completed cleanup query for job 4
DEBUG: completed cleanup query for job 5
DEBUG: completed cleanup query for job 5
l_partkey | o_orderkey | count l_partkey | o_orderkey | count
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (0 rows)
@ -245,22 +175,6 @@ GROUP BY
ORDER BY ORDER BY
o_orderkey; o_orderkey;
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT l_suppkey FROM lineitem_290000 lineitem WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT l_suppkey FROM lineitem_290001 lineitem WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290002 orders WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290003 orders WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
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
@ -273,14 +187,6 @@ DEBUG: join prunable for task partitionId 2 and 3
DEBUG: join prunable for task partitionId 3 and 0 DEBUG: join prunable for task partitionId 3 and 0
DEBUG: join prunable for task partitionId 3 and 1 DEBUG: join prunable for task partitionId 3 and 1
DEBUG: join prunable for task partitionId 3 and 2 DEBUG: join prunable for task partitionId 3 and 2
DEBUG: generated sql query for task 3
DETAIL: query string: "SELECT "pg_merge_job_0008.task_000003".intermediate_column_8_0 AS o_orderkey, any_value("pg_merge_job_0008.task_000003".intermediate_column_8_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0007.task_000003 "pg_merge_job_0007.task_000003" JOIN pg_merge_job_0008.task_000003 "pg_merge_job_0008.task_000003" ON (("pg_merge_job_0007.task_000003".intermediate_column_7_0 OPERATOR(pg_catalog.=) "pg_merge_job_0008.task_000003".intermediate_column_8_1))) WHERE true GROUP BY "pg_merge_job_0008.task_000003".intermediate_column_8_0"
DEBUG: generated sql query for task 6
DETAIL: query string: "SELECT "pg_merge_job_0008.task_000006".intermediate_column_8_0 AS o_orderkey, any_value("pg_merge_job_0008.task_000006".intermediate_column_8_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0007.task_000006 "pg_merge_job_0007.task_000006" JOIN pg_merge_job_0008.task_000006 "pg_merge_job_0008.task_000006" ON (("pg_merge_job_0007.task_000006".intermediate_column_7_0 OPERATOR(pg_catalog.=) "pg_merge_job_0008.task_000006".intermediate_column_8_1))) WHERE true GROUP BY "pg_merge_job_0008.task_000006".intermediate_column_8_0"
DEBUG: generated sql query for task 9
DETAIL: query string: "SELECT "pg_merge_job_0008.task_000009".intermediate_column_8_0 AS o_orderkey, any_value("pg_merge_job_0008.task_000009".intermediate_column_8_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0007.task_000009 "pg_merge_job_0007.task_000009" JOIN pg_merge_job_0008.task_000009 "pg_merge_job_0008.task_000009" ON (("pg_merge_job_0007.task_000009".intermediate_column_7_0 OPERATOR(pg_catalog.=) "pg_merge_job_0008.task_000009".intermediate_column_8_1))) WHERE true GROUP BY "pg_merge_job_0008.task_000009".intermediate_column_8_0"
DEBUG: generated sql query for task 12
DETAIL: query string: "SELECT "pg_merge_job_0008.task_000012".intermediate_column_8_0 AS o_orderkey, any_value("pg_merge_job_0008.task_000012".intermediate_column_8_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0007.task_000012 "pg_merge_job_0007.task_000012" JOIN pg_merge_job_0008.task_000012 "pg_merge_job_0008.task_000012" ON (("pg_merge_job_0007.task_000012".intermediate_column_7_0 OPERATOR(pg_catalog.=) "pg_merge_job_0008.task_000012".intermediate_column_8_1))) WHERE true GROUP BY "pg_merge_job_0008.task_000012".intermediate_column_8_0"
DEBUG: pruning merge fetch taskId 1 DEBUG: pruning merge fetch taskId 1
DETAIL: Creating dependency on merge taskId 3 DETAIL: Creating dependency on merge taskId 3
DEBUG: pruning merge fetch taskId 2 DEBUG: pruning merge fetch taskId 2
@ -297,17 +203,6 @@ DEBUG: pruning merge fetch taskId 10
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: pruning merge fetch taskId 11 DEBUG: pruning merge fetch taskId 11
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: master query: SELECT o_orderkey, o_shippriority, COALESCE((pg_catalog.sum(count))::bigint, '0'::bigint) AS count FROM pg_catalog.citus_extradata_container(XXX, NULL::cstring(0), NULL::cstring(0), '(i 1 2)'::cstring(0)) remote_scan(o_orderkey bigint, o_shippriority integer, count bigint) GROUP BY o_orderkey ORDER BY o_orderkey
DEBUG: completed cleanup query for job 9
DEBUG: completed cleanup query for job 9
DEBUG: completed cleanup query for job 7
DEBUG: completed cleanup query for job 7
DEBUG: completed cleanup query for job 8
DEBUG: completed cleanup query for job 8
o_orderkey | o_shippriority | count o_orderkey | o_shippriority | count
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (0 rows)
@ -326,22 +221,6 @@ GROUP BY
ORDER BY ORDER BY
o_orderkey; o_orderkey;
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT l_suppkey FROM lineitem_290000 lineitem WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT l_suppkey FROM lineitem_290001 lineitem WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290002 orders WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290003 orders WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
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
@ -354,14 +233,6 @@ DEBUG: join prunable for task partitionId 2 and 3
DEBUG: join prunable for task partitionId 3 and 0 DEBUG: join prunable for task partitionId 3 and 0
DEBUG: join prunable for task partitionId 3 and 1 DEBUG: join prunable for task partitionId 3 and 1
DEBUG: join prunable for task partitionId 3 and 2 DEBUG: join prunable for task partitionId 3 and 2
DEBUG: generated sql query for task 3
DETAIL: query string: "SELECT "pg_merge_job_0011.task_000003".intermediate_column_11_0 AS o_orderkey, any_value("pg_merge_job_0011.task_000003".intermediate_column_11_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0010.task_000003 "pg_merge_job_0010.task_000003" JOIN pg_merge_job_0011.task_000003 "pg_merge_job_0011.task_000003" ON (("pg_merge_job_0010.task_000003".intermediate_column_10_0 OPERATOR(pg_catalog.=) "pg_merge_job_0011.task_000003".intermediate_column_11_1))) WHERE true GROUP BY "pg_merge_job_0011.task_000003".intermediate_column_11_0"
DEBUG: generated sql query for task 6
DETAIL: query string: "SELECT "pg_merge_job_0011.task_000006".intermediate_column_11_0 AS o_orderkey, any_value("pg_merge_job_0011.task_000006".intermediate_column_11_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0010.task_000006 "pg_merge_job_0010.task_000006" JOIN pg_merge_job_0011.task_000006 "pg_merge_job_0011.task_000006" ON (("pg_merge_job_0010.task_000006".intermediate_column_10_0 OPERATOR(pg_catalog.=) "pg_merge_job_0011.task_000006".intermediate_column_11_1))) WHERE true GROUP BY "pg_merge_job_0011.task_000006".intermediate_column_11_0"
DEBUG: generated sql query for task 9
DETAIL: query string: "SELECT "pg_merge_job_0011.task_000009".intermediate_column_11_0 AS o_orderkey, any_value("pg_merge_job_0011.task_000009".intermediate_column_11_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0010.task_000009 "pg_merge_job_0010.task_000009" JOIN pg_merge_job_0011.task_000009 "pg_merge_job_0011.task_000009" ON (("pg_merge_job_0010.task_000009".intermediate_column_10_0 OPERATOR(pg_catalog.=) "pg_merge_job_0011.task_000009".intermediate_column_11_1))) WHERE true GROUP BY "pg_merge_job_0011.task_000009".intermediate_column_11_0"
DEBUG: generated sql query for task 12
DETAIL: query string: "SELECT "pg_merge_job_0011.task_000012".intermediate_column_11_0 AS o_orderkey, any_value("pg_merge_job_0011.task_000012".intermediate_column_11_1) AS o_shippriority, count(*) AS count FROM (pg_merge_job_0010.task_000012 "pg_merge_job_0010.task_000012" JOIN pg_merge_job_0011.task_000012 "pg_merge_job_0011.task_000012" ON (("pg_merge_job_0010.task_000012".intermediate_column_10_0 OPERATOR(pg_catalog.=) "pg_merge_job_0011.task_000012".intermediate_column_11_1))) WHERE true GROUP BY "pg_merge_job_0011.task_000012".intermediate_column_11_0"
DEBUG: pruning merge fetch taskId 1 DEBUG: pruning merge fetch taskId 1
DETAIL: Creating dependency on merge taskId 3 DETAIL: Creating dependency on merge taskId 3
DEBUG: pruning merge fetch taskId 2 DEBUG: pruning merge fetch taskId 2
@ -378,17 +249,6 @@ DEBUG: pruning merge fetch taskId 10
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: pruning merge fetch taskId 11 DEBUG: pruning merge fetch taskId 11
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: master query: SELECT o_orderkey, o_shippriority, COALESCE((pg_catalog.sum(count))::bigint, '0'::bigint) AS count FROM pg_catalog.citus_extradata_container(XXX, NULL::cstring(0), NULL::cstring(0), '(i 1 2)'::cstring(0)) remote_scan(o_orderkey bigint, o_shippriority integer, count bigint) GROUP BY o_orderkey ORDER BY o_orderkey
DEBUG: completed cleanup query for job 12
DEBUG: completed cleanup query for job 12
DEBUG: completed cleanup query for job 10
DEBUG: completed cleanup query for job 10
DEBUG: completed cleanup query for job 11
DEBUG: completed cleanup query for job 11
o_orderkey | o_shippriority | count o_orderkey | o_shippriority | count
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (0 rows)
@ -405,22 +265,6 @@ GROUP BY
ORDER BY ORDER BY
o_orderkey; o_orderkey;
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT l_suppkey FROM lineitem_290000 lineitem WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT l_suppkey FROM lineitem_290001 lineitem WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: no valid constraints found
DEBUG: shard count: 2
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290002 orders WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT o_orderkey, o_shippriority FROM orders_290003 orders WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
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
@ -433,14 +277,6 @@ DEBUG: join prunable for task partitionId 2 and 3
DEBUG: join prunable for task partitionId 3 and 0 DEBUG: join prunable for task partitionId 3 and 0
DEBUG: join prunable for task partitionId 3 and 1 DEBUG: join prunable for task partitionId 3 and 1
DEBUG: join prunable for task partitionId 3 and 2 DEBUG: join prunable for task partitionId 3 and 2
DEBUG: generated sql query for task 3
DETAIL: query string: "SELECT "pg_merge_job_0014.task_000003".intermediate_column_14_0 AS o_orderkey, any_value("pg_merge_job_0014.task_000003".intermediate_column_14_1) AS any_value, any_value("pg_merge_job_0014.task_000003".intermediate_column_14_1) AS worker_column_3 FROM (pg_merge_job_0013.task_000003 "pg_merge_job_0013.task_000003" JOIN pg_merge_job_0014.task_000003 "pg_merge_job_0014.task_000003" ON (("pg_merge_job_0013.task_000003".intermediate_column_13_0 OPERATOR(pg_catalog.=) "pg_merge_job_0014.task_000003".intermediate_column_14_1))) WHERE true GROUP BY "pg_merge_job_0014.task_000003".intermediate_column_14_0"
DEBUG: generated sql query for task 6
DETAIL: query string: "SELECT "pg_merge_job_0014.task_000006".intermediate_column_14_0 AS o_orderkey, any_value("pg_merge_job_0014.task_000006".intermediate_column_14_1) AS any_value, any_value("pg_merge_job_0014.task_000006".intermediate_column_14_1) AS worker_column_3 FROM (pg_merge_job_0013.task_000006 "pg_merge_job_0013.task_000006" JOIN pg_merge_job_0014.task_000006 "pg_merge_job_0014.task_000006" ON (("pg_merge_job_0013.task_000006".intermediate_column_13_0 OPERATOR(pg_catalog.=) "pg_merge_job_0014.task_000006".intermediate_column_14_1))) WHERE true GROUP BY "pg_merge_job_0014.task_000006".intermediate_column_14_0"
DEBUG: generated sql query for task 9
DETAIL: query string: "SELECT "pg_merge_job_0014.task_000009".intermediate_column_14_0 AS o_orderkey, any_value("pg_merge_job_0014.task_000009".intermediate_column_14_1) AS any_value, any_value("pg_merge_job_0014.task_000009".intermediate_column_14_1) AS worker_column_3 FROM (pg_merge_job_0013.task_000009 "pg_merge_job_0013.task_000009" JOIN pg_merge_job_0014.task_000009 "pg_merge_job_0014.task_000009" ON (("pg_merge_job_0013.task_000009".intermediate_column_13_0 OPERATOR(pg_catalog.=) "pg_merge_job_0014.task_000009".intermediate_column_14_1))) WHERE true GROUP BY "pg_merge_job_0014.task_000009".intermediate_column_14_0"
DEBUG: generated sql query for task 12
DETAIL: query string: "SELECT "pg_merge_job_0014.task_000012".intermediate_column_14_0 AS o_orderkey, any_value("pg_merge_job_0014.task_000012".intermediate_column_14_1) AS any_value, any_value("pg_merge_job_0014.task_000012".intermediate_column_14_1) AS worker_column_3 FROM (pg_merge_job_0013.task_000012 "pg_merge_job_0013.task_000012" JOIN pg_merge_job_0014.task_000012 "pg_merge_job_0014.task_000012" ON (("pg_merge_job_0013.task_000012".intermediate_column_13_0 OPERATOR(pg_catalog.=) "pg_merge_job_0014.task_000012".intermediate_column_14_1))) WHERE true GROUP BY "pg_merge_job_0014.task_000012".intermediate_column_14_0"
DEBUG: pruning merge fetch taskId 1 DEBUG: pruning merge fetch taskId 1
DETAIL: Creating dependency on merge taskId 3 DETAIL: Creating dependency on merge taskId 3
DEBUG: pruning merge fetch taskId 2 DEBUG: pruning merge fetch taskId 2
@ -457,17 +293,6 @@ DEBUG: pruning merge fetch taskId 10
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: pruning merge fetch taskId 11 DEBUG: pruning merge fetch taskId 11
DETAIL: Creating dependency on merge taskId 12 DETAIL: Creating dependency on merge taskId 12
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: master query: SELECT o_orderkey, any_value(any_value) AS any_value FROM pg_catalog.citus_extradata_container(XXX, NULL::cstring(0), NULL::cstring(0), '(i 1 2)'::cstring(0)) remote_scan(o_orderkey bigint, any_value integer, worker_column_3 integer) GROUP BY o_orderkey ORDER BY o_orderkey
DEBUG: completed cleanup query for job 15
DEBUG: completed cleanup query for job 15
DEBUG: completed cleanup query for job 13
DEBUG: completed cleanup query for job 13
DEBUG: completed cleanup query for job 14
DEBUG: completed cleanup query for job 14
o_orderkey | any_value o_orderkey | any_value
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (0 rows)
@ -481,39 +306,7 @@ select s_i_id
group by s_i_id, s_w_id, s_quantity group by s_i_id, s_w_id, s_quantity
having s_quantity > random() having s_quantity > random()
; ;
DEBUG: no valid constraints found
DEBUG: shard count: 4
DEBUG: no valid constraints found
DEBUG: shard count: 4
DEBUG: Router planner cannot handle multi-shard select queries DEBUG: Router planner cannot handle multi-shard select queries
DEBUG: no valid constraints found
DEBUG: shard count: 4
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT s_i_id, s_w_id, s_quantity FROM stock_690004 stock WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT s_i_id, s_w_id, s_quantity FROM stock_690005 stock WHERE true"
DEBUG: generated sql query for task 3
DETAIL: query string: "SELECT s_i_id, s_w_id, s_quantity FROM stock_690006 stock WHERE true"
DEBUG: generated sql query for task 4
DETAIL: query string: "SELECT s_i_id, s_w_id, s_quantity FROM stock_690007 stock WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: no valid constraints found
DEBUG: shard count: 4
DEBUG: generated sql query for task 1
DETAIL: query string: "SELECT ol_i_id FROM order_line_690000 order_line WHERE true"
DEBUG: generated sql query for task 2
DETAIL: query string: "SELECT ol_i_id FROM order_line_690001 order_line WHERE true"
DEBUG: generated sql query for task 3
DETAIL: query string: "SELECT ol_i_id FROM order_line_690002 order_line WHERE true"
DEBUG: generated sql query for task 4
DETAIL: query string: "SELECT ol_i_id FROM order_line_690003 order_line WHERE true"
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
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
@ -526,14 +319,6 @@ DEBUG: join prunable for task partitionId 2 and 3
DEBUG: join prunable for task partitionId 3 and 0 DEBUG: join prunable for task partitionId 3 and 0
DEBUG: join prunable for task partitionId 3 and 1 DEBUG: join prunable for task partitionId 3 and 1
DEBUG: join prunable for task partitionId 3 and 2 DEBUG: join prunable for task partitionId 3 and 2
DEBUG: generated sql query for task 3
DETAIL: query string: "SELECT "pg_merge_job_0016.task_000005".intermediate_column_16_0 AS s_i_id, "pg_merge_job_0016.task_000005".intermediate_column_16_1 AS worker_column_2, any_value("pg_merge_job_0016.task_000005".intermediate_column_16_2) AS worker_column_3 FROM (pg_merge_job_0016.task_000005 "pg_merge_job_0016.task_000005" JOIN pg_merge_job_0017.task_000005 "pg_merge_job_0017.task_000005" ON (("pg_merge_job_0017.task_000005".intermediate_column_17_0 OPERATOR(pg_catalog.=) "pg_merge_job_0016.task_000005".intermediate_column_16_0))) WHERE true GROUP BY "pg_merge_job_0016.task_000005".intermediate_column_16_0, "pg_merge_job_0016.task_000005".intermediate_column_16_1 HAVING ((any_value("pg_merge_job_0016.task_000005".intermediate_column_16_2))::double precision OPERATOR(pg_catalog.>) random())"
DEBUG: generated sql query for task 6
DETAIL: query string: "SELECT "pg_merge_job_0016.task_000010".intermediate_column_16_0 AS s_i_id, "pg_merge_job_0016.task_000010".intermediate_column_16_1 AS worker_column_2, any_value("pg_merge_job_0016.task_000010".intermediate_column_16_2) AS worker_column_3 FROM (pg_merge_job_0016.task_000010 "pg_merge_job_0016.task_000010" JOIN pg_merge_job_0017.task_000010 "pg_merge_job_0017.task_000010" ON (("pg_merge_job_0017.task_000010".intermediate_column_17_0 OPERATOR(pg_catalog.=) "pg_merge_job_0016.task_000010".intermediate_column_16_0))) WHERE true GROUP BY "pg_merge_job_0016.task_000010".intermediate_column_16_0, "pg_merge_job_0016.task_000010".intermediate_column_16_1 HAVING ((any_value("pg_merge_job_0016.task_000010".intermediate_column_16_2))::double precision OPERATOR(pg_catalog.>) random())"
DEBUG: generated sql query for task 9
DETAIL: query string: "SELECT "pg_merge_job_0016.task_000015".intermediate_column_16_0 AS s_i_id, "pg_merge_job_0016.task_000015".intermediate_column_16_1 AS worker_column_2, any_value("pg_merge_job_0016.task_000015".intermediate_column_16_2) AS worker_column_3 FROM (pg_merge_job_0016.task_000015 "pg_merge_job_0016.task_000015" JOIN pg_merge_job_0017.task_000015 "pg_merge_job_0017.task_000015" ON (("pg_merge_job_0017.task_000015".intermediate_column_17_0 OPERATOR(pg_catalog.=) "pg_merge_job_0016.task_000015".intermediate_column_16_0))) WHERE true GROUP BY "pg_merge_job_0016.task_000015".intermediate_column_16_0, "pg_merge_job_0016.task_000015".intermediate_column_16_1 HAVING ((any_value("pg_merge_job_0016.task_000015".intermediate_column_16_2))::double precision OPERATOR(pg_catalog.>) random())"
DEBUG: generated sql query for task 12
DETAIL: query string: "SELECT "pg_merge_job_0016.task_000020".intermediate_column_16_0 AS s_i_id, "pg_merge_job_0016.task_000020".intermediate_column_16_1 AS worker_column_2, any_value("pg_merge_job_0016.task_000020".intermediate_column_16_2) AS worker_column_3 FROM (pg_merge_job_0016.task_000020 "pg_merge_job_0016.task_000020" JOIN pg_merge_job_0017.task_000020 "pg_merge_job_0017.task_000020" ON (("pg_merge_job_0017.task_000020".intermediate_column_17_0 OPERATOR(pg_catalog.=) "pg_merge_job_0016.task_000020".intermediate_column_16_0))) WHERE true GROUP BY "pg_merge_job_0016.task_000020".intermediate_column_16_0, "pg_merge_job_0016.task_000020".intermediate_column_16_1 HAVING ((any_value("pg_merge_job_0016.task_000020".intermediate_column_16_2))::double precision OPERATOR(pg_catalog.>) random())"
DEBUG: pruning merge fetch taskId 1 DEBUG: pruning merge fetch taskId 1
DETAIL: Creating dependency on merge taskId 5 DETAIL: Creating dependency on merge taskId 5
DEBUG: pruning merge fetch taskId 2 DEBUG: pruning merge fetch taskId 2
@ -550,17 +335,6 @@ DEBUG: pruning merge fetch taskId 10
DETAIL: Creating dependency on merge taskId 20 DETAIL: Creating dependency on merge taskId 20
DEBUG: pruning merge fetch taskId 11 DEBUG: pruning merge fetch taskId 11
DETAIL: Creating dependency on merge taskId 20 DETAIL: Creating dependency on merge taskId 20
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: assigned task to node localhost:xxxxx
DEBUG: master query: SELECT s_i_id FROM pg_catalog.citus_extradata_container(XXX, NULL::cstring(0), NULL::cstring(0), '(i 1 2)'::cstring(0)) remote_scan(s_i_id integer, worker_column_2 integer, worker_column_3 numeric)
DEBUG: completed cleanup query for job 18
DEBUG: completed cleanup query for job 18
DEBUG: completed cleanup query for job 16
DEBUG: completed cleanup query for job 16
DEBUG: completed cleanup query for job 17
DEBUG: completed cleanup query for job 17
s_i_id s_i_id
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (0 rows)

View File

@ -7,6 +7,7 @@
SET citus.next_shard_id TO 700000; SET citus.next_shard_id TO 700000;
SET client_min_messages TO DEBUG2; SET client_min_messages TO DEBUG2;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
-- Single range-repartition join to test join-pruning behaviour. -- Single range-repartition join to test join-pruning behaviour.
EXPLAIN (COSTS OFF) EXPLAIN (COSTS OFF)
SELECT SELECT
@ -31,7 +32,7 @@ DETAIL: Creating dependency on merge taskId 9
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 3 Task Count: 3
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -77,7 +78,7 @@ DEBUG: Router planner does not support append-partitioned tables.
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 0 Task Count: 0
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -112,7 +113,7 @@ DEBUG: Router planner does not support append-partitioned tables.
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 0 Task Count: 0
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -175,7 +176,7 @@ DETAIL: Creating dependency on merge taskId 16
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -240,7 +241,7 @@ DEBUG: Router planner does not support append-partitioned tables.
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Task Count: 0 Task Count: 0
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -275,7 +276,7 @@ WHERE
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Custom Scan (Citus Task-Tracker) Custom Scan (Citus Adaptive)
Task Count: 0 Task Count: 0
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -305,7 +306,7 @@ WHERE
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Custom Scan (Citus Task-Tracker) Custom Scan (Citus Adaptive)
Task Count: 0 Task Count: 0
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob
@ -319,9 +320,9 @@ SELECT
FROM FROM
orders INNER JOIN customer_append ON (o_custkey = c_custkey AND false); orders INNER JOIN customer_append ON (o_custkey = c_custkey AND false);
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Custom Scan (Citus Task-Tracker) Custom Scan (Citus Adaptive)
Task Count: 0 Task Count: 0
Tasks Shown: All Tasks Shown: All
(3 rows) (3 rows)
@ -334,9 +335,9 @@ FROM
WHERE WHERE
o_custkey = c_custkey AND false; o_custkey = c_custkey AND false;
DEBUG: Router planner does not support append-partitioned tables. DEBUG: Router planner does not support append-partitioned tables.
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Custom Scan (Citus Task-Tracker) Custom Scan (Citus Adaptive)
Task Count: 0 Task Count: 0
Tasks Shown: All Tasks Shown: All
(3 rows) (3 rows)

View File

@ -9,6 +9,7 @@ SET citus.next_shard_id TO 710000;
BEGIN; BEGIN;
SET client_min_messages TO DEBUG3; SET client_min_messages TO DEBUG3;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
-- Single range repartition join to test anchor-shard based task assignment and -- Single range repartition join to test anchor-shard based task assignment and
-- assignment propagation to merge and data-fetch tasks. -- assignment propagation to merge and data-fetch tasks.
SELECT SELECT

View File

@ -2,6 +2,7 @@
-- MULTI_REPARTITION_UDT -- MULTI_REPARTITION_UDT
-- --
SET citus.next_shard_id TO 535000; SET citus.next_shard_id TO 535000;
SET citus.enable_repartition_joins to ON;
-- START type creation -- START type creation
CREATE TYPE test_udt AS (i integer, i2 integer); CREATE TYPE test_udt AS (i integer, i2 integer);
-- ... as well as a function to use as its comparator... -- ... as well as a function to use as its comparator...
@ -125,6 +126,7 @@ FUNCTION 1 test_udt_hash(test_udt);
-- Distribute and populate the two tables. -- Distribute and populate the two tables.
SET citus.shard_count TO 3; SET citus.shard_count TO 3;
SET citus.shard_replication_factor TO 1; SET citus.shard_replication_factor TO 1;
SET citus.enable_repartition_joins to ON;
SELECT create_distributed_table('repartition_udt', 'pk', 'hash'); SELECT create_distributed_table('repartition_udt', 'pk', 'hash');
create_distributed_table create_distributed_table
--------------------------------------------------------------------- ---------------------------------------------------------------------
@ -171,7 +173,7 @@ SELECT * FROM repartition_udt JOIN repartition_udt_other
LOG: join order: [ "repartition_udt" ][ dual partition join "repartition_udt_other" ] LOG: join order: [ "repartition_udt" ][ dual partition join "repartition_udt_other" ]
QUERY PLAN QUERY PLAN
--------------------------------------------------------------------- ---------------------------------------------------------------------
Custom Scan (Citus Task-Tracker) Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: None, not supported for re-partition queries Tasks Shown: None, not supported for re-partition queries
-> MapMergeJob -> MapMergeJob

View File

@ -828,6 +828,7 @@ SELECT create_distributed_table('test_schema_support_join_2.nation_hash', 'n_nat
(1 row) (1 row)
\copy test_schema_support_join_2.nation_hash FROM STDIN with delimiter '|'; \copy test_schema_support_join_2.nation_hash FROM STDIN with delimiter '|';
SET citus.enable_repartition_joins to ON;
-- check when search_path is public, -- check when search_path is public,
-- join of two tables which are in different schemas, -- join of two tables which are in different schemas,
-- join on partition column -- join on partition column

View File

@ -198,8 +198,15 @@ group by
l_suppkey l_suppkey
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 5; LIMIT 5;
ERROR: cannot perform distributed planning on this query l_suppkey | total_suppkey_count
DETAIL: Subqueries with limit are not supported yet ---------------------------------------------------------------------
35 | 5
112 | 4
102 | 4
73 | 4
123 | 3
(5 rows)
-- Check that we don't support subqueries without aggregates. -- Check that we don't support subqueries without aggregates.
select select
DISTINCT rounded_tax DISTINCT rounded_tax
@ -212,8 +219,11 @@ from
l_tax) as distributed_table l_tax) as distributed_table
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT 5; LIMIT 5;
ERROR: cannot perform distributed planning on this query rounded_tax
DETAIL: Subqueries without aggregates are not supported yet ---------------------------------------------------------------------
0
(1 row)
-- Check that we support subqueries with count(distinct). -- Check that we support subqueries with count(distinct).
select select
avg(different_shipment_days) avg(different_shipment_days)

View File

@ -228,8 +228,12 @@ SET client_min_messages to ERROR;
SELECT raise_failed_execution(' SELECT raise_failed_execution('
SELECT u.* FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003); SELECT u.* FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003);
'); ');
ERROR: Task failed to execute raise_failed_execution
CONTEXT: PL/pgSQL function raise_failed_execution(text) line 6 at RAISE ---------------------------------------------------------------------
(1 row)
SET citus.enable_repartition_joins to ON;
-- following will succeed since it fetches few columns -- following will succeed since it fetches few columns
SELECT u.long_column_001, u.long_column_002, u.long_column_003 FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003); SELECT u.long_column_001, u.long_column_002, u.long_column_003 FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003);
long_column_001 | long_column_002 | long_column_003 long_column_001 | long_column_002 | long_column_003

View File

@ -204,8 +204,15 @@ SELECT l_suppkey, count(*) FROM
(SELECT l_suppkey, l_shipdate, count(*) (SELECT l_suppkey, l_shipdate, count(*)
FROM air_shipped_lineitems GROUP BY l_suppkey, l_shipdate) supps FROM air_shipped_lineitems GROUP BY l_suppkey, l_shipdate) supps
GROUP BY l_suppkey ORDER BY 2 DESC, 1 LIMIT 5; GROUP BY l_suppkey ORDER BY 2 DESC, 1 LIMIT 5;
ERROR: cannot perform distributed planning on this query l_suppkey | count
DETAIL: Subqueries without group by clause are not supported yet ---------------------------------------------------------------------
7680 | 4
160 | 3
1042 | 3
1318 | 3
5873 | 3
(5 rows)
-- logically same query without a view works fine -- logically same query without a view works fine
SELECT l_suppkey, count(*) FROM SELECT l_suppkey, count(*) FROM
(SELECT l_suppkey, l_shipdate, count(*) (SELECT l_suppkey, l_shipdate, count(*)
@ -226,8 +233,15 @@ SELECT l_suppkey, count(*) FROM
FROM (SELECT * FROM lineitem_hash_part WHERE l_shipmode = 'AIR') asi FROM (SELECT * FROM lineitem_hash_part WHERE l_shipmode = 'AIR') asi
GROUP BY l_suppkey, l_shipdate) supps GROUP BY l_suppkey, l_shipdate) supps
GROUP BY l_suppkey ORDER BY 2 DESC, 1 LIMIT 5; GROUP BY l_suppkey ORDER BY 2 DESC, 1 LIMIT 5;
ERROR: cannot perform distributed planning on this query l_suppkey | count
DETAIL: Subqueries without group by clause are not supported yet ---------------------------------------------------------------------
7680 | 4
160 | 3
1042 | 3
1318 | 3
5873 | 3
(5 rows)
-- repartition query on view with single table subquery -- repartition query on view with single table subquery
CREATE VIEW supp_count_view AS SELECT * FROM (SELECT l_suppkey, count(*) FROM lineitem_hash_part GROUP BY 1) s1; CREATE VIEW supp_count_view AS SELECT * FROM (SELECT l_suppkey, count(*) FROM lineitem_hash_part GROUP BY 1) s1;
SELECT * FROM supp_count_view ORDER BY 2 DESC, 1 LIMIT 10; SELECT * FROM supp_count_view ORDER BY 2 DESC, 1 LIMIT 10;

View File

@ -1,5 +1,6 @@
CREATE SCHEMA recursive_set_local; CREATE SCHEMA recursive_set_local;
SET search_path TO recursive_set_local, public; SET search_path TO recursive_set_local, public;
SET citus.enable_repartition_joins to ON;
CREATE TABLE recursive_set_local.test (x int, y int); CREATE TABLE recursive_set_local.test (x int, y int);
SELECT create_distributed_table('test', 'x'); SELECT create_distributed_table('test', 'x');
create_distributed_table create_distributed_table

View File

@ -380,6 +380,10 @@ FROM
users_table, cte_merge users_table, cte_merge
WHERE WHERE
users_table.user_id = cte_merge.u_id; users_table.user_id = cte_merge.u_id;
ERROR: Complex subqueries and CTEs are not supported when task_executor_type is set to 'task-tracker' count
---------------------------------------------------------------------
4365606
(1 row)
DROP SCHEMA with_executors CASCADE; DROP SCHEMA with_executors CASCADE;
NOTICE: drop cascades to table local_table NOTICE: drop cascades to table local_table

View File

@ -24,13 +24,13 @@ CREATE TABLE lineitem_hash (
l_comment varchar(44) not null, l_comment varchar(44) not null,
PRIMARY KEY(l_orderkey, l_linenumber) ); PRIMARY KEY(l_orderkey, l_linenumber) );
SELECT create_distributed_table('lineitem_hash', 'l_orderkey', 'hash'); SELECT create_distributed_table('lineitem_hash', 'l_orderkey', 'hash');
create_distributed_table create_distributed_table
-------------------------- ---------------------------------------------------------------------
(1 row) (1 row)
\copy lineitem_hash FROM '@abs_srcdir@/data/lineitem.1.data' with delimiter '|' \copy lineitem_hash FROM '/home/talha/citus/src/test/regress/data/lineitem.1.data' with delimiter '|'
\copy lineitem_hash FROM '@abs_srcdir@/data/lineitem.2.data' with delimiter '|' \copy lineitem_hash FROM '/home/talha/citus/src/test/regress/data/lineitem.2.data' with delimiter '|'
ANALYZE lineitem_hash; ANALYZE lineitem_hash;
SET citus.task_executor_type to "task-tracker"; SET citus.task_executor_type to "task-tracker";
-- count(distinct) is supported on top level query if there -- count(distinct) is supported on top level query if there
@ -41,8 +41,8 @@ SELECT
GROUP BY l_orderkey GROUP BY l_orderkey
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_orderkey | count l_orderkey | count
------------+------- ---------------------------------------------------------------------
14885 | 7 14885 | 7
14884 | 7 14884 | 7
14821 | 7 14821 | 7
@ -62,19 +62,19 @@ SELECT
GROUP BY l_orderkey GROUP BY l_orderkey
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Limit Limit
Output: remote_scan.l_orderkey, remote_scan.count Output: remote_scan.l_orderkey, remote_scan.count
-> Sort -> Sort
Output: remote_scan.l_orderkey, remote_scan.count Output: remote_scan.l_orderkey, remote_scan.count
Sort Key: remote_scan.count DESC, remote_scan.l_orderkey DESC Sort Key: remote_scan.count DESC, remote_scan.l_orderkey DESC
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.l_orderkey, remote_scan.count Output: remote_scan.l_orderkey, remote_scan.count
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> Limit -> Limit
Output: l_orderkey, (count(DISTINCT l_partkey)) Output: l_orderkey, (count(DISTINCT l_partkey))
-> Sort -> Sort
@ -93,8 +93,8 @@ SELECT
FROM lineitem_hash FROM lineitem_hash
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT 10; LIMIT 10;
count count
------- ---------------------------------------------------------------------
11661 11661
(1 row) (1 row)
@ -104,8 +104,8 @@ SELECT
FROM lineitem_hash FROM lineitem_hash
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT 10; LIMIT 10;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Limit Limit
Output: (count(DISTINCT remote_scan.count)) Output: (count(DISTINCT remote_scan.count))
-> Sort -> Sort
@ -113,12 +113,12 @@ SELECT
Sort Key: (count(DISTINCT remote_scan.count)) DESC Sort Key: (count(DISTINCT remote_scan.count)) DESC
-> Aggregate -> Aggregate
Output: count(DISTINCT remote_scan.count) Output: count(DISTINCT remote_scan.count)
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.count Output: remote_scan.count
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> HashAggregate -> HashAggregate
Output: l_partkey Output: l_partkey
Group Key: lineitem_hash.l_partkey Group Key: lineitem_hash.l_partkey
@ -132,8 +132,8 @@ SELECT
GROUP BY l_shipmode GROUP BY l_shipmode
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_shipmode | count l_shipmode | count
------------+------- ---------------------------------------------------------------------
TRUCK | 1757 TRUCK | 1757
MAIL | 1730 MAIL | 1730
AIR | 1702 AIR | 1702
@ -150,8 +150,8 @@ SELECT
GROUP BY l_shipmode GROUP BY l_shipmode
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Limit Limit
Output: remote_scan.l_shipmode, (count(DISTINCT remote_scan.count)) Output: remote_scan.l_shipmode, (count(DISTINCT remote_scan.count))
-> Sort -> Sort
@ -163,12 +163,12 @@ SELECT
-> Sort -> Sort
Output: remote_scan.l_shipmode, remote_scan.count Output: remote_scan.l_shipmode, remote_scan.count
Sort Key: remote_scan.l_shipmode DESC Sort Key: remote_scan.l_shipmode DESC
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.l_shipmode, remote_scan.count Output: remote_scan.l_shipmode, remote_scan.count
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> HashAggregate -> HashAggregate
Output: l_shipmode, l_partkey Output: l_shipmode, l_partkey
Group Key: lineitem_hash.l_shipmode, lineitem_hash.l_partkey Group Key: lineitem_hash.l_shipmode, lineitem_hash.l_partkey
@ -183,8 +183,8 @@ SELECT
GROUP BY l_orderkey GROUP BY l_orderkey
ORDER BY 3 DESC, 2 DESC, 1 ORDER BY 3 DESC, 2 DESC, 1
LIMIT 10; LIMIT 10;
l_orderkey | count | count l_orderkey | count | count
------------+-------+------- ---------------------------------------------------------------------
226 | 7 | 7 226 | 7 | 7
1316 | 7 | 7 1316 | 7 | 7
1477 | 7 | 7 1477 | 7 | 7
@ -204,19 +204,19 @@ SELECT
GROUP BY l_orderkey GROUP BY l_orderkey
ORDER BY 3 DESC, 2 DESC, 1 ORDER BY 3 DESC, 2 DESC, 1
LIMIT 10; LIMIT 10;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Limit Limit
Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1
-> Sort -> Sort
Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1
Sort Key: remote_scan.count_1 DESC, remote_scan.count DESC, remote_scan.l_orderkey Sort Key: remote_scan.count_1 DESC, remote_scan.count DESC, remote_scan.l_orderkey
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> Limit -> Limit
Output: l_orderkey, (count(DISTINCT l_partkey)), (count(DISTINCT l_shipmode)) Output: l_orderkey, (count(DISTINCT l_partkey)), (count(DISTINCT l_shipmode))
-> Sort -> Sort
@ -233,8 +233,8 @@ SELECT
SELECT SELECT
count(distinct l_orderkey), count(distinct l_partkey), count(distinct l_shipmode) count(distinct l_orderkey), count(distinct l_partkey), count(distinct l_shipmode)
FROM lineitem_hash; FROM lineitem_hash;
count | count | count count | count | count
-------+-------+------- ---------------------------------------------------------------------
2985 | 11661 | 7 2985 | 11661 | 7
(1 row) (1 row)
@ -242,16 +242,16 @@ EXPLAIN (COSTS false, VERBOSE true)
SELECT SELECT
count(distinct l_orderkey), count(distinct l_partkey), count(distinct l_shipmode) count(distinct l_orderkey), count(distinct l_partkey), count(distinct l_shipmode)
FROM lineitem_hash; FROM lineitem_hash;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Aggregate Aggregate
Output: count(DISTINCT remote_scan.count), count(DISTINCT remote_scan.count_1), count(DISTINCT remote_scan.count_2) Output: count(DISTINCT remote_scan.count), count(DISTINCT remote_scan.count_1), count(DISTINCT remote_scan.count_2)
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.count, remote_scan.count_1, remote_scan.count_2 Output: remote_scan.count, remote_scan.count_1, remote_scan.count_2
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> HashAggregate -> HashAggregate
Output: l_orderkey, l_partkey, l_shipmode Output: l_orderkey, l_partkey, l_shipmode
Group Key: lineitem_hash.l_orderkey, lineitem_hash.l_partkey, lineitem_hash.l_shipmode Group Key: lineitem_hash.l_orderkey, lineitem_hash.l_partkey, lineitem_hash.l_shipmode
@ -265,8 +265,8 @@ SELECT
count(distinct l_partkey), count(l_partkey), count(distinct l_partkey), count(l_partkey),
count(distinct l_shipmode), count(l_shipmode) count(distinct l_shipmode), count(l_shipmode)
FROM lineitem_hash; FROM lineitem_hash;
count | count | count | count | count | count count | count | count | count | count | count
-------+-------+-------+-------+-------+------- ---------------------------------------------------------------------
2985 | 12000 | 11661 | 12000 | 7 | 12000 2985 | 12000 | 11661 | 12000 | 7 | 12000
(1 row) (1 row)
@ -276,8 +276,8 @@ SELECT
FROM lineitem_hash FROM lineitem_hash
GROUP BY l_shipmode GROUP BY l_shipmode
ORDER BY 1, 2 DESC, 3 DESC; ORDER BY 1, 2 DESC, 3 DESC;
l_shipmode | count | count l_shipmode | count | count
------------+-------+------- ---------------------------------------------------------------------
AIR | 1702 | 1327 AIR | 1702 | 1327
FOB | 1700 | 1276 FOB | 1700 | 1276
MAIL | 1730 | 1299 MAIL | 1730 | 1299
@ -295,8 +295,8 @@ SELECT
GROUP BY l_shipmode GROUP BY l_shipmode
HAVING count(distinct l_orderkey) > 1300 HAVING count(distinct l_orderkey) > 1300
ORDER BY 1, 2 DESC; ORDER BY 1, 2 DESC;
l_shipmode | count | count l_shipmode | count | count
------------+-------+------- ---------------------------------------------------------------------
AIR | 1702 | 1327 AIR | 1702 | 1327
TRUCK | 1757 | 1333 TRUCK | 1757 | 1333
(2 rows) (2 rows)
@ -308,8 +308,8 @@ SELECT
GROUP BY l_shipmode GROUP BY l_shipmode
HAVING count(distinct l_orderkey) > 1300 HAVING count(distinct l_orderkey) > 1300
ORDER BY 1, 2 DESC; ORDER BY 1, 2 DESC;
l_shipmode | count l_shipmode | count
------------+------- ---------------------------------------------------------------------
AIR | 1702 AIR | 1702
TRUCK | 1757 TRUCK | 1757
(2 rows) (2 rows)
@ -322,8 +322,8 @@ SELECT
GROUP BY l_shipmode GROUP BY l_shipmode
HAVING count(distinct l_suppkey) > 1550 HAVING count(distinct l_suppkey) > 1550
ORDER BY 1, 2 DESC; ORDER BY 1, 2 DESC;
l_shipmode | count | count l_shipmode | count | count
------------+-------+------- ---------------------------------------------------------------------
AIR | 1702 | 1564 AIR | 1702 | 1564
FOB | 1700 | 1571 FOB | 1700 | 1571
MAIL | 1730 | 1573 MAIL | 1730 | 1573
@ -340,8 +340,8 @@ SELECT
GROUP BY l_shipmode GROUP BY l_shipmode
HAVING count(distinct l_suppkey) > 1550 HAVING count(distinct l_suppkey) > 1550
ORDER BY 1, 2 DESC; ORDER BY 1, 2 DESC;
l_shipmode | count l_shipmode | count
------------+------- ---------------------------------------------------------------------
AIR | 1702 AIR | 1702
FOB | 1700 FOB | 1700
MAIL | 1730 MAIL | 1730
@ -358,8 +358,8 @@ SELECT
GROUP BY l_shipmode GROUP BY l_shipmode
HAVING count(distinct l_suppkey) > 1550 HAVING count(distinct l_suppkey) > 1550
ORDER BY 1, 2 DESC; ORDER BY 1, 2 DESC;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Sort Sort
Output: remote_scan.l_shipmode, (count(DISTINCT remote_scan.count)) Output: remote_scan.l_shipmode, (count(DISTINCT remote_scan.count))
Sort Key: remote_scan.l_shipmode, (count(DISTINCT remote_scan.count)) DESC Sort Key: remote_scan.l_shipmode, (count(DISTINCT remote_scan.count)) DESC
@ -370,12 +370,12 @@ SELECT
-> Sort -> Sort
Output: remote_scan.l_shipmode, remote_scan.count, remote_scan.worker_column_3 Output: remote_scan.l_shipmode, remote_scan.count, remote_scan.worker_column_3
Sort Key: remote_scan.l_shipmode Sort Key: remote_scan.l_shipmode
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.l_shipmode, remote_scan.count, remote_scan.worker_column_3 Output: remote_scan.l_shipmode, remote_scan.count, remote_scan.worker_column_3
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> HashAggregate -> HashAggregate
Output: l_shipmode, l_partkey, l_suppkey Output: l_shipmode, l_partkey, l_suppkey
Group Key: lineitem_hash.l_shipmode, lineitem_hash.l_partkey, lineitem_hash.l_suppkey Group Key: lineitem_hash.l_shipmode, lineitem_hash.l_partkey, lineitem_hash.l_suppkey
@ -392,8 +392,8 @@ SELECT *
GROUP BY l_orderkey) sub GROUP BY l_orderkey) sub
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_orderkey | count l_orderkey | count
------------+------- ---------------------------------------------------------------------
14885 | 7 14885 | 7
14884 | 7 14884 | 7
14821 | 7 14821 | 7
@ -414,8 +414,8 @@ SELECT *
GROUP BY l_partkey) sub GROUP BY l_partkey) sub
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_partkey | count l_partkey | count
-----------+------- ---------------------------------------------------------------------
199146 | 3 199146 | 3
188804 | 3 188804 | 3
177771 | 3 177771 | 3
@ -437,21 +437,41 @@ SELECT *
GROUP BY l_partkey) sub GROUP BY l_partkey) sub
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
QUERY PLAN QUERY PLAN
------------------------------------------------------------------------- ---------------------------------------------------------------------
Limit Custom Scan (Citus Adaptive)
Output: remote_scan.l_partkey, remote_scan.count Output: remote_scan.l_partkey, remote_scan.count
-> Sort -> Distributed Subplan XXX_1
Output: remote_scan.l_partkey, remote_scan.count -> HashAggregate
Sort Key: remote_scan.count DESC, remote_scan.l_partkey DESC Output: remote_scan.l_partkey, COALESCE((pg_catalog.sum(remote_scan.count))::bigint, '0'::bigint)
-> Custom Scan (Citus Task-Tracker) Group Key: remote_scan.l_partkey
Output: remote_scan.l_partkey, remote_scan.count -> Custom Scan (Citus Adaptive)
Task Count: 4 Output: remote_scan.l_partkey, remote_scan.count
Tasks Shown: None, not supported for re-partition queries Task Count: 8
-> MapMergeJob Tasks Shown: One of 8
Map Task Count: 8 -> Task
Merge Task Count: 4 Node: host=localhost port=xxxxx dbname=regression
(12 rows) -> GroupAggregate
Output: l_partkey, count(DISTINCT l_orderkey)
Group Key: lineitem_hash.l_partkey
-> Sort
Output: l_partkey, l_orderkey
Sort Key: lineitem_hash.l_partkey
-> Seq Scan on public.lineitem_hash_240000 lineitem_hash
Output: l_partkey, l_orderkey
Task Count: 1
Tasks Shown: All
-> Task
Node: host=localhost port=xxxxx dbname=regression
-> Limit
Output: intermediate_result.l_partkey, intermediate_result.count
-> Sort
Output: intermediate_result.l_partkey, intermediate_result.count
Sort Key: intermediate_result.count DESC, intermediate_result.l_partkey DESC
-> Function Scan on pg_catalog.read_intermediate_result intermediate_result
Output: intermediate_result.l_partkey, intermediate_result.count
Function Call: read_intermediate_result('XXX_1'::text, 'binary'::citus_copy_format)
(32 rows)
-- count distinct with filters -- count distinct with filters
SELECT SELECT
@ -462,8 +482,8 @@ SELECT
GROUP BY l_orderkey GROUP BY l_orderkey
ORDER BY 2 DESC, 3 DESC, 1 ORDER BY 2 DESC, 3 DESC, 1
LIMIT 10; LIMIT 10;
l_orderkey | count | count l_orderkey | count | count
------------+-------+------- ---------------------------------------------------------------------
4964 | 4 | 7 4964 | 4 | 7
12005 | 4 | 7 12005 | 4 | 7
5409 | 4 | 6 5409 | 4 | 6
@ -485,19 +505,19 @@ SELECT
GROUP BY l_orderkey GROUP BY l_orderkey
ORDER BY 2 DESC, 3 DESC, 1 ORDER BY 2 DESC, 3 DESC, 1
LIMIT 10; LIMIT 10;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Limit Limit
Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1
-> Sort -> Sort
Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1
Sort Key: remote_scan.count DESC, remote_scan.count_1 DESC, remote_scan.l_orderkey Sort Key: remote_scan.count DESC, remote_scan.count_1 DESC, remote_scan.l_orderkey
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_orderkey, remote_scan.count, remote_scan.count_1
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> Limit -> Limit
Output: l_orderkey, (count(DISTINCT l_suppkey) FILTER (WHERE (l_shipmode = 'AIR'::bpchar))), (count(DISTINCT l_suppkey)) Output: l_orderkey, (count(DISTINCT l_suppkey) FILTER (WHERE (l_shipmode = 'AIR'::bpchar))), (count(DISTINCT l_suppkey))
-> Sort -> Sort
@ -517,8 +537,8 @@ SELECT
GROUP BY l_suppkey GROUP BY l_suppkey
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_suppkey | count l_suppkey | count
-----------+------- ---------------------------------------------------------------------
7680 | 4 7680 | 4
7703 | 3 7703 | 3
7542 | 3 7542 | 3
@ -539,8 +559,8 @@ SELECT
GROUP BY l_suppkey GROUP BY l_suppkey
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
QUERY PLAN QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------
Limit Limit
Output: remote_scan.l_suppkey, (count(DISTINCT remote_scan.count) FILTER (WHERE (remote_scan.count_1 = 'AIR'::bpchar))) Output: remote_scan.l_suppkey, (count(DISTINCT remote_scan.count) FILTER (WHERE (remote_scan.count_1 = 'AIR'::bpchar)))
-> Sort -> Sort
@ -552,12 +572,12 @@ SELECT
-> Sort -> Sort
Output: remote_scan.l_suppkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_suppkey, remote_scan.count, remote_scan.count_1
Sort Key: remote_scan.l_suppkey DESC Sort Key: remote_scan.l_suppkey DESC
-> Custom Scan (Citus Task-Tracker) -> Custom Scan (Citus Adaptive)
Output: remote_scan.l_suppkey, remote_scan.count, remote_scan.count_1 Output: remote_scan.l_suppkey, remote_scan.count, remote_scan.count_1
Task Count: 8 Task Count: 8
Tasks Shown: One of 8 Tasks Shown: One of 8
-> Task -> Task
Node: host=localhost port=57637 dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> HashAggregate -> HashAggregate
Output: l_suppkey, l_partkey, l_shipmode Output: l_suppkey, l_partkey, l_shipmode
Group Key: lineitem_hash.l_suppkey, lineitem_hash.l_partkey, lineitem_hash.l_shipmode Group Key: lineitem_hash.l_suppkey, lineitem_hash.l_partkey, lineitem_hash.l_shipmode
@ -569,8 +589,8 @@ SELECT
SELECT SELECT
count(DISTINCT l_orderkey) FILTER (WHERE l_shipmode = 'AIR') count(DISTINCT l_orderkey) FILTER (WHERE l_shipmode = 'AIR')
FROM lineitem_hash; FROM lineitem_hash;
count count
------- ---------------------------------------------------------------------
1327 1327
(1 row) (1 row)
@ -578,8 +598,8 @@ SELECT
SELECT SELECT
count(DISTINCT l_partkey) FILTER (WHERE l_shipmode = 'AIR') count(DISTINCT l_partkey) FILTER (WHERE l_shipmode = 'AIR')
FROM lineitem_hash; FROM lineitem_hash;
count count
------- ---------------------------------------------------------------------
1702 1702
(1 row) (1 row)
@ -588,8 +608,8 @@ SELECT
count(DISTINCT l_partkey), count(DISTINCT l_partkey),
count(DISTINCT l_shipdate) count(DISTINCT l_shipdate)
FROM lineitem_hash; FROM lineitem_hash;
count | count | count count | count | count
-------+-------+------- ---------------------------------------------------------------------
1702 | 11661 | 2470 1702 | 11661 | 2470
(1 row) (1 row)
@ -602,8 +622,8 @@ SELECT *
GROUP BY l_orderkey) sub GROUP BY l_orderkey) sub
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_orderkey | count l_orderkey | count
------------+------- ---------------------------------------------------------------------
14885 | 7 14885 | 7
14884 | 7 14884 | 7
14821 | 7 14821 | 7
@ -625,8 +645,8 @@ SELECT *
GROUP BY l_orderkey) sub GROUP BY l_orderkey) sub
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_orderkey | count l_orderkey | count
------------+------- ---------------------------------------------------------------------
12005 | 4 12005 | 4
5409 | 4 5409 | 4
4964 | 4 4964 | 4
@ -650,8 +670,8 @@ SELECT *
WHERE count > 0 WHERE count > 0
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_orderkey | count l_orderkey | count
------------+------- ---------------------------------------------------------------------
12005 | 4 12005 | 4
5409 | 4 5409 | 4
4964 | 4 4964 | 4
@ -674,8 +694,8 @@ SELECT *
WHERE count > 0 WHERE count > 0
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_orderkey | count l_orderkey | count
------------+------- ---------------------------------------------------------------------
14275 | 7 14275 | 7
14181 | 7 14181 | 7
13605 | 7 13605 | 7
@ -721,8 +741,8 @@ SELECT *
GROUP BY l_orderkey) sub GROUP BY l_orderkey) sub
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 0; LIMIT 0;
l_orderkey | count l_orderkey | count
------------+------- ---------------------------------------------------------------------
(0 rows) (0 rows)
-- multiple nested subquery -- multiple nested subquery
@ -755,8 +775,8 @@ SELECT
total total
ORDER BY ORDER BY
total_avg_count DESC; total_avg_count DESC;
total | total_avg_count total | total_avg_count
-------+-------------------- ---------------------------------------------------------------------
1 | 3.6000000000000000 1 | 3.6000000000000000
6 | 2.8333333333333333 6 | 2.8333333333333333
10 | 2.6000000000000000 10 | 2.6000000000000000
@ -787,8 +807,8 @@ SELECT *
ORDER BY ORDER BY
1 DESC, 2 DESC 1 DESC, 2 DESC
LIMIT 10; LIMIT 10;
count | l_shipdate count | l_shipdate
-------+------------ ---------------------------------------------------------------------
14 | 07-30-1997 14 | 07-30-1997
13 | 05-26-1998 13 | 05-26-1998
13 | 08-08-1997 13 | 08-08-1997
@ -815,8 +835,8 @@ SELECT *
ORDER BY ORDER BY
2 DESC, 1 DESC 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
l_quantity | count l_quantity | count
------------+------- ---------------------------------------------------------------------
48.00 | 13 48.00 | 13
47.00 | 13 47.00 | 13
37.00 | 13 37.00 | 13
@ -847,15 +867,15 @@ SELECT *
ORDER BY ORDER BY
1 DESC, 2 DESC 1 DESC, 2 DESC
LIMIT 10; LIMIT 10;
avg | l_shipmode avg | l_shipmode
-------------------------+------------ ---------------------------------------------------------------------
44.82904609027336300064 | MAIL 44.82904609027336300064 | MAIL
44.80704536679536679537 | SHIP 44.80704536679536679537 | SHIP
44.68891732736572890026 | AIR 44.68891732736572890026 | AIR
44.34106724470134874759 | REG AIR 44.34106724470134874759 | REG AIR
43.12739987269255251432 | FOB 43.12739987269255251432 | FOB
43.07299253636938646426 | RAIL 43.07299253636938646426 | RAIL
40.50298377916903813318 | TRUCK 40.50298377916903813318 | TRUCK
(7 rows) (7 rows)
-- count DISTINCT CASE WHEN expression -- count DISTINCT CASE WHEN expression
@ -873,8 +893,8 @@ SELECT *
GROUP BY l_shipdate) sub GROUP BY l_shipdate) sub
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT 10; LIMIT 10;
avg avg
----- ---------------------------------------------------------------------
7 7
6 6
6 6
@ -900,8 +920,8 @@ SELECT *
ORDER BY ORDER BY
2 DESC,1 DESC 2 DESC,1 DESC
LIMIT 10; LIMIT 10;
l_shipmode | count l_shipmode | count
------------+------- ---------------------------------------------------------------------
TRUCK | 1689 TRUCK | 1689
MAIL | 1683 MAIL | 1683
FOB | 1655 FOB | 1655
@ -922,8 +942,8 @@ SELECT
GROUP BY 1 GROUP BY 1
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT 5; LIMIT 5;
l_orderkey | count | count l_orderkey | count | count
------------+-------+------- ---------------------------------------------------------------------
14947 | 2 | 1 14947 | 2 | 1
14946 | 2 | 1 14946 | 2 | 1
14945 | 6 | 1 14945 | 6 | 1
@ -944,8 +964,8 @@ FROM
GROUP BY 1 GROUP BY 1
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT 5; LIMIT 5;
user_id | count | count | count user_id | count | count | count
---------+-------+-------+------- ---------------------------------------------------------------------
6 | 11 | 1 | 1 6 | 11 | 1 | 1
5 | 27 | 1 | 1 5 | 27 | 1 | 1
4 | 24 | 1 | 1 4 | 24 | 1 | 1
@ -960,9 +980,9 @@ CREATE TYPE test_item AS
); );
CREATE TABLE test_count_distinct_array (key int, value int , value_arr test_item[]); CREATE TABLE test_count_distinct_array (key int, value int , value_arr test_item[]);
SELECT create_distributed_table('test_count_distinct_array', 'key'); SELECT create_distributed_table('test_count_distinct_array', 'key');
create_distributed_table create_distributed_table
-------------------------- ---------------------------------------------------------------------
(1 row) (1 row)
INSERT INTO test_count_distinct_array SELECT i, i, ARRAY[(i,i)::test_item] FROM generate_Series(0, 1000) i; INSERT INTO test_count_distinct_array SELECT i, i, ARRAY[(i,i)::test_item] FROM generate_Series(0, 1000) i;
@ -978,8 +998,8 @@ FROM
GROUP BY 1 GROUP BY 1
ORDER BY 1 DESC ORDER BY 1 DESC
LIMIT 5; LIMIT 5;
key | count | count | count key | count | count | count
------+-------+-------+------- ---------------------------------------------------------------------
1000 | 1 | 1 | 1 1000 | 1 | 1 | 1
999 | 1 | 1 | 1 999 | 1 | 1 | 1
998 | 1 | 1 | 1 998 | 1 | 1 | 1
@ -999,7 +1019,7 @@ SELECT *
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
ERROR: cannot compute aggregate (distinct) ERROR: cannot compute aggregate (distinct)
DETAIL: Only count(distinct) aggregate is supported in subqueries DETAIL: table partitioning is unsuitable for aggregate (distinct)
SELECT * SELECT *
FROM ( FROM (
SELECT SELECT
@ -1009,7 +1029,7 @@ SELECT *
ORDER BY 2 DESC, 1 DESC ORDER BY 2 DESC, 1 DESC
LIMIT 10; LIMIT 10;
ERROR: cannot compute aggregate (distinct) ERROR: cannot compute aggregate (distinct)
DETAIL: Only count(distinct) aggregate is supported in subqueries DETAIL: table partitioning is unsuitable for aggregate (distinct)
-- whole row references, oid, and ctid are not supported in count distinct -- whole row references, oid, and ctid are not supported in count distinct
-- test table does not have oid or ctid enabled, so tests for them are skipped -- test table does not have oid or ctid enabled, so tests for them are skipped
SELECT * SELECT *
@ -1049,8 +1069,8 @@ SELECT *
WHERE year = 1995 WHERE year = 1995
ORDER BY 2 DESC, 1 ORDER BY 2 DESC, 1
LIMIT 10; LIMIT 10;
l_shipdate | distinct_part | year l_shipdate | distinct_part | year
------------+---------------+------ ---------------------------------------------------------------------
11-29-1995 | 5 | 1995 11-29-1995 | 5 | 1995
03-24-1995 | 4 | 1995 03-24-1995 | 4 | 1995
09-18-1995 | 4 | 1995 09-18-1995 | 4 | 1995
@ -1081,8 +1101,8 @@ SELECT *
WHERE year = 1995 WHERE year = 1995
ORDER BY 2 DESC, 1 ORDER BY 2 DESC, 1
LIMIT 10; LIMIT 10;
l_shipdate | distinct_part | year l_shipdate | distinct_part | year
------------+---------------+------ ---------------------------------------------------------------------
11-29-1995 | 5 | 1995 11-29-1995 | 5 | 1995
03-24-1995 | 4 | 1995 03-24-1995 | 4 | 1995
09-18-1995 | 4 | 1995 09-18-1995 | 4 | 1995
@ -1111,8 +1131,8 @@ SELECT *
WHERE year = 1995 WHERE year = 1995
ORDER BY 2 DESC, 1 ORDER BY 2 DESC, 1
LIMIT 10; LIMIT 10;
l_shipdate | distinct_part | year l_shipdate | distinct_part | year
------------+---------------+------ ---------------------------------------------------------------------
11-29-1995 | 5 | 1995 11-29-1995 | 5 | 1995
03-24-1995 | 4 | 1995 03-24-1995 | 4 | 1995
09-18-1995 | 4 | 1995 09-18-1995 | 4 | 1995

View File

@ -190,7 +190,8 @@ select * FROM (
select * FROM ( select * FROM (
SELECT key k, avg(distinct floor(agg1.val/2)) m from aggdata agg1 SELECT key k, avg(distinct floor(agg1.val/2)) m from aggdata agg1
group by key group by key
) subq; ) subq
order by k,m;
-- Test TransformsSubqueryNode with group by not in FROM (failed in past) -- Test TransformsSubqueryNode with group by not in FROM (failed in past)
select count(*) FROM ( select count(*) FROM (

View File

@ -4,6 +4,8 @@
-- Tests to log cross shard queries according to error log level -- Tests to log cross shard queries according to error log level
-- --
SET citus.enable_repartition_joins to ON;
-- Create a distributed table and add data to it -- Create a distributed table and add data to it
CREATE TABLE multi_task_table CREATE TABLE multi_task_table
( (

View File

@ -8,6 +8,7 @@ SET citus.next_shard_id TO 570000;
RESET citus.task_executor_type; RESET citus.task_executor_type;
SET citus.explain_distributed_queries TO on; SET citus.explain_distributed_queries TO on;
SET citus.enable_repartition_joins to ON;
-- Function that parses explain output as JSON -- Function that parses explain output as JSON
CREATE FUNCTION explain_json(query text) CREATE FUNCTION explain_json(query text)

View File

@ -10,6 +10,7 @@ SET citus.next_shard_id TO 650000;
SET citus.explain_distributed_queries TO off; SET citus.explain_distributed_queries TO off;
SET citus.log_multi_join_order TO TRUE; SET citus.log_multi_join_order TO TRUE;
SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise
SET citus.enable_repartition_joins to ON;
SET citus.shard_count to 2; SET citus.shard_count to 2;
SET citus.shard_replication_factor to 1; SET citus.shard_replication_factor to 1;
RESET client_min_messages; RESET client_min_messages;

View File

@ -11,6 +11,7 @@ SET citus.next_shard_id TO 660000;
SET citus.explain_distributed_queries TO off; SET citus.explain_distributed_queries TO off;
SET citus.log_multi_join_order TO TRUE; SET citus.log_multi_join_order TO TRUE;
SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise SET citus.task_executor_type = 'task-tracker'; -- can't explain all queries otherwise
SET citus.enable_repartition_joins to ON;
SET client_min_messages TO LOG; SET client_min_messages TO LOG;
-- The following queries are basically the same as the ones in tpch_small -- The following queries are basically the same as the ones in tpch_small

View File

@ -107,6 +107,7 @@ SELECT count(*) FROM test;
SELECT count(*) FROM test WHERE id = 1; SELECT count(*) FROM test WHERE id = 1;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
SELECT count(*), min(current_user) FROM test; SELECT count(*), min(current_user) FROM test;
-- test re-partition query (needs to transmit intermediate results) -- test re-partition query (needs to transmit intermediate results)
@ -143,6 +144,7 @@ SELECT count(*) FROM test;
SELECT count(*) FROM test WHERE id = 1; SELECT count(*) FROM test WHERE id = 1;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
SELECT count(*), min(current_user) FROM test; SELECT count(*), min(current_user) FROM test;
-- test re-partition query (needs to transmit intermediate results) -- test re-partition query (needs to transmit intermediate results)
@ -179,6 +181,7 @@ SELECT count(*) FROM test;
SELECT count(*) FROM test WHERE id = 1; SELECT count(*) FROM test WHERE id = 1;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
SELECT count(*), min(current_user) FROM test; SELECT count(*), min(current_user) FROM test;
-- test re-partition query -- test re-partition query

View File

@ -5,6 +5,7 @@ SET citus.next_shard_id TO 1660000;
SET citus.shard_count TO 4; SET citus.shard_count TO 4;
SET citus.shard_replication_factor TO 1; SET citus.shard_replication_factor TO 1;
SET citus.enable_repartition_joins to ON;
-- --
-- Distributed Partitioned Table Creation Tests -- Distributed Partitioned Table Creation Tests

View File

@ -678,20 +678,22 @@ WHERE
ORDER BY 1; ORDER BY 1;
SET citus.task_executor_type to "task-tracker"; SET citus.task_executor_type to "task-tracker";
SET citus.enable_repartition_joins to ON;
SELECT SELECT
colocated_table_test.value_2 colocated_table_test.value_2
FROM FROM
reference_table_test, colocated_table_test, colocated_table_test_2 reference_table_test, colocated_table_test, colocated_table_test_2
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;
SELECT SELECT
reference_table_test.value_2 reference_table_test.value_2
FROM FROM
reference_table_test, colocated_table_test, colocated_table_test_2 reference_table_test, colocated_table_test, colocated_table_test_2
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;
SET citus.log_multi_join_order TO FALSE; SET citus.log_multi_join_order TO FALSE;

View File

@ -9,6 +9,7 @@
SET citus.next_shard_id TO 690000; SET citus.next_shard_id TO 690000;
SET citus.enable_unique_job_ids TO off; SET citus.enable_unique_job_ids TO off;
SET citus.enable_repartition_joins to ON;
create schema repartition_join; create schema repartition_join;
DROP TABLE IF EXISTS repartition_join.order_line; DROP TABLE IF EXISTS repartition_join.order_line;
@ -34,7 +35,7 @@ SELECT create_distributed_table('order_line','ol_w_id');
SELECT create_distributed_table('stock','s_w_id'); SELECT create_distributed_table('stock','s_w_id');
BEGIN; BEGIN;
SET client_min_messages TO DEBUG4; SET client_min_messages TO DEBUG;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
-- Debug4 log messages display jobIds within them. We explicitly set the jobId -- Debug4 log messages display jobIds within them. We explicitly set the jobId

View File

@ -11,6 +11,7 @@ SET citus.next_shard_id TO 700000;
SET client_min_messages TO DEBUG2; SET client_min_messages TO DEBUG2;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
-- Single range-repartition join to test join-pruning behaviour. -- Single range-repartition join to test join-pruning behaviour.
EXPLAIN (COSTS OFF) EXPLAIN (COSTS OFF)

View File

@ -12,6 +12,7 @@ SET citus.next_shard_id TO 710000;
BEGIN; BEGIN;
SET client_min_messages TO DEBUG3; SET client_min_messages TO DEBUG3;
SET citus.task_executor_type TO 'task-tracker'; SET citus.task_executor_type TO 'task-tracker';
SET citus.enable_repartition_joins to ON;
-- Single range repartition join to test anchor-shard based task assignment and -- Single range repartition join to test anchor-shard based task assignment and
-- assignment propagation to merge and data-fetch tasks. -- assignment propagation to merge and data-fetch tasks.

View File

@ -3,6 +3,7 @@
-- --
SET citus.next_shard_id TO 535000; SET citus.next_shard_id TO 535000;
SET citus.enable_repartition_joins to ON;
-- START type creation -- START type creation
@ -160,6 +161,7 @@ FUNCTION 1 test_udt_hash(test_udt);
-- Distribute and populate the two tables. -- Distribute and populate the two tables.
SET citus.shard_count TO 3; SET citus.shard_count TO 3;
SET citus.shard_replication_factor TO 1; SET citus.shard_replication_factor TO 1;
SET citus.enable_repartition_joins to ON;
SELECT create_distributed_table('repartition_udt', 'pk', 'hash'); SELECT create_distributed_table('repartition_udt', 'pk', 'hash');
SET citus.shard_count TO 5; SET citus.shard_count TO 5;
SELECT create_distributed_table('repartition_udt_other', 'pk', 'hash'); SELECT create_distributed_table('repartition_udt_other', 'pk', 'hash');

View File

@ -601,6 +601,7 @@ SELECT create_distributed_table('test_schema_support_join_2.nation_hash', 'n_nat
5|ETHIOPIA|0|ven packages wake quickly. regu 5|ETHIOPIA|0|ven packages wake quickly. regu
\. \.
SET citus.enable_repartition_joins to ON;
-- check when search_path is public, -- check when search_path is public,
-- join of two tables which are in different schemas, -- join of two tables which are in different schemas,
-- join on partition column -- join on partition column

View File

@ -225,6 +225,7 @@ SELECT raise_failed_execution('
SELECT u.* FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003); SELECT u.* FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003);
'); ');
SET citus.enable_repartition_joins to ON;
-- following will succeed since it fetches few columns -- following will succeed since it fetches few columns
SELECT u.long_column_001, u.long_column_002, u.long_column_003 FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003); SELECT u.long_column_001, u.long_column_002, u.long_column_003 FROM wide_table u JOIN wide_table v ON (u.long_column_002 = v.long_column_003);

View File

@ -1,6 +1,8 @@
CREATE SCHEMA recursive_set_local; CREATE SCHEMA recursive_set_local;
SET search_path TO recursive_set_local, public; SET search_path TO recursive_set_local, public;
SET citus.enable_repartition_joins to ON;
CREATE TABLE recursive_set_local.test (x int, y int); CREATE TABLE recursive_set_local.test (x int, y int);
SELECT create_distributed_table('test', 'x'); SELECT create_distributed_table('test', 'x');