mirror of https://github.com/citusdata/citus.git
Sort task list for multi-task explain outputs
This is purely for ensuring that regression tests do not randomly fail.pull/2514/head
parent
89d32af3ad
commit
b6ebd791a6
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
|||
<Tasks-Shown>One of 2</Tasks-Shown>
|
||||
<Tasks>
|
||||
<Task>
|
||||
<Node>host=localhost port=57637 dbname=regression</Node>
|
||||
<Node>host=localhost port=57638 dbname=regression</Node>
|
||||
<Remote-Plan>
|
||||
<explain xmlns="http://www.postgresql.org/2009/explain">
|
||||
<Query>
|
||||
|
@ -196,7 +196,7 @@ EXPLAIN (COSTS FALSE, FORMAT XML)
|
|||
<Node-Type>Seq Scan</Node-Type>
|
||||
<Parent-Relationship>Outer</Parent-Relationship>
|
||||
<Parallel-Aware>false</Parallel-Aware>
|
||||
<Relation-Name>lineitem_290001</Relation-Name>
|
||||
<Relation-Name>lineitem_290000</Relation-Name>
|
||||
<Alias>lineitem</Alias>
|
||||
</Plan>
|
||||
</Plans>
|
||||
|
@ -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;
|
||||
|
|
|
@ -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)
|
|||
<Tasks-Shown>One of 2</Tasks-Shown>
|
||||
<Tasks>
|
||||
<Task>
|
||||
<Node>host=localhost port=57637 dbname=regression</Node>
|
||||
<Node>host=localhost port=57638 dbname=regression</Node>
|
||||
<Remote-Plan>
|
||||
<explain xmlns="http://www.postgresql.org/2009/explain">
|
||||
<Query>
|
||||
|
@ -196,7 +196,7 @@ EXPLAIN (COSTS FALSE, FORMAT XML)
|
|||
<Node-Type>Seq Scan</Node-Type>
|
||||
<Parent-Relationship>Outer</Parent-Relationship>
|
||||
<Parallel-Aware>false</Parallel-Aware>
|
||||
<Relation-Name>lineitem_290001</Relation-Name>
|
||||
<Relation-Name>lineitem_290000</Relation-Name>
|
||||
<Alias>lineitem</Alias>
|
||||
</Plan>
|
||||
</Plans>
|
||||
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue