diff --git a/src/backend/distributed/planner/multi_explain.c b/src/backend/distributed/planner/multi_explain.c index 3ba1b569e..bf89dc043 100644 --- a/src/backend/distributed/planner/multi_explain.c +++ b/src/backend/distributed/planner/multi_explain.c @@ -23,6 +23,7 @@ #include "distributed/citus_nodefuncs.h" #include "distributed/connection_management.h" #include "distributed/insert_select_planner.h" +#include "distributed/listutils.h" #include "distributed/multi_client_executor.h" #include "distributed/multi_executor.h" #include "distributed/multi_explain.h" @@ -358,6 +359,9 @@ ExplainTaskList(List *taskList, ExplainState *es) ListCell *remoteExplainCell = NULL; List *remoteExplainList = NIL; + /* make sure that the output is consistent */ + taskList = SortList(taskList, CompareTasksByTaskId); + foreach(taskCell, taskList) { Task *task = (Task *) lfirst(taskCell); diff --git a/src/backend/distributed/planner/multi_physical_planner.c b/src/backend/distributed/planner/multi_physical_planner.c index b1d8d2e64..bb104c998 100644 --- a/src/backend/distributed/planner/multi_physical_planner.c +++ b/src/backend/distributed/planner/multi_physical_planner.c @@ -180,7 +180,6 @@ static List * ActivePlacementList(List *placementList); static List * LeftRotateList(List *list, uint32 rotateCount); static List * FindDependedMergeTaskList(Task *sqlTask); static List * AssignDualHashTaskList(List *taskList); -static int CompareTasksByTaskId(const void *leftElement, const void *rightElement); static void AssignDataFetchDependencies(List *taskList); static uint32 TaskListHighestTaskId(List *taskList); static List * MapTaskList(MapMergeJob *mapMergeJob, List *filterTaskList); @@ -5417,7 +5416,7 @@ AssignDualHashTaskList(List *taskList) /* Helper function to compare two tasks by their taskId. */ -static int +int CompareTasksByTaskId(const void *leftElement, const void *rightElement) { const Task *leftTask = *((const Task **) leftElement); diff --git a/src/include/distributed/multi_physical_planner.h b/src/include/distributed/multi_physical_planner.h index 7d125e33c..c4d662d5f 100644 --- a/src/include/distributed/multi_physical_planner.h +++ b/src/include/distributed/multi_physical_planner.h @@ -351,6 +351,7 @@ extern List * TaskListDifference(const List *list1, const List *list2); extern List * AssignAnchorShardTaskList(List *taskList); extern List * FirstReplicaAssignTaskList(List *taskList); extern List * RoundRobinAssignTaskList(List *taskList); +extern int CompareTasksByTaskId(const void *leftElement, const void *rightElement); /* function declaration for creating Task */ extern List * QueryPushdownSqlTaskList(Query *query, uint64 jobId, diff --git a/src/test/regress/expected/multi_explain.out b/src/test/regress/expected/multi_explain.out index 6db110a35..c4a31d298 100644 --- a/src/test/regress/expected/multi_explain.out +++ b/src/test/regress/expected/multi_explain.out @@ -50,10 +50,10 @@ Sort Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Group Key: l_quantity - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem -- Test disable hash aggregate SET enable_hashagg TO off; EXPLAIN (COSTS FALSE, FORMAT TEXT) @@ -69,10 +69,10 @@ Sort Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Group Key: l_quantity - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem SET enable_hashagg TO on; -- Test JSON format EXPLAIN (COSTS FALSE, FORMAT JSON) @@ -104,7 +104,7 @@ EXPLAIN (COSTS FALSE, FORMAT JSON) "Tasks Shown": "One of 2", "Tasks": [ { - "Node": "host=localhost port=57637 dbname=regression", + "Node": "host=localhost port=57638 dbname=regression", "Remote Plan": [ [ { @@ -119,7 +119,7 @@ EXPLAIN (COSTS FALSE, FORMAT JSON) "Node Type": "Seq Scan", "Parent Relationship": "Outer", "Parallel Aware": false, - "Relation Name": "lineitem_290001", + "Relation Name": "lineitem_290000", "Alias": "lineitem" } ] @@ -179,7 +179,7 @@ EXPLAIN (COSTS FALSE, FORMAT XML) One of 2 - host=localhost port=57637 dbname=regression + host=localhost port=57638 dbname=regression @@ -196,7 +196,7 @@ EXPLAIN (COSTS FALSE, FORMAT XML) Seq Scan Outer false - lineitem_290001 + lineitem_290000 lineitem @@ -248,7 +248,7 @@ EXPLAIN (COSTS FALSE, FORMAT YAML) Task Count: 2 Tasks Shown: "One of 2" Tasks: - - Node: "host=localhost port=57637 dbname=regression" + - Node: "host=localhost port=57638 dbname=regression" Remote Plan: - Plan: Node Type: "Aggregate" @@ -261,7 +261,7 @@ EXPLAIN (COSTS FALSE, FORMAT YAML) - Node Type: "Seq Scan" Parent Relationship: "Outer" Parallel Aware: false - Relation Name: "lineitem_290001" + Relation Name: "lineitem_290000" Alias: "lineitem" -- Test Text format @@ -276,10 +276,10 @@ Sort Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Group Key: l_quantity - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem -- Test verbose EXPLAIN (COSTS FALSE, VERBOSE TRUE) SELECT sum(l_quantity) / avg(l_quantity) FROM lineitem; @@ -290,10 +290,10 @@ Aggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Aggregate Output: sum(l_quantity), sum(l_quantity), count(l_quantity) - -> Seq Scan on public.lineitem_290001 lineitem + -> Seq Scan on public.lineitem_290000 lineitem Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment -- Test join EXPLAIN (COSTS FALSE) @@ -307,16 +307,16 @@ Limit Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Limit -> Sort Sort Key: lineitem.l_quantity -> Hash Join Hash Cond: (lineitem.l_orderkey = orders.o_orderkey) - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem Filter: (l_quantity < 5.0) -> Hash - -> Seq Scan on orders_290003 orders + -> Seq Scan on orders_290002 orders -- Test insert EXPLAIN (COSTS FALSE) INSERT INTO lineitem VALUES (1,0), (2, 0), (3, 0), (4, 0); @@ -393,8 +393,8 @@ Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression - -> Seq Scan on lineitem_290001 lineitem + Node: host=localhost port=57638 dbname=regression + -> Seq Scan on lineitem_290000 lineitem -- Test having EXPLAIN (COSTS FALSE, VERBOSE TRUE) SELECT sum(l_quantity) / avg(l_quantity) FROM lineitem @@ -407,10 +407,10 @@ Aggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Aggregate Output: sum(l_quantity), sum(l_quantity), count(l_quantity), sum(l_quantity) - -> Seq Scan on public.lineitem_290001 lineitem + -> Seq Scan on public.lineitem_290000 lineitem Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment -- Test having without aggregate EXPLAIN (COSTS FALSE, VERBOSE TRUE) @@ -426,11 +426,11 @@ HashAggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Output: l_quantity, l_quantity Group Key: lineitem.l_quantity - -> Seq Scan on public.lineitem_290001 lineitem + -> Seq Scan on public.lineitem_290000 lineitem Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment -- Subquery pushdown tests with explain EXPLAIN (COSTS OFF) @@ -1036,9 +1036,9 @@ Aggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Aggregate - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem -- ensure EXPLAIN EXECUTE doesn't crash PREPARE task_tracker_query AS SELECT avg(l_linenumber) FROM lineitem WHERE l_orderkey > 9030; @@ -1102,9 +1102,9 @@ Custom Scan (Citus INSERT ... SELECT via coordinator) Task Count: 4 Tasks Shown: One of 4 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Limit - -> Seq Scan on orders_hash_part_360046 orders_hash_part + -> Seq Scan on orders_hash_part_360045 orders_hash_part SELECT true AS valid FROM explain_json($$ INSERT INTO lineitem_hash_part (l_orderkey) SELECT o_orderkey FROM orders_hash_part LIMIT 3; @@ -1119,9 +1119,9 @@ Custom Scan (Citus INSERT ... SELECT via coordinator) Task Count: 4 Tasks Shown: One of 4 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Limit - -> Seq Scan on orders_hash_part_360046 orders_hash_part + -> Seq Scan on orders_hash_part_360045 orders_hash_part EXPLAIN (COSTS OFF) INSERT INTO lineitem_hash_part (l_orderkey) SELECT s FROM generate_series(1,5) s; diff --git a/src/test/regress/expected/multi_explain_0.out b/src/test/regress/expected/multi_explain_0.out index c2a89c81c..18373f232 100644 --- a/src/test/regress/expected/multi_explain_0.out +++ b/src/test/regress/expected/multi_explain_0.out @@ -50,10 +50,10 @@ Sort Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Group Key: l_quantity - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem -- Test disable hash aggregate SET enable_hashagg TO off; EXPLAIN (COSTS FALSE, FORMAT TEXT) @@ -69,10 +69,10 @@ Sort Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Group Key: l_quantity - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem SET enable_hashagg TO on; -- Test JSON format EXPLAIN (COSTS FALSE, FORMAT JSON) @@ -104,7 +104,7 @@ EXPLAIN (COSTS FALSE, FORMAT JSON) "Tasks Shown": "One of 2", "Tasks": [ { - "Node": "host=localhost port=57637 dbname=regression", + "Node": "host=localhost port=57638 dbname=regression", "Remote Plan": [ [ { @@ -119,7 +119,7 @@ EXPLAIN (COSTS FALSE, FORMAT JSON) "Node Type": "Seq Scan", "Parent Relationship": "Outer", "Parallel Aware": false, - "Relation Name": "lineitem_290001", + "Relation Name": "lineitem_290000", "Alias": "lineitem" } ] @@ -179,7 +179,7 @@ EXPLAIN (COSTS FALSE, FORMAT XML) One of 2 - host=localhost port=57637 dbname=regression + host=localhost port=57638 dbname=regression @@ -196,7 +196,7 @@ EXPLAIN (COSTS FALSE, FORMAT XML) Seq Scan Outer false - lineitem_290001 + lineitem_290000 lineitem @@ -248,7 +248,7 @@ EXPLAIN (COSTS FALSE, FORMAT YAML) Task Count: 2 Tasks Shown: "One of 2" Tasks: - - Node: "host=localhost port=57637 dbname=regression" + - Node: "host=localhost port=57638 dbname=regression" Remote Plan: - Plan: Node Type: "Aggregate" @@ -261,7 +261,7 @@ EXPLAIN (COSTS FALSE, FORMAT YAML) - Node Type: "Seq Scan" Parent Relationship: "Outer" Parallel Aware: false - Relation Name: "lineitem_290001" + Relation Name: "lineitem_290000" Alias: "lineitem" -- Test Text format @@ -276,10 +276,10 @@ Sort Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Group Key: l_quantity - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem -- Test verbose EXPLAIN (COSTS FALSE, VERBOSE TRUE) SELECT sum(l_quantity) / avg(l_quantity) FROM lineitem; @@ -290,10 +290,10 @@ Aggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Aggregate Output: sum(l_quantity), sum(l_quantity), count(l_quantity) - -> Seq Scan on public.lineitem_290001 lineitem + -> Seq Scan on public.lineitem_290000 lineitem Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment -- Test join EXPLAIN (COSTS FALSE) @@ -307,16 +307,16 @@ Limit Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Limit -> Sort Sort Key: lineitem.l_quantity -> Hash Join Hash Cond: (lineitem.l_orderkey = orders.o_orderkey) - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem Filter: (l_quantity < 5.0) -> Hash - -> Seq Scan on orders_290003 orders + -> Seq Scan on orders_290002 orders -- Test insert EXPLAIN (COSTS FALSE) INSERT INTO lineitem VALUES (1,0), (2, 0), (3, 0), (4, 0); @@ -393,8 +393,8 @@ Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression - -> Seq Scan on lineitem_290001 lineitem + Node: host=localhost port=57638 dbname=regression + -> Seq Scan on lineitem_290000 lineitem -- Test having EXPLAIN (COSTS FALSE, VERBOSE TRUE) SELECT sum(l_quantity) / avg(l_quantity) FROM lineitem @@ -407,10 +407,10 @@ Aggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Aggregate Output: sum(l_quantity), sum(l_quantity), count(l_quantity), sum(l_quantity) - -> Seq Scan on public.lineitem_290001 lineitem + -> Seq Scan on public.lineitem_290000 lineitem Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment -- Test having without aggregate EXPLAIN (COSTS FALSE, VERBOSE TRUE) @@ -426,11 +426,11 @@ HashAggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Output: l_quantity, l_quantity Group Key: lineitem.l_quantity - -> Seq Scan on public.lineitem_290001 lineitem + -> Seq Scan on public.lineitem_290000 lineitem Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment -- Subquery pushdown tests with explain EXPLAIN (COSTS OFF) @@ -1036,9 +1036,9 @@ Aggregate Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Aggregate - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem -- ensure EXPLAIN EXECUTE doesn't crash PREPARE task_tracker_query AS SELECT avg(l_linenumber) FROM lineitem WHERE l_orderkey > 9030; @@ -1102,9 +1102,9 @@ Custom Scan (Citus INSERT ... SELECT via coordinator) Task Count: 4 Tasks Shown: One of 4 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Limit - -> Seq Scan on orders_hash_part_360046 orders_hash_part + -> Seq Scan on orders_hash_part_360045 orders_hash_part SELECT true AS valid FROM explain_json($$ INSERT INTO lineitem_hash_part (l_orderkey) SELECT o_orderkey FROM orders_hash_part LIMIT 3; @@ -1119,9 +1119,9 @@ Custom Scan (Citus INSERT ... SELECT via coordinator) Task Count: 4 Tasks Shown: One of 4 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> Limit - -> Seq Scan on orders_hash_part_360046 orders_hash_part + -> Seq Scan on orders_hash_part_360045 orders_hash_part EXPLAIN (COSTS OFF) INSERT INTO lineitem_hash_part (l_orderkey) SELECT s FROM generate_series(1,5) s; diff --git a/src/test/regress/expected/multi_having_pushdown.out b/src/test/regress/expected/multi_having_pushdown.out index cb19b6540..e0bea575f 100644 --- a/src/test/regress/expected/multi_having_pushdown.out +++ b/src/test/regress/expected/multi_having_pushdown.out @@ -62,10 +62,10 @@ EXPLAIN (COSTS FALSE) Task Count: 2 Tasks Shown: One of 2 -> Task - Node: host=localhost port=57637 dbname=regression + Node: host=localhost port=57638 dbname=regression -> HashAggregate Group Key: l_orderkey - -> Seq Scan on lineitem_290001 lineitem + -> Seq Scan on lineitem_290000 lineitem (14 rows) -- and don't push down when not grouped by partition column diff --git a/src/test/regress/expected/multi_null_minmax_value_pruning.out b/src/test/regress/expected/multi_null_minmax_value_pruning.out index 8c4c6b83d..231737da7 100644 --- a/src/test/regress/expected/multi_null_minmax_value_pruning.out +++ b/src/test/regress/expected/multi_null_minmax_value_pruning.out @@ -74,14 +74,6 @@ DEBUG: join prunable for intervals [8997,14947] and [1,5986] -> Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: All - -> Task - Node: host=localhost port=57637 dbname=regression - -> Aggregate - -> Hash Join - Hash Cond: (lineitem.l_orderkey = orders.o_orderkey) - -> Seq Scan on lineitem_290001 lineitem - -> Hash - -> Seq Scan on orders_290003 orders -> Task Node: host=localhost port=57638 dbname=regression -> Aggregate @@ -90,6 +82,14 @@ DEBUG: join prunable for intervals [8997,14947] and [1,5986] -> Seq Scan on lineitem_290000 lineitem -> Hash -> Seq Scan on orders_290002 orders + -> Task + Node: host=localhost port=57637 dbname=regression + -> Aggregate + -> Hash Join + Hash Cond: (lineitem.l_orderkey = orders.o_orderkey) + -> Seq Scan on lineitem_290001 lineitem + -> Hash + -> Seq Scan on orders_290003 orders (20 rows) -- Now set the minimum value for a shard to null. Then check that we don't apply @@ -174,14 +174,14 @@ LOG: join order: [ "lineitem" ] Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: All - -> Task - Node: host=localhost port=57637 dbname=regression - -> Index Scan using lineitem_pkey_290001 on lineitem_290001 lineitem - Index Cond: (l_orderkey = 9030) -> Task Node: host=localhost port=57638 dbname=regression -> Index Scan using lineitem_pkey_290000 on lineitem_290000 lineitem Index Cond: (l_orderkey = 9030) + -> Task + Node: host=localhost port=57637 dbname=regression + -> Index Scan using lineitem_pkey_290001 on lineitem_290001 lineitem + Index Cond: (l_orderkey = 9030) (11 rows) EXPLAIN (COSTS FALSE) diff --git a/src/test/regress/expected/multi_null_minmax_value_pruning_0.out b/src/test/regress/expected/multi_null_minmax_value_pruning_0.out index 85602ba3d..b90166968 100644 --- a/src/test/regress/expected/multi_null_minmax_value_pruning_0.out +++ b/src/test/regress/expected/multi_null_minmax_value_pruning_0.out @@ -74,14 +74,6 @@ DEBUG: join prunable for intervals [8997,14947] and [1,5986] -> Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: All - -> Task - Node: host=localhost port=57637 dbname=regression - -> Aggregate - -> Hash Join - Hash Cond: (lineitem.l_orderkey = orders.o_orderkey) - -> Seq Scan on lineitem_290001 lineitem - -> Hash - -> Seq Scan on orders_290003 orders -> Task Node: host=localhost port=57638 dbname=regression -> Aggregate @@ -90,6 +82,14 @@ DEBUG: join prunable for intervals [8997,14947] and [1,5986] -> Seq Scan on lineitem_290000 lineitem -> Hash -> Seq Scan on orders_290002 orders + -> Task + Node: host=localhost port=57637 dbname=regression + -> Aggregate + -> Hash Join + Hash Cond: (lineitem.l_orderkey = orders.o_orderkey) + -> Seq Scan on lineitem_290001 lineitem + -> Hash + -> Seq Scan on orders_290003 orders (20 rows) -- Now set the minimum value for a shard to null. Then check that we don't apply @@ -174,14 +174,14 @@ LOG: join order: [ "lineitem" ] Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: All - -> Task - Node: host=localhost port=57637 dbname=regression - -> Index Scan using lineitem_pkey_290001 on lineitem_290001 lineitem - Index Cond: (l_orderkey = 9030) -> Task Node: host=localhost port=57638 dbname=regression -> Index Scan using lineitem_pkey_290000 on lineitem_290000 lineitem Index Cond: (l_orderkey = 9030) + -> Task + Node: host=localhost port=57637 dbname=regression + -> Index Scan using lineitem_pkey_290001 on lineitem_290001 lineitem + Index Cond: (l_orderkey = 9030) (11 rows) EXPLAIN (COSTS FALSE) diff --git a/src/test/regress/expected/multi_null_minmax_value_pruning_1.out b/src/test/regress/expected/multi_null_minmax_value_pruning_1.out index 49b07b077..2ceb92e08 100644 --- a/src/test/regress/expected/multi_null_minmax_value_pruning_1.out +++ b/src/test/regress/expected/multi_null_minmax_value_pruning_1.out @@ -74,13 +74,6 @@ DEBUG: join prunable for intervals [8997,14947] and [1,5986] -> Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: All - -> Task - Node: host=localhost port=57637 dbname=regression - -> Aggregate - -> Merge Join - Merge Cond: (orders.o_orderkey = lineitem.l_orderkey) - -> Index Only Scan using orders_pkey_290003 on orders_290003 orders - -> Index Only Scan using lineitem_pkey_290001 on lineitem_290001 lineitem -> Task Node: host=localhost port=57638 dbname=regression -> Aggregate @@ -88,6 +81,13 @@ DEBUG: join prunable for intervals [8997,14947] and [1,5986] Merge Cond: (orders.o_orderkey = lineitem.l_orderkey) -> Index Only Scan using orders_pkey_290002 on orders_290002 orders -> Index Only Scan using lineitem_pkey_290000 on lineitem_290000 lineitem + -> Task + Node: host=localhost port=57637 dbname=regression + -> Aggregate + -> Merge Join + Merge Cond: (orders.o_orderkey = lineitem.l_orderkey) + -> Index Only Scan using orders_pkey_290003 on orders_290003 orders + -> Index Only Scan using lineitem_pkey_290001 on lineitem_290001 lineitem (18 rows) -- Now set the minimum value for a shard to null. Then check that we don't apply @@ -172,14 +172,14 @@ LOG: join order: [ "lineitem" ] Custom Scan (Citus Real-Time) Task Count: 2 Tasks Shown: All - -> Task - Node: host=localhost port=57637 dbname=regression - -> Index Scan using lineitem_pkey_290001 on lineitem_290001 lineitem - Index Cond: (l_orderkey = 9030) -> Task Node: host=localhost port=57638 dbname=regression -> Index Scan using lineitem_pkey_290000 on lineitem_290000 lineitem Index Cond: (l_orderkey = 9030) + -> Task + Node: host=localhost port=57637 dbname=regression + -> Index Scan using lineitem_pkey_290001 on lineitem_290001 lineitem + Index Cond: (l_orderkey = 9030) (11 rows) EXPLAIN (COSTS FALSE)