mirror of https://github.com/citusdata/citus.git
1688 lines
106 KiB
Plaintext
1688 lines
106 KiB
Plaintext
--
|
|
-- MULTI_INSERT_SELECT
|
|
--
|
|
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 13300000;
|
|
ALTER SEQUENCE pg_catalog.pg_dist_jobid_seq RESTART 13300000;
|
|
-- create co-located tables
|
|
SET citus.shard_count = 4;
|
|
SET citus.shard_replication_factor = 2;
|
|
CREATE TABLE raw_events_first (user_id int, time timestamp, value_1 int, value_2 int, value_3 float, value_4 bigint, UNIQUE(user_id, value_1));
|
|
SELECT create_distributed_table('raw_events_first', 'user_id');
|
|
create_distributed_table
|
|
--------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE TABLE raw_events_second (user_id int, time timestamp, value_1 int, value_2 int, value_3 float, value_4 bigint, UNIQUE(user_id, value_1));
|
|
SELECT create_distributed_table('raw_events_second', 'user_id');
|
|
create_distributed_table
|
|
--------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE TABLE agg_events (user_id int, value_1_agg int, value_2_agg int, value_3_agg float, value_4_agg bigint, agg_time timestamp, UNIQUE(user_id, value_1_agg));
|
|
SELECT create_distributed_table('agg_events', 'user_id');;
|
|
create_distributed_table
|
|
--------------------------
|
|
|
|
(1 row)
|
|
|
|
-- create the reference table as well
|
|
CREATE TABLE reference_table (user_id int);
|
|
SELECT create_reference_table('reference_table');
|
|
create_reference_table
|
|
------------------------
|
|
|
|
(1 row)
|
|
|
|
-- set back to the defaults
|
|
SET citus.shard_count = DEFAULT;
|
|
SET citus.shard_replication_factor = DEFAULT;
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(1, now(), 10, 100, 1000.1, 10000);
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(2, now(), 20, 200, 2000.1, 20000);
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(3, now(), 30, 300, 3000.1, 30000);
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(4, now(), 40, 400, 4000.1, 40000);
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(5, now(), 50, 500, 5000.1, 50000);
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(6, now(), 60, 600, 6000.1, 60000);
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- raw table to raw table
|
|
INSERT INTO raw_events_second SELECT * FROM raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300004 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300005 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300006 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300007 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300007
|
|
DEBUG: sent COMMIT over connection 13300007
|
|
DEBUG: sent COMMIT over connection 13300005
|
|
DEBUG: sent COMMIT over connection 13300005
|
|
DEBUG: sent COMMIT over connection 13300006
|
|
DEBUG: sent COMMIT over connection 13300006
|
|
DEBUG: sent COMMIT over connection 13300004
|
|
DEBUG: sent COMMIT over connection 13300004
|
|
-- see that our first multi shard INSERT...SELECT works expected
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
SELECT
|
|
raw_events_first.user_id
|
|
FROM
|
|
raw_events_first, raw_events_second
|
|
WHERE
|
|
raw_events_first.user_id = raw_events_second.user_id;
|
|
user_id
|
|
---------
|
|
1
|
|
5
|
|
3
|
|
4
|
|
6
|
|
2
|
|
(6 rows)
|
|
|
|
-- see that we get unique vialitons
|
|
INSERT INTO raw_events_second SELECT * FROM raw_events_first;
|
|
ERROR: duplicate key value violates unique constraint "raw_events_second_user_id_value_1_key_13300004"
|
|
DETAIL: Key (user_id, value_1)=(1, 10) already exists.
|
|
CONTEXT: while executing command on localhost:57637
|
|
-- add one more row
|
|
INSERT INTO raw_events_first (user_id, time) VALUES
|
|
(7, now());
|
|
-- try a single shard query
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
INSERT INTO raw_events_second (user_id, time) SELECT user_id, time FROM raw_events_first WHERE user_id = 7;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300004 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300005 AS citus_table_alias (user_id, "time") SELECT user_id, "time" FROM public.raw_events_first_13300001 raw_events_first WHERE ((user_id = 7) AND ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300006 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300007 since SELECT query for it pruned away
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
-- add one more row
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(8, now(), 80, 800, 8000, 80000);
|
|
-- reorder columns
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
INSERT INTO raw_events_second (value_2, value_1, value_3, value_4, user_id, time)
|
|
SELECT
|
|
value_2, value_1, value_3, value_4, user_id, time
|
|
FROM
|
|
raw_events_first
|
|
WHERE
|
|
user_id = 8;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300004 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_first_13300000 raw_events_first WHERE ((user_id = 8) AND ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300005 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300006 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300007 since SELECT query for it pruned away
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- a zero shard select
|
|
INSERT INTO raw_events_second (value_2, value_1, value_3, value_4, user_id, time)
|
|
SELECT
|
|
value_2, value_1, value_3, value_4, user_id, time
|
|
FROM
|
|
raw_events_first
|
|
WHERE
|
|
false;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: Skipping target shard interval 13300004 since SELECT query for it pruned away
|
|
DEBUG: Skipping target shard interval 13300005 since SELECT query for it pruned away
|
|
DEBUG: Skipping target shard interval 13300006 since SELECT query for it pruned away
|
|
DEBUG: Skipping target shard interval 13300007 since SELECT query for it pruned away
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- another zero shard select
|
|
INSERT INTO raw_events_second (value_2, value_1, value_3, value_4, user_id, time)
|
|
SELECT
|
|
value_2, value_1, value_3, value_4, user_id, time
|
|
FROM
|
|
raw_events_first
|
|
WHERE
|
|
0 != 0;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: Skipping target shard interval 13300004 since SELECT query for it pruned away
|
|
DEBUG: Skipping target shard interval 13300005 since SELECT query for it pruned away
|
|
DEBUG: Skipping target shard interval 13300006 since SELECT query for it pruned away
|
|
DEBUG: Skipping target shard interval 13300007 since SELECT query for it pruned away
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- add one more row
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
INSERT INTO raw_events_first (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(9, now(), 90, 900, 9000, 90000);
|
|
-- show that RETURNING also works
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
INSERT INTO raw_events_second (user_id, value_1, value_3)
|
|
SELECT
|
|
user_id, value_1, value_3
|
|
FROM
|
|
raw_events_first
|
|
WHERE
|
|
value_3 = 9000
|
|
RETURNING *;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300004 AS citus_table_alias (user_id, value_1, value_3) SELECT user_id, value_1, value_3 FROM public.raw_events_first_13300000 raw_events_first WHERE ((value_3 = (9000)::double precision) AND ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer))) RETURNING citus_table_alias.user_id, citus_table_alias."time", citus_table_alias.value_1, citus_table_alias.value_2, citus_table_alias.value_3, citus_table_alias.value_4
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300005 AS citus_table_alias (user_id, value_1, value_3) SELECT user_id, value_1, value_3 FROM public.raw_events_first_13300001 raw_events_first WHERE ((value_3 = (9000)::double precision) AND ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer))) RETURNING citus_table_alias.user_id, citus_table_alias."time", citus_table_alias.value_1, citus_table_alias.value_2, citus_table_alias.value_3, citus_table_alias.value_4
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300006 AS citus_table_alias (user_id, value_1, value_3) SELECT user_id, value_1, value_3 FROM public.raw_events_first_13300002 raw_events_first WHERE ((value_3 = (9000)::double precision) AND ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823))) RETURNING citus_table_alias.user_id, citus_table_alias."time", citus_table_alias.value_1, citus_table_alias.value_2, citus_table_alias.value_3, citus_table_alias.value_4
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300007 AS citus_table_alias (user_id, value_1, value_3) SELECT user_id, value_1, value_3 FROM public.raw_events_first_13300003 raw_events_first WHERE ((value_3 = (9000)::double precision) AND ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647))) RETURNING citus_table_alias.user_id, citus_table_alias."time", citus_table_alias.value_1, citus_table_alias.value_2, citus_table_alias.value_3, citus_table_alias.value_4
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300007
|
|
DEBUG: sent COMMIT over connection 13300007
|
|
DEBUG: sent COMMIT over connection 13300005
|
|
DEBUG: sent COMMIT over connection 13300005
|
|
DEBUG: sent COMMIT over connection 13300006
|
|
DEBUG: sent COMMIT over connection 13300006
|
|
DEBUG: sent COMMIT over connection 13300004
|
|
DEBUG: sent COMMIT over connection 13300004
|
|
user_id | time | value_1 | value_2 | value_3 | value_4
|
|
---------+------+---------+---------+---------+---------
|
|
9 | | 90 | | 9000 |
|
|
(1 row)
|
|
|
|
-- hits two shards
|
|
INSERT INTO raw_events_second (user_id, value_1, value_3)
|
|
SELECT
|
|
user_id, value_1, value_3
|
|
FROM
|
|
raw_events_first
|
|
WHERE
|
|
user_id = 9 OR user_id = 16
|
|
RETURNING *;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300004 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300005 AS citus_table_alias (user_id, value_1, value_3) SELECT user_id, value_1, value_3 FROM public.raw_events_first_13300001 raw_events_first WHERE (((user_id = 9) OR (user_id = 16)) AND ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer))) RETURNING citus_table_alias.user_id, citus_table_alias."time", citus_table_alias.value_1, citus_table_alias.value_2, citus_table_alias.value_3, citus_table_alias.value_4
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: Skipping target shard interval 13300006 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300007 AS citus_table_alias (user_id, value_1, value_3) SELECT user_id, value_1, value_3 FROM public.raw_events_first_13300003 raw_events_first WHERE (((user_id = 9) OR (user_id = 16)) AND ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647))) RETURNING citus_table_alias.user_id, citus_table_alias."time", citus_table_alias.value_1, citus_table_alias.value_2, citus_table_alias.value_3, citus_table_alias.value_4
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
ERROR: duplicate key value violates unique constraint "raw_events_second_user_id_value_1_key_13300007"
|
|
DETAIL: Key (user_id, value_1)=(9, 90) already exists.
|
|
CONTEXT: while executing command on localhost:57638
|
|
-- now do some aggregations
|
|
INSERT INTO agg_events
|
|
SELECT
|
|
user_id, sum(value_1), avg(value_2), sum(value_3), count(value_4)
|
|
FROM
|
|
raw_events_first
|
|
GROUP BY
|
|
user_id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg, value_2_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, avg(value_2) AS avg, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg, value_2_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, avg(value_2) AS avg, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg, value_2_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, avg(value_2) AS avg, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg, value_2_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, avg(value_2) AS avg, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647)) GROUP BY user_id
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- group by column not exists on the SELECT target list
|
|
INSERT INTO agg_events (value_3_agg, value_4_agg, value_1_agg, user_id)
|
|
SELECT
|
|
sum(value_3), count(value_4), sum(value_1), user_id
|
|
FROM
|
|
raw_events_first
|
|
GROUP BY
|
|
value_2, user_id
|
|
RETURNING *;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)) GROUP BY value_2, user_id RETURNING citus_table_alias.user_id, citus_table_alias.value_1_agg, citus_table_alias.value_2_agg, citus_table_alias.value_3_agg, citus_table_alias.value_4_agg, citus_table_alias.agg_time
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)) GROUP BY value_2, user_id RETURNING citus_table_alias.user_id, citus_table_alias.value_1_agg, citus_table_alias.value_2_agg, citus_table_alias.value_3_agg, citus_table_alias.value_4_agg, citus_table_alias.agg_time
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)) GROUP BY value_2, user_id RETURNING citus_table_alias.user_id, citus_table_alias.value_1_agg, citus_table_alias.value_2_agg, citus_table_alias.value_3_agg, citus_table_alias.value_4_agg, citus_table_alias.agg_time
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg, value_3_agg, value_4_agg) SELECT user_id, sum(value_1) AS sum, sum(value_3) AS sum, count(value_4) AS count FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647)) GROUP BY value_2, user_id RETURNING citus_table_alias.user_id, citus_table_alias.value_1_agg, citus_table_alias.value_2_agg, citus_table_alias.value_3_agg, citus_table_alias.value_4_agg, citus_table_alias.agg_time
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
ERROR: duplicate key value violates unique constraint "agg_events_user_id_value_1_agg_key_13300008"
|
|
DETAIL: Key (user_id, value_1_agg)=(1, 10) already exists.
|
|
CONTEXT: while executing command on localhost:57638
|
|
-- some subquery tests
|
|
INSERT INTO agg_events
|
|
(value_1_agg,
|
|
user_id)
|
|
SELECT SUM(value_1),
|
|
id
|
|
FROM (SELECT raw_events_second.user_id AS id,
|
|
raw_events_second.value_1
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id) AS foo
|
|
GROUP BY id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg) SELECT id, sum(value_1) AS sum FROM (SELECT raw_events_second.user_id AS id, raw_events_second.value_1 FROM public.raw_events_first_13300000 raw_events_first, public.raw_events_second_13300004 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id)) foo WHERE ((hashint4(id) >= '-2147483648'::integer) AND (hashint4(id) <= '-1073741825'::integer)) GROUP BY id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg) SELECT id, sum(value_1) AS sum FROM (SELECT raw_events_second.user_id AS id, raw_events_second.value_1 FROM public.raw_events_first_13300001 raw_events_first, public.raw_events_second_13300005 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id)) foo WHERE ((hashint4(id) >= '-1073741824'::integer) AND (hashint4(id) <= '-1'::integer)) GROUP BY id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg) SELECT id, sum(value_1) AS sum FROM (SELECT raw_events_second.user_id AS id, raw_events_second.value_1 FROM public.raw_events_first_13300002 raw_events_first, public.raw_events_second_13300006 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id)) foo WHERE ((hashint4(id) >= 0) AND (hashint4(id) <= 1073741823)) GROUP BY id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg) SELECT id, sum(value_1) AS sum FROM (SELECT raw_events_second.user_id AS id, raw_events_second.value_1 FROM public.raw_events_first_13300003 raw_events_first, public.raw_events_second_13300007 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id)) foo WHERE ((hashint4(id) >= 1073741824) AND (hashint4(id) <= 2147483647)) GROUP BY id
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
ERROR: duplicate key value violates unique constraint "agg_events_user_id_value_1_agg_key_13300008"
|
|
DETAIL: Key (user_id, value_1_agg)=(5, 50) already exists.
|
|
CONTEXT: while executing command on localhost:57638
|
|
-- subquery one more level depth
|
|
INSERT INTO agg_events
|
|
(value_4_agg,
|
|
value_1_agg,
|
|
user_id)
|
|
SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
SUM(raw_events_first.value_1) AS v1,
|
|
raw_events_second.user_id AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id
|
|
GROUP BY raw_events_second.user_id) AS foo;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg, value_4_agg) SELECT id, v1, v4 FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300000 raw_events_first, public.raw_events_second_13300004 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id) foo WHERE ((hashint4(id) >= '-2147483648'::integer) AND (hashint4(id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg, value_4_agg) SELECT id, v1, v4 FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300001 raw_events_first, public.raw_events_second_13300005 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id) foo WHERE ((hashint4(id) >= '-1073741824'::integer) AND (hashint4(id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg, value_4_agg) SELECT id, v1, v4 FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300002 raw_events_first, public.raw_events_second_13300006 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id) foo WHERE ((hashint4(id) >= 0) AND (hashint4(id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg, value_4_agg) SELECT id, v1, v4 FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300003 raw_events_first, public.raw_events_second_13300007 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id) foo WHERE ((hashint4(id) >= 1073741824) AND (hashint4(id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
ERROR: duplicate key value violates unique constraint "agg_events_user_id_value_1_agg_key_13300008"
|
|
DETAIL: Key (user_id, value_1_agg)=(5, 50) already exists.
|
|
CONTEXT: while executing command on localhost:57638
|
|
-- join between subqueries
|
|
INSERT INTO agg_events
|
|
(user_id)
|
|
SELECT f2.id FROM
|
|
(SELECT
|
|
id
|
|
FROM (SELECT reference_table.user_id AS id
|
|
FROM raw_events_first,
|
|
reference_table
|
|
WHERE raw_events_first.user_id = reference_table.user_id ) AS foo) as f
|
|
INNER JOIN
|
|
(SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
SUM(raw_events_first.value_1) AS v1,
|
|
raw_events_second.user_id AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id
|
|
GROUP BY raw_events_second.user_id
|
|
HAVING SUM(raw_events_second.value_4) > 10) AS foo2 ) as f2
|
|
ON (f.id = f2.id);
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id) SELECT f2.id FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300000 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300000 raw_events_first, public.raw_events_second_13300004 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id))) WHERE ((hashint4(f2.id) >= '-2147483648'::integer) AND (hashint4(f2.id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id) SELECT f2.id FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300001 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300001 raw_events_first, public.raw_events_second_13300005 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id))) WHERE ((hashint4(f2.id) >= '-1073741824'::integer) AND (hashint4(f2.id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id) SELECT f2.id FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300002 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300002 raw_events_first, public.raw_events_second_13300006 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id))) WHERE ((hashint4(f2.id) >= 0) AND (hashint4(f2.id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id) SELECT f2.id FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300003 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300003 raw_events_first, public.raw_events_second_13300007 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id))) WHERE ((hashint4(f2.id) >= 1073741824) AND (hashint4(f2.id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- add one more level subqueris on top of subquery JOINs
|
|
INSERT INTO agg_events
|
|
(user_id, value_4_agg)
|
|
SELECT
|
|
outer_most.id, max(outer_most.value)
|
|
FROM
|
|
(
|
|
SELECT f2.id as id, f2.v4 as value FROM
|
|
(SELECT
|
|
id
|
|
FROM (SELECT reference_table.user_id AS id
|
|
FROM raw_events_first,
|
|
reference_table
|
|
WHERE raw_events_first.user_id = reference_table.user_id ) AS foo) as f
|
|
INNER JOIN
|
|
(SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
SUM(raw_events_first.value_1) AS v1,
|
|
raw_events_second.user_id AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id
|
|
GROUP BY raw_events_second.user_id
|
|
HAVING SUM(raw_events_second.value_4) > 10) AS foo2 ) as f2
|
|
ON (f.id = f2.id)) as outer_most
|
|
GROUP BY
|
|
outer_most.id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_4_agg) SELECT id, max(value) AS max FROM (SELECT f2.id, f2.v4 AS value FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300000 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300000 raw_events_first, public.raw_events_second_13300004 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id)))) outer_most WHERE ((hashint4(id) >= '-2147483648'::integer) AND (hashint4(id) <= '-1073741825'::integer)) GROUP BY id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_4_agg) SELECT id, max(value) AS max FROM (SELECT f2.id, f2.v4 AS value FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300001 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300001 raw_events_first, public.raw_events_second_13300005 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id)))) outer_most WHERE ((hashint4(id) >= '-1073741824'::integer) AND (hashint4(id) <= '-1'::integer)) GROUP BY id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_4_agg) SELECT id, max(value) AS max FROM (SELECT f2.id, f2.v4 AS value FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300002 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300002 raw_events_first, public.raw_events_second_13300006 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id)))) outer_most WHERE ((hashint4(id) >= 0) AND (hashint4(id) <= 1073741823)) GROUP BY id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_4_agg) SELECT id, max(value) AS max FROM (SELECT f2.id, f2.v4 AS value FROM ((SELECT foo.id FROM (SELECT reference_table.user_id AS id FROM public.raw_events_first_13300003 raw_events_first, public.reference_table_13300012 reference_table WHERE (raw_events_first.user_id = reference_table.user_id)) foo) f JOIN (SELECT foo2.v4, foo2.v1, foo2.id FROM (SELECT sum(raw_events_second.value_4) AS v4, sum(raw_events_first.value_1) AS v1, raw_events_second.user_id AS id FROM public.raw_events_first_13300003 raw_events_first, public.raw_events_second_13300007 raw_events_second WHERE (raw_events_first.user_id = raw_events_second.user_id) GROUP BY raw_events_second.user_id HAVING (sum(raw_events_second.value_4) > (10)::numeric)) foo2) f2 ON ((f.id = f2.id)))) outer_most WHERE ((hashint4(id) >= 1073741824) AND (hashint4(id) <= 2147483647)) GROUP BY id
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- subqueries in WHERE clause
|
|
INSERT INTO raw_events_second
|
|
(user_id)
|
|
SELECT user_id
|
|
FROM raw_events_first
|
|
WHERE user_id IN (SELECT user_id
|
|
FROM raw_events_second
|
|
WHERE user_id = 2);
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300004 AS citus_table_alias (user_id) SELECT user_id FROM public.raw_events_first_13300003 raw_events_first WHERE ((user_id IN (SELECT raw_events_second.user_id FROM public.raw_events_second_13300007 raw_events_second WHERE (raw_events_second.user_id = 2))) AND ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300005 AS citus_table_alias (user_id) SELECT user_id FROM public.raw_events_first_13300003 raw_events_first WHERE ((user_id IN (SELECT raw_events_second.user_id FROM public.raw_events_second_13300007 raw_events_second WHERE (raw_events_second.user_id = 2))) AND ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300006 AS citus_table_alias (user_id) SELECT user_id FROM public.raw_events_first_13300003 raw_events_first WHERE ((user_id IN (SELECT raw_events_second.user_id FROM public.raw_events_second_13300007 raw_events_second WHERE (raw_events_second.user_id = 2))) AND ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_second_13300007 AS citus_table_alias (user_id) SELECT user_id FROM public.raw_events_first_13300003 raw_events_first WHERE ((user_id IN (SELECT raw_events_second.user_id FROM public.raw_events_second_13300007 raw_events_second WHERE (raw_events_second.user_id = 2))) AND ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647)))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300007
|
|
DEBUG: sent COMMIT over connection 13300007
|
|
DEBUG: sent COMMIT over connection 13300005
|
|
DEBUG: sent COMMIT over connection 13300005
|
|
DEBUG: sent COMMIT over connection 13300006
|
|
DEBUG: sent COMMIT over connection 13300006
|
|
DEBUG: sent COMMIT over connection 13300004
|
|
DEBUG: sent COMMIT over connection 13300004
|
|
-- some UPSERTS
|
|
INSERT INTO agg_events AS ae
|
|
(
|
|
user_id,
|
|
value_1_agg,
|
|
agg_time
|
|
)
|
|
SELECT user_id,
|
|
value_1,
|
|
time
|
|
FROM raw_events_first
|
|
ON conflict (user_id, value_1_agg)
|
|
DO UPDATE
|
|
SET agg_time = EXCLUDED.agg_time
|
|
WHERE ae.agg_time < EXCLUDED.agg_time;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time)
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time)
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time)
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time)
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- upserts with returning
|
|
INSERT INTO agg_events AS ae
|
|
(
|
|
user_id,
|
|
value_1_agg,
|
|
agg_time
|
|
)
|
|
SELECT user_id,
|
|
value_1,
|
|
time
|
|
FROM raw_events_first
|
|
ON conflict (user_id, value_1_agg)
|
|
DO UPDATE
|
|
SET agg_time = EXCLUDED.agg_time
|
|
WHERE ae.agg_time < EXCLUDED.agg_time
|
|
RETURNING user_id, value_1_agg;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time) RETURNING ae.user_id, ae.value_1_agg
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time) RETURNING ae.user_id, ae.value_1_agg
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time) RETURNING ae.user_id, ae.value_1_agg
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS ae (user_id, value_1_agg, agg_time) SELECT user_id, value_1, "time" FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647)) ON CONFLICT(user_id, value_1_agg) DO UPDATE SET agg_time = excluded.agg_time WHERE (ae.agg_time < excluded.agg_time) RETURNING ae.user_id, ae.value_1_agg
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
user_id | value_1_agg
|
|
---------+-------------
|
|
7 |
|
|
(1 row)
|
|
|
|
INSERT INTO agg_events (user_id, value_1_agg)
|
|
SELECT
|
|
user_id, sum(value_1 + value_2)
|
|
FROM
|
|
raw_events_first GROUP BY user_id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) AS sum FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) AS sum FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) AS sum FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) AS sum FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647)) GROUP BY user_id
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- FILTER CLAUSE
|
|
INSERT INTO agg_events (user_id, value_1_agg)
|
|
SELECT
|
|
user_id, sum(value_1 + value_2) FILTER (where value_3 = 15)
|
|
FROM
|
|
raw_events_first GROUP BY user_id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) FILTER (WHERE (value_3 = (15)::double precision)) AS sum FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) FILTER (WHERE (value_3 = (15)::double precision)) AS sum FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) FILTER (WHERE (value_3 = (15)::double precision)) AS sum FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)) GROUP BY user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg) SELECT user_id, sum((value_1 + value_2)) FILTER (WHERE (value_3 = (15)::double precision)) AS sum FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647)) GROUP BY user_id
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- a test with reference table JOINs
|
|
INSERT INTO
|
|
agg_events (user_id, value_1_agg)
|
|
SELECT
|
|
raw_events_first.user_id, sum(value_1)
|
|
FROM
|
|
reference_table, raw_events_first
|
|
WHERE
|
|
raw_events_first.user_id = reference_table.user_id
|
|
GROUP BY
|
|
raw_events_first.user_id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg) SELECT raw_events_first.user_id, sum(raw_events_first.value_1) AS sum FROM public.reference_table_13300012 reference_table, public.raw_events_first_13300000 raw_events_first WHERE ((raw_events_first.user_id = reference_table.user_id) AND ((hashint4(raw_events_first.user_id) >= '-2147483648'::integer) AND (hashint4(raw_events_first.user_id) <= '-1073741825'::integer))) GROUP BY raw_events_first.user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg) SELECT raw_events_first.user_id, sum(raw_events_first.value_1) AS sum FROM public.reference_table_13300012 reference_table, public.raw_events_first_13300001 raw_events_first WHERE ((raw_events_first.user_id = reference_table.user_id) AND ((hashint4(raw_events_first.user_id) >= '-1073741824'::integer) AND (hashint4(raw_events_first.user_id) <= '-1'::integer))) GROUP BY raw_events_first.user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg) SELECT raw_events_first.user_id, sum(raw_events_first.value_1) AS sum FROM public.reference_table_13300012 reference_table, public.raw_events_first_13300002 raw_events_first WHERE ((raw_events_first.user_id = reference_table.user_id) AND ((hashint4(raw_events_first.user_id) >= 0) AND (hashint4(raw_events_first.user_id) <= 1073741823))) GROUP BY raw_events_first.user_id
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg) SELECT raw_events_first.user_id, sum(raw_events_first.value_1) AS sum FROM public.reference_table_13300012 reference_table, public.raw_events_first_13300003 raw_events_first WHERE ((raw_events_first.user_id = reference_table.user_id) AND ((hashint4(raw_events_first.user_id) >= 1073741824) AND (hashint4(raw_events_first.user_id) <= 2147483647))) GROUP BY raw_events_first.user_id
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- a note on the outer joins is that
|
|
-- we filter out outer join results
|
|
-- where partition column returns
|
|
-- NULL. Thus, we could INSERT less rows
|
|
-- than we expect from subquery result.
|
|
-- see the following tests
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
-- we don't want to see constraint vialotions, so truncate first
|
|
TRUNCATE agg_events;
|
|
-- add a row to first table to make table contents different
|
|
INSERT INTO raw_events_second (user_id, time, value_1, value_2, value_3, value_4) VALUES
|
|
(10, now(), 100, 10000, 10000, 100000);
|
|
DELETE FROM raw_events_second WHERE user_id = 2;
|
|
-- we select 11 rows
|
|
SELECT t1.user_id AS col1,
|
|
t2.user_id AS col2
|
|
FROM raw_events_first t1
|
|
FULL JOIN raw_events_second t2
|
|
ON t1.user_id = t2.user_id
|
|
ORDER BY t1.user_id,
|
|
t2.user_id;
|
|
col1 | col2
|
|
------+------
|
|
1 | 1
|
|
2 |
|
|
3 | 3
|
|
4 | 4
|
|
5 | 5
|
|
6 | 6
|
|
7 | 7
|
|
8 | 8
|
|
9 | 9
|
|
| 10
|
|
(10 rows)
|
|
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- we insert 10 rows since we filtered out
|
|
-- NULL partition column values
|
|
INSERT INTO agg_events (user_id, value_1_agg)
|
|
SELECT t1.user_id AS col1,
|
|
t2.user_id AS col2
|
|
FROM raw_events_first t1
|
|
FULL JOIN raw_events_second t2
|
|
ON t1.user_id = t2.user_id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg) SELECT t1.user_id AS col1, t2.user_id AS col2 FROM (public.raw_events_first_13300000 t1 FULL JOIN public.raw_events_second_13300004 t2 ON ((t1.user_id = t2.user_id))) WHERE ((hashint4(t1.user_id) >= '-2147483648'::integer) AND (hashint4(t1.user_id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg) SELECT t1.user_id AS col1, t2.user_id AS col2 FROM (public.raw_events_first_13300001 t1 FULL JOIN public.raw_events_second_13300005 t2 ON ((t1.user_id = t2.user_id))) WHERE ((hashint4(t1.user_id) >= '-1073741824'::integer) AND (hashint4(t1.user_id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg) SELECT t1.user_id AS col1, t2.user_id AS col2 FROM (public.raw_events_first_13300002 t1 FULL JOIN public.raw_events_second_13300006 t2 ON ((t1.user_id = t2.user_id))) WHERE ((hashint4(t1.user_id) >= 0) AND (hashint4(t1.user_id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg) SELECT t1.user_id AS col1, t2.user_id AS col2 FROM (public.raw_events_first_13300003 t1 FULL JOIN public.raw_events_second_13300007 t2 ON ((t1.user_id = t2.user_id))) WHERE ((hashint4(t1.user_id) >= 1073741824) AND (hashint4(t1.user_id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
-- see that the results are different from the SELECT query
|
|
SELECT
|
|
user_id, value_1_agg
|
|
FROM
|
|
agg_events
|
|
ORDER BY
|
|
user_id, value_1_agg;
|
|
user_id | value_1_agg
|
|
---------+-------------
|
|
1 | 1
|
|
2 |
|
|
3 | 3
|
|
4 | 4
|
|
5 | 5
|
|
6 | 6
|
|
7 | 7
|
|
8 | 8
|
|
9 | 9
|
|
(9 rows)
|
|
|
|
-- we don't want to see constraint vialotions, so truncate first
|
|
SET client_min_messages TO INFO;
|
|
TRUNCATE agg_events;
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- DISTINCT clause
|
|
INSERT INTO agg_events (value_1_agg, user_id)
|
|
SELECT
|
|
DISTINCT value_1, user_id
|
|
FROM
|
|
raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg) SELECT DISTINCT user_id, value_1 FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg) SELECT DISTINCT user_id, value_1 FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg) SELECT DISTINCT user_id, value_1 FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg) SELECT DISTINCT user_id, value_1 FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- we don't want to see constraint vialotions, so truncate first
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
truncate agg_events;
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- we do not support DISTINCT ON clauses
|
|
INSERT INTO agg_events (value_1_agg, user_id)
|
|
SELECT
|
|
DISTINCT ON (value_1) value_1, user_id
|
|
FROM
|
|
raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: DISTINCT ON clauses are not allowed in INSERT ... SELECT queries
|
|
-- We do not support some CTEs
|
|
WITH fist_table_agg AS
|
|
(SELECT sum(value_1) as v1_agg, user_id FROM raw_events_first GROUP BY user_id)
|
|
INSERT INTO agg_events
|
|
(value_1_agg, user_id)
|
|
SELECT
|
|
v1_agg, user_id
|
|
FROM
|
|
fist_table_agg;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
-- We do support some CTEs
|
|
INSERT INTO agg_events
|
|
WITH sub_cte AS (SELECT 1)
|
|
SELECT
|
|
raw_events_first.user_id, (SELECT * FROM sub_cte)
|
|
FROM
|
|
raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300008 AS citus_table_alias (user_id, value_1_agg) WITH sub_cte AS (SELECT 1) SELECT user_id, (SELECT sub_cte."?column?" FROM sub_cte) FROM public.raw_events_first_13300000 raw_events_first WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300009 AS citus_table_alias (user_id, value_1_agg) WITH sub_cte AS (SELECT 1) SELECT user_id, (SELECT sub_cte."?column?" FROM sub_cte) FROM public.raw_events_first_13300001 raw_events_first WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300010 AS citus_table_alias (user_id, value_1_agg) WITH sub_cte AS (SELECT 1) SELECT user_id, (SELECT sub_cte."?column?" FROM sub_cte) FROM public.raw_events_first_13300002 raw_events_first WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300000
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: distributed statement: INSERT INTO public.agg_events_13300011 AS citus_table_alias (user_id, value_1_agg) WITH sub_cte AS (SELECT 1) SELECT user_id, (SELECT sub_cte."?column?" FROM sub_cte) FROM public.raw_events_first_13300003 raw_events_first WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300008
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300011
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300009
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
DEBUG: sent COMMIT over connection 13300010
|
|
-- We do not support any set operations
|
|
INSERT INTO
|
|
raw_events_first(user_id)
|
|
SELECT
|
|
user_id
|
|
FROM
|
|
((SELECT user_id FROM raw_events_first) UNION
|
|
(SELECT user_id FROM raw_events_second)) as foo;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Set operations are not allowed in INSERT ... SELECT queries
|
|
-- We do not support any set operations
|
|
INSERT INTO
|
|
raw_events_first(user_id)
|
|
(SELECT user_id FROM raw_events_first) INTERSECT
|
|
(SELECT user_id FROM raw_events_first);
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Set operations are not allowed in INSERT ... SELECT queries
|
|
-- We do not support any set operations
|
|
INSERT INTO
|
|
raw_events_first(user_id)
|
|
SELECT
|
|
user_id
|
|
FROM
|
|
((SELECT user_id FROM raw_events_first WHERE user_id = 15) EXCEPT
|
|
(SELECT user_id FROM raw_events_second where user_id = 17)) as foo;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Set operations are not allowed in INSERT ... SELECT queries
|
|
-- unsupported JOIN
|
|
INSERT INTO agg_events
|
|
(value_4_agg,
|
|
value_1_agg,
|
|
user_id)
|
|
SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
SUM(raw_events_first.value_1) AS v1,
|
|
raw_events_second.user_id AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id != raw_events_second.user_id
|
|
GROUP BY raw_events_second.user_id) AS foo;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Select query cannot be pushed down to the worker.
|
|
-- INSERT partition column does not match with SELECT partition column
|
|
INSERT INTO agg_events
|
|
(value_4_agg,
|
|
value_1_agg,
|
|
user_id)
|
|
SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
SUM(raw_events_first.value_1) AS v1,
|
|
raw_events_second.value_3 AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id
|
|
GROUP BY raw_events_second.value_3) AS foo;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
-- error cases
|
|
-- no part column at all
|
|
INSERT INTO raw_events_second
|
|
(value_1)
|
|
SELECT value_1
|
|
FROM raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
INSERT INTO raw_events_second
|
|
(value_1)
|
|
SELECT user_id
|
|
FROM raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
INSERT INTO raw_events_second
|
|
(user_id)
|
|
SELECT value_1
|
|
FROM raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
INSERT INTO raw_events_second
|
|
(user_id)
|
|
SELECT user_id * 2
|
|
FROM raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
INSERT INTO raw_events_second
|
|
(user_id)
|
|
SELECT user_id :: bigint
|
|
FROM raw_events_first;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
INSERT INTO agg_events
|
|
(value_3_agg,
|
|
value_4_agg,
|
|
value_1_agg,
|
|
value_2_agg,
|
|
user_id)
|
|
SELECT SUM(value_3),
|
|
Count(value_4),
|
|
user_id,
|
|
SUM(value_1),
|
|
Avg(value_2)
|
|
FROM raw_events_first
|
|
GROUP BY user_id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
INSERT INTO agg_events
|
|
(value_3_agg,
|
|
value_4_agg,
|
|
value_1_agg,
|
|
value_2_agg,
|
|
user_id)
|
|
SELECT SUM(value_3),
|
|
Count(value_4),
|
|
user_id,
|
|
SUM(value_1),
|
|
value_2
|
|
FROM raw_events_first
|
|
GROUP BY user_id,
|
|
value_2;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
-- tables should be co-located
|
|
INSERT INTO agg_events (user_id)
|
|
SELECT
|
|
user_id
|
|
FROM
|
|
reference_table;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: INSERT target table and the source relation of the SELECT partition column value must be colocated
|
|
-- unsupported joins between subqueries
|
|
-- we do not return bare partition column on the inner query
|
|
INSERT INTO agg_events
|
|
(user_id)
|
|
SELECT f2.id FROM
|
|
(SELECT
|
|
id
|
|
FROM (SELECT reference_table.user_id AS id
|
|
FROM raw_events_first,
|
|
reference_table
|
|
WHERE raw_events_first.user_id = reference_table.user_id ) AS foo) as f
|
|
INNER JOIN
|
|
(SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
raw_events_second.value_1 AS v1,
|
|
SUM(raw_events_second.user_id) AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id
|
|
GROUP BY raw_events_second.value_1
|
|
HAVING SUM(raw_events_second.value_4) > 10) AS foo2 ) as f2
|
|
ON (f.id = f2.id);
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: SELECT query should return bare partition column on the same ordinal position as the INSERT's partition column
|
|
-- the second part of the query is not routable since
|
|
-- no GROUP BY on the partition column
|
|
INSERT INTO agg_events
|
|
(user_id)
|
|
SELECT f.id FROM
|
|
(SELECT
|
|
id
|
|
FROM (SELECT raw_events_first.user_id AS id
|
|
FROM raw_events_first,
|
|
reference_table
|
|
WHERE raw_events_first.user_id = reference_table.user_id ) AS foo) as f
|
|
INNER JOIN
|
|
(SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
raw_events_second.value_1 AS v1,
|
|
SUM(raw_events_second.user_id) AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id
|
|
GROUP BY raw_events_second.value_1
|
|
HAVING SUM(raw_events_second.value_4) > 10) AS foo2 ) as f2
|
|
ON (f.id = f2.id);
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Select query cannot be pushed down to the worker.
|
|
-- cannot pushdown the query since the JOIN is not equi JOIN
|
|
INSERT INTO agg_events
|
|
(user_id, value_4_agg)
|
|
SELECT
|
|
outer_most.id, max(outer_most.value)
|
|
FROM
|
|
(
|
|
SELECT f2.id as id, f2.v4 as value FROM
|
|
(SELECT
|
|
id
|
|
FROM (SELECT reference_table.user_id AS id
|
|
FROM raw_events_first,
|
|
reference_table
|
|
WHERE raw_events_first.user_id = reference_table.user_id ) AS foo) as f
|
|
INNER JOIN
|
|
(SELECT v4,
|
|
v1,
|
|
id
|
|
FROM (SELECT SUM(raw_events_second.value_4) AS v4,
|
|
SUM(raw_events_first.value_1) AS v1,
|
|
raw_events_second.user_id AS id
|
|
FROM raw_events_first,
|
|
raw_events_second
|
|
WHERE raw_events_first.user_id = raw_events_second.user_id
|
|
GROUP BY raw_events_second.user_id
|
|
HAVING SUM(raw_events_second.value_4) > 10) AS foo2 ) as f2
|
|
ON (f.id != f2.id)) as outer_most
|
|
GROUP BY outer_most.id;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300001
|
|
DEBUG: predicate pruning for shardId 13300002
|
|
DEBUG: predicate pruning for shardId 13300003
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Select query cannot be pushed down to the worker.
|
|
-- we currently not support grouping sets
|
|
INSERT INTO agg_events
|
|
(user_id,
|
|
value_1_agg,
|
|
value_2_agg)
|
|
SELECT user_id,
|
|
Sum(value_1) AS sum_val1,
|
|
Sum(value_2) AS sum_val2
|
|
FROM raw_events_second
|
|
GROUP BY grouping sets ( ( user_id ), ( value_1 ), ( user_id, value_1 ), ( ) );
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Grouping sets are not allowed in INSERT ... SELECT queries
|
|
-- set back to INFO
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
-- Views does not work
|
|
CREATE VIEW test_view AS SELECT * FROM raw_events_first;
|
|
INSERT INTO raw_events_second SELECT * FROM test_view;
|
|
ERROR: cannot plan queries that include both regular and partitioned relations
|
|
-- we need this in our next test
|
|
truncate raw_events_first;
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- first show that the query works now
|
|
INSERT INTO raw_events_first SELECT * FROM raw_events_second;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300000 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300004 raw_events_second WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300001 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300005 raw_events_second WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300002 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300006 raw_events_second WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300003 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300007 raw_events_second WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300001
|
|
DEBUG: sent COMMIT over connection 13300001
|
|
DEBUG: sent COMMIT over connection 13300000
|
|
DEBUG: sent COMMIT over connection 13300000
|
|
DEBUG: sent COMMIT over connection 13300002
|
|
DEBUG: sent COMMIT over connection 13300002
|
|
DEBUG: sent COMMIT over connection 13300003
|
|
DEBUG: sent COMMIT over connection 13300003
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
truncate raw_events_first;
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- now show that it works for a single shard query as well
|
|
INSERT INTO raw_events_first SELECT * FROM raw_events_second WHERE user_id = 5;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300000 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300004 raw_events_second WHERE ((user_id = 5) AND ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300001 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300002 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300003 since SELECT query for it pruned away
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
-- if a single shard of the SELECT is unhealty, the query should fail
|
|
UPDATE pg_dist_shard_placement SET shardstate = 3 WHERE shardid = 13300004 AND nodeport = :worker_1_port;
|
|
truncate raw_events_first;
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- this should fail
|
|
INSERT INTO raw_events_first SELECT * FROM raw_events_second;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Insert query cannot be executed on all placements for shard 13300000
|
|
-- this should also fail
|
|
INSERT INTO raw_events_first SELECT * FROM raw_events_second WHERE user_id = 5;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
ERROR: cannot perform distributed planning for the given modification
|
|
DETAIL: Insert query cannot be executed on all placements for shard 13300000
|
|
-- but this should work given that it hits different shard
|
|
INSERT INTO raw_events_first SELECT * FROM raw_events_second WHERE user_id = 6;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300000 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300001 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300002 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300006 raw_events_second WHERE ((user_id = 6) AND ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823)))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300003 since SELECT query for it pruned away
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
-- mark the unhealthy placement as healthy again for the next tests
|
|
UPDATE pg_dist_shard_placement SET shardstate = 1 WHERE shardid = 13300004 AND nodeport = :worker_1_port;
|
|
-- now that we should show that it works if one of the target shard interval is not healthy
|
|
UPDATE pg_dist_shard_placement SET shardstate = 3 WHERE shardid = 13300000 AND nodeport = :worker_1_port;
|
|
truncate raw_events_first;
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- this should work
|
|
INSERT INTO raw_events_first SELECT * FROM raw_events_second;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300000 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300004 raw_events_second WHERE ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300001 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300005 raw_events_second WHERE ((hashint4(user_id) >= '-1073741824'::integer) AND (hashint4(user_id) <= '-1'::integer))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300002 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300006 raw_events_second WHERE ((hashint4(user_id) >= 0) AND (hashint4(user_id) <= 1073741823))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300003 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300007 raw_events_second WHERE ((hashint4(user_id) >= 1073741824) AND (hashint4(user_id) <= 2147483647))
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: sent COMMIT over connection 13300001
|
|
DEBUG: sent COMMIT over connection 13300001
|
|
DEBUG: sent COMMIT over connection 13300000
|
|
DEBUG: sent COMMIT over connection 13300002
|
|
DEBUG: sent COMMIT over connection 13300002
|
|
DEBUG: sent COMMIT over connection 13300003
|
|
DEBUG: sent COMMIT over connection 13300003
|
|
SET client_min_messages TO INFO;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: ProcessUtility
|
|
truncate raw_events_first;
|
|
SET client_min_messages TO DEBUG4;
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
-- this should also work
|
|
INSERT INTO raw_events_first SELECT * FROM raw_events_second WHERE user_id = 5;
|
|
DEBUG: StartTransactionCommand
|
|
DEBUG: StartTransaction
|
|
DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: distributed statement: INSERT INTO public.raw_events_first_13300000 AS citus_table_alias (user_id, "time", value_1, value_2, value_3, value_4) SELECT user_id, "time", value_1, value_2, value_3, value_4 FROM public.raw_events_second_13300004 raw_events_second WHERE ((user_id = 5) AND ((hashint4(user_id) >= '-2147483648'::integer) AND (hashint4(user_id) <= '-1073741825'::integer)))
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300001 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300002 since SELECT query for it pruned away
|
|
DEBUG: predicate pruning for shardId 13300004
|
|
DEBUG: predicate pruning for shardId 13300005
|
|
DEBUG: predicate pruning for shardId 13300006
|
|
DEBUG: predicate pruning for shardId 13300007
|
|
DEBUG: Skipping target shard interval 13300003 since SELECT query for it pruned away
|
|
DEBUG: ProcessQuery
|
|
DEBUG: Plan is router executable
|
|
DEBUG: CommitTransactionCommand
|
|
DEBUG: CommitTransaction
|
|
DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
|