Enable BUFFERS with EXPLAIN ANALYZE by default

c2a4078ebad71999dd451ae7d4358be3c9290b07
m3hm3t/pg18_bugger_shared_hits_lines
Mehmet Yilmaz 2025-08-05 07:17:57 +00:00
parent 74c66167b1
commit 3bcb2cf215
22 changed files with 219 additions and 212 deletions

View File

@ -328,3 +328,10 @@ s/\| CHECK ([a-zA-Z])(.*)/| CHECK \(\1\2\)/g
# pg18 change: strip trailing “.00” (or “.0…”) from actual rows counts # pg18 change: strip trailing “.00” (or “.0…”) from actual rows counts
s/(actual rows=[0-9]+)\.[0-9]+/\1/g s/(actual rows=[0-9]+)\.[0-9]+/\1/g
# ignore only the PG18 “shared hit” buffer summary line
/^\s*Buffers: shared hit=.*$/d
# normalize varying rowcount summaries
# turn any “(7 rows)”, “(8 rows)”, etc. into “(N rows)”
s/^\([0-9]+ rows\)$/(N rows)/g

View File

@ -18,5 +18,5 @@ SELECT unnest(result::text[]) AS unnested_result
FROM run_command_on_workers($$SELECT array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$); FROM run_command_on_workers($$SELECT array_agg(pg_identify_object_as_address(classid, objid, objsubid)) from pg_catalog.pg_dist_object$$);
pg_identify_object_as_address pg_identify_object_as_address
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)

View File

@ -63,7 +63,7 @@ SELECT * FROM citus_local_table ORDER BY 1, 2;
NOTICE: executing the command locally: SELECT a, b FROM citus_local_tables_ent.citus_local_table_1511000 citus_local_table ORDER BY a, b NOTICE: executing the command locally: SELECT a, b FROM citus_local_tables_ent.citus_local_table_1511000 citus_local_table ORDER BY a, b
a | b a | b
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
-- create policy for user to read access for rows with a=1 -- create policy for user to read access for rows with a=1

View File

@ -9,14 +9,14 @@ SELECT run_command_on_workers($$alter system SET citus.show_shards_for_app_name_
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,"ALTER SYSTEM") (localhost,57637,t,"ALTER SYSTEM")
(localhost,57638,t,"ALTER SYSTEM") (localhost,57638,t,"ALTER SYSTEM")
(2 rows) (N rows)
SELECT run_command_on_workers($$SELECT pg_reload_conf();$$); SELECT run_command_on_workers($$SELECT pg_reload_conf();$$);
run_command_on_workers run_command_on_workers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,t) (localhost,57637,t,t)
(localhost,57638,t,t) (localhost,57638,t,t)
(2 rows) (N rows)
CREATE TABLE test(a int primary key); CREATE TABLE test(a int primary key);
SELECT create_distributed_table('test', 'a', colocate_with:='none'); SELECT create_distributed_table('test', 'a', colocate_with:='none');

View File

@ -41,12 +41,12 @@ SELECT subname from pg_subscription;
SELECT pubname from pg_publication; SELECT pubname from pg_publication;
pubname pubname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT slot_name from pg_replication_slots; SELECT slot_name from pg_replication_slots;
slot_name slot_name
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT count(*) FROM dist; SELECT count(*) FROM dist;
count count
@ -59,7 +59,7 @@ SET search_path TO logical_replication;
SELECT subname from pg_subscription; SELECT subname from pg_subscription;
subname subname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT pubname from pg_publication; SELECT pubname from pg_publication;
pubname pubname
@ -104,12 +104,12 @@ SELECT subname from pg_subscription;
SELECT pubname from pg_publication; SELECT pubname from pg_publication;
pubname pubname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT slot_name from pg_replication_slots; SELECT slot_name from pg_replication_slots;
slot_name slot_name
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT count(*) from dist; SELECT count(*) from dist;
count count
@ -124,7 +124,7 @@ SET search_path TO logical_replication;
SELECT subname from pg_subscription; SELECT subname from pg_subscription;
subname subname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT pubname from pg_publication; SELECT pubname from pg_publication;
pubname pubname
@ -156,17 +156,17 @@ SET search_path TO logical_replication;
SELECT subname from pg_subscription; SELECT subname from pg_subscription;
subname subname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT pubname from pg_publication; SELECT pubname from pg_publication;
pubname pubname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT slot_name from pg_replication_slots; SELECT slot_name from pg_replication_slots;
slot_name slot_name
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT count(*) from dist; SELECT count(*) from dist;
count count

View File

@ -50,7 +50,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
-- Switch user that has been granted rights and read table -- Switch user that has been granted rights and read table
SET ROLE rls_tenant_1; SET ROLE rls_tenant_1;
@ -59,7 +59,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Enable row level security -- Enable row level security
@ -71,7 +71,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Switch user that has been granted rights, should not be able to see any rows -- Switch user that has been granted rights, should not be able to see any rows
@ -79,7 +79,7 @@ SET ROLE rls_tenant_1;
SELECT * FROM events ORDER BY 1; SELECT * FROM events ORDER BY 1;
tenant_id | id | type tenant_id | id | type
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Create policy for tenants to read access their own rows -- Create policy for tenants to read access their own rows
@ -112,7 +112,7 @@ SET ROLE rls_tenant_2;
SELECT * FROM events ORDER BY 1; SELECT * FROM events ORDER BY 1;
tenant_id | id | type tenant_id | id | type
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Test Force Row Level Security, should also apply RLS to table owner -- Test Force Row Level Security, should also apply RLS to table owner
@ -123,14 +123,14 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
-- Switch user to owner, no rows should be visible -- Switch user to owner, no rows should be visible
SET ROLE rls_table_owner; SET ROLE rls_table_owner;
SELECT * FROM events ORDER BY 1; SELECT * FROM events ORDER BY 1;
tenant_id | id | type tenant_id | id | type
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Allow admins to read all rows -- Allow admins to read all rows
@ -142,7 +142,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
-- Verify the owner can insert a record -- Verify the owner can insert a record
INSERT INTO events VALUES (3,3,'push'); INSERT INTO events VALUES (3,3,'push');
@ -153,7 +153,7 @@ SELECT * FROM events ORDER BY 1;
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
3 | 3 | push 3 | 3 | push
(3 rows) (N rows)
-- Verify the owner can delete a record -- Verify the owner can delete a record
DELETE FROM events WHERE tenant_id = 3; DELETE FROM events WHERE tenant_id = 3;
@ -163,7 +163,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Alter the policy and verify no rows are visible for admin -- Alter the policy and verify no rows are visible for admin
@ -173,7 +173,7 @@ SET ROLE rls_table_owner;
SELECT * FROM events ORDER BY 1; SELECT * FROM events ORDER BY 1;
tenant_id | id | type tenant_id | id | type
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Test No Force Row Level Security, owner will not go through RLS anymore -- Test No Force Row Level Security, owner will not go through RLS anymore
@ -185,7 +185,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Disable row level security -- Disable row level security
@ -197,7 +197,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Clean up test -- Clean up test
@ -226,7 +226,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
-- Switch user that has been granted rights and read table -- Switch user that has been granted rights and read table
SET ROLE rls_tenant_1; SET ROLE rls_tenant_1;
@ -235,7 +235,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Enable row level security -- Enable row level security
@ -263,7 +263,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
-- Verify owner cannot insert anything -- Verify owner cannot insert anything
INSERT INTO events VALUES (3,3,'push'); INSERT INTO events VALUES (3,3,'push');
@ -279,7 +279,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Switch user that has been granted rights, should not be able to see any rows -- Switch user that has been granted rights, should not be able to see any rows
@ -287,7 +287,7 @@ SET ROLE rls_tenant_1;
SELECT * FROM events ORDER BY 1; SELECT * FROM events ORDER BY 1;
tenant_id | id | type tenant_id | id | type
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Create policy for tenants to read access their own rows -- Create policy for tenants to read access their own rows
@ -325,7 +325,7 @@ SET ROLE rls_tenant_2;
SELECT * FROM events ORDER BY 1; SELECT * FROM events ORDER BY 1;
tenant_id | id | type tenant_id | id | type
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
ALTER POLICY user_mod ON events TO rls_tenant_1, rls_tenant_2; ALTER POLICY user_mod ON events TO rls_tenant_1, rls_tenant_2;
@ -356,7 +356,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Disable row level security -- Disable row level security
@ -368,7 +368,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Clean up test -- Clean up test
@ -397,7 +397,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
-- Switch user that has been granted rights and read table -- Switch user that has been granted rights and read table
SET ROLE rls_tenant_1; SET ROLE rls_tenant_1;
@ -406,7 +406,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Configure FORCE and some policies before distribution -- Configure FORCE and some policies before distribution
@ -430,7 +430,7 @@ SET ROLE rls_table_owner;
SELECT * FROM events ORDER BY 1; SELECT * FROM events ORDER BY 1;
tenant_id | id | type tenant_id | id | type
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
RESET ROLE; RESET ROLE;
-- owner mod will only be set after distribution because it can test if FORCE has been -- owner mod will only be set after distribution because it can test if FORCE has been
@ -443,7 +443,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | push 2 | 2 | push
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- Switch user that has been granted rights, should be able to see their own rows -- Switch user that has been granted rights, should be able to see their own rows
@ -481,7 +481,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | push 1 | 1 | push
2 | 2 | pull 2 | 2 | pull
(2 rows) (N rows)
-- allow all users to update their own values -- allow all users to update their own values
ALTER POLICY user_mod ON events WITH CHECK (true); ALTER POLICY user_mod ON events WITH CHECK (true);
@ -497,7 +497,7 @@ SELECT * FROM events ORDER BY 1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 | 1 | pull tenant 1 1 | 1 | pull tenant 1
2 | 2 | pull tenant 2 2 | 2 | pull tenant 2
(2 rows) (N rows)
-- Clean up test -- Clean up test
DROP TABLE events; DROP TABLE events;

View File

@ -54,7 +54,7 @@ SELECT result FROM run_command_on_workers('SELECT citus_is_coordinator()');
--------------------------------------------------------------------- ---------------------------------------------------------------------
f f
f f
(2 rows) (N rows)
-- primary workers are primary node -- primary workers are primary node
SELECT result FROM run_command_on_workers('SELECT citus_is_primary_node()'); SELECT result FROM run_command_on_workers('SELECT citus_is_primary_node()');
@ -62,7 +62,7 @@ SELECT result FROM run_command_on_workers('SELECT citus_is_primary_node()');
--------------------------------------------------------------------- ---------------------------------------------------------------------
t t
t t
(2 rows) (N rows)
-- get the active nodes -- get the active nodes
SELECT master_get_active_worker_nodes(); SELECT master_get_active_worker_nodes();
@ -70,7 +70,7 @@ SELECT master_get_active_worker_nodes();
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57638) (localhost,57638)
(localhost,57637) (localhost,57637)
(2 rows) (N rows)
-- get all nodes -- get all nodes
SELECT * from citus_nodes; SELECT * from citus_nodes;
@ -79,7 +79,7 @@ SELECT * from citus_nodes;
localhost | 57637 | worker | t localhost | 57637 | worker | t
localhost | 57638 | worker | t localhost | 57638 | worker | t
localhost | 57636 | coordinator | t localhost | 57636 | coordinator | t
(3 rows) (N rows)
-- get get active nodes -- get get active nodes
SELECT * from citus_nodes where active = 't'; SELECT * from citus_nodes where active = 't';
@ -88,7 +88,7 @@ SELECT * from citus_nodes where active = 't';
localhost | 57637 | worker | t localhost | 57637 | worker | t
localhost | 57638 | worker | t localhost | 57638 | worker | t
localhost | 57636 | coordinator | t localhost | 57636 | coordinator | t
(3 rows) (N rows)
-- get coordinator nodes -- get coordinator nodes
SELECT * from citus_nodes where role = 'coordinator'; SELECT * from citus_nodes where role = 'coordinator';
@ -103,13 +103,13 @@ SELECT * from citus_nodes where role = 'worker';
--------------------------------------------------------------------- ---------------------------------------------------------------------
localhost | 57637 | worker | t localhost | 57637 | worker | t
localhost | 57638 | worker | t localhost | 57638 | worker | t
(2 rows) (N rows)
-- get nodes with unknown role -- get nodes with unknown role
SELECT * from citus_nodes where role = 'foo'; SELECT * from citus_nodes where role = 'foo';
nodename | nodeport | role | active nodename | nodeport | role | active
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
-- try to add a node that is already in the cluster -- try to add a node that is already in the cluster
SELECT * FROM master_add_node('localhost', :worker_1_port); SELECT * FROM master_add_node('localhost', :worker_1_port);
@ -124,7 +124,7 @@ SELECT master_get_active_worker_nodes();
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57638) (localhost,57638)
(localhost,57637) (localhost,57637)
(2 rows) (N rows)
-- try to remove a node (with no placements) -- try to remove a node (with no placements)
SELECT master_remove_node('localhost', :worker_2_port); SELECT master_remove_node('localhost', :worker_2_port);
@ -171,7 +171,7 @@ SELECT * from citus_nodes where active = 't';
--------------------------------------------------------------------- ---------------------------------------------------------------------
localhost | 57636 | coordinator | t localhost | 57636 | coordinator | t
localhost | 57637 | worker | t localhost | 57637 | worker | t
(2 rows) (N rows)
-- get get inactive nodes -- get get inactive nodes
SELECT * from citus_nodes where active = 'f'; SELECT * from citus_nodes where active = 'f';
@ -189,7 +189,7 @@ SELECT * FROM citus_nodes;
localhost | 57636 | coordinator | t localhost | 57636 | coordinator | t
localhost | 57638 | worker | f localhost | 57638 | worker | f
localhost | 57637 | worker | t localhost | 57637 | worker | t
(3 rows) (N rows)
SET ROLE postgres; SET ROLE postgres;
DROP ROLE normaluser; DROP ROLE normaluser;
@ -206,7 +206,7 @@ ROLLBACK;
SELECT * FROM get_rebalance_table_shards_plan(); SELECT * FROM get_rebalance_table_shards_plan();
table_name | shardid | shard_size | sourcename | sourceport | targetname | targetport table_name | shardid | shard_size | sourcename | sourceport | targetname | targetport
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT * FROM rebalance_table_shards(); SELECT * FROM rebalance_table_shards();
rebalance_table_shards rebalance_table_shards
@ -297,7 +297,7 @@ SELECT shardid, shardstate, nodename, nodeport FROM pg_dist_shard_placement WHER
1220011 | 1 | localhost | 57638 1220011 | 1 | localhost | 57638
1220013 | 1 | localhost | 57638 1220013 | 1 | localhost | 57638
1220015 | 1 | localhost | 57638 1220015 | 1 | localhost | 57638
(8 rows) (N rows)
-- try to remove a node with active placements and see that node removal is failed -- try to remove a node with active placements and see that node removal is failed
SELECT master_remove_node('localhost', :worker_2_port); SELECT master_remove_node('localhost', :worker_2_port);
@ -309,7 +309,7 @@ SELECT master_get_active_worker_nodes();
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57638) (localhost,57638)
(localhost,57637) (localhost,57637)
(2 rows) (N rows)
-- insert a row so that citus_disable_node() exercises closing connections -- insert a row so that citus_disable_node() exercises closing connections
CREATE TABLE test_reference_table (y int primary key, name text); CREATE TABLE test_reference_table (y int primary key, name text);
@ -337,7 +337,7 @@ SELECT master_get_active_worker_nodes();
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57638) (localhost,57638)
(localhost,57637) (localhost,57637)
(2 rows) (N rows)
-- try to disable a node which does not exist and see that an error is thrown -- try to disable a node which does not exist and see that an error is thrown
SELECT citus_disable_node('localhost.noexist', 2345); SELECT citus_disable_node('localhost.noexist', 2345);
@ -359,7 +359,7 @@ SELECT 1 FROM run_command_on_workers('CREATE USER node_metadata_user');
--------------------------------------------------------------------- ---------------------------------------------------------------------
1 1
1 1
(2 rows) (N rows)
RESET client_min_messages; RESET client_min_messages;
GRANT EXECUTE ON FUNCTION master_activate_node(text,int) TO node_metadata_user; GRANT EXECUTE ON FUNCTION master_activate_node(text,int) TO node_metadata_user;
@ -376,28 +376,28 @@ SELECT run_command_on_workers('GRANT ALL ON pg_dist_node TO node_metadata_user')
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,GRANT) (localhost,57637,t,GRANT)
(localhost,57638,t,GRANT) (localhost,57638,t,GRANT)
(2 rows) (N rows)
SELECT run_command_on_workers('GRANT ALL ON pg_dist_local_group TO node_metadata_user'); SELECT run_command_on_workers('GRANT ALL ON pg_dist_local_group TO node_metadata_user');
run_command_on_workers run_command_on_workers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,GRANT) (localhost,57637,t,GRANT)
(localhost,57638,t,GRANT) (localhost,57638,t,GRANT)
(2 rows) (N rows)
SELECT run_command_on_workers('GRANT ALL ON ALL TABLES IN SCHEMA citus TO node_metadata_user'); SELECT run_command_on_workers('GRANT ALL ON ALL TABLES IN SCHEMA citus TO node_metadata_user');
run_command_on_workers run_command_on_workers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,GRANT) (localhost,57637,t,GRANT)
(localhost,57638,t,GRANT) (localhost,57638,t,GRANT)
(2 rows) (N rows)
SELECT run_command_on_workers('GRANT ALL ON SCHEMA citus TO node_metadata_user'); SELECT run_command_on_workers('GRANT ALL ON SCHEMA citus TO node_metadata_user');
run_command_on_workers run_command_on_workers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,GRANT) (localhost,57637,t,GRANT)
(localhost,57638,t,GRANT) (localhost,57638,t,GRANT)
(2 rows) (N rows)
SELECT master_remove_node('localhost', :worker_2_port); SELECT master_remove_node('localhost', :worker_2_port);
master_remove_node master_remove_node
@ -451,7 +451,7 @@ SELECT 1 FROM master_add_secondary_node('localhost', :worker_2_port + 2, 'localh
SELECT master_update_node(nodeid, 'localhost', :worker_2_port + 3) FROM pg_dist_node WHERE nodeport = :worker_2_port; SELECT master_update_node(nodeid, 'localhost', :worker_2_port + 3) FROM pg_dist_node WHERE nodeport = :worker_2_port;
master_update_node master_update_node
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT nodename, nodeport, noderole FROM pg_dist_node ORDER BY nodeport; SELECT nodename, nodeport, noderole FROM pg_dist_node ORDER BY nodeport;
nodename | nodeport | noderole nodename | nodeport | noderole
@ -459,7 +459,7 @@ SELECT nodename, nodeport, noderole FROM pg_dist_node ORDER BY nodeport;
localhost | 57636 | primary localhost | 57636 | primary
localhost | 57637 | primary localhost | 57637 | primary
localhost | 57640 | secondary localhost | 57640 | secondary
(3 rows) (N rows)
ABORT; ABORT;
\c - postgres - :master_port \c - postgres - :master_port
@ -502,7 +502,7 @@ SELECT run_command_on_workers('UPDATE pg_dist_placement SET shardstate=3 WHERE g
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,"UPDATE 8") (localhost,57637,t,"UPDATE 8")
(localhost,57638,t,"UPDATE 8") (localhost,57638,t,"UPDATE 8")
(2 rows) (N rows)
SELECT shardid, shardstate, nodename, nodeport FROM pg_dist_shard_placement WHERE nodeport=:worker_2_port; SELECT shardid, shardstate, nodename, nodeport FROM pg_dist_shard_placement WHERE nodeport=:worker_2_port;
shardid | shardstate | nodename | nodeport shardid | shardstate | nodename | nodeport
@ -515,7 +515,7 @@ SELECT shardid, shardstate, nodename, nodeport FROM pg_dist_shard_placement WHER
1220011 | 3 | localhost | 57638 1220011 | 3 | localhost | 57638
1220013 | 3 | localhost | 57638 1220013 | 3 | localhost | 57638
1220015 | 3 | localhost | 57638 1220015 | 3 | localhost | 57638
(8 rows) (N rows)
-- try to remove a node with only inactive placements and see that removal still fails -- try to remove a node with only inactive placements and see that removal still fails
SELECT master_remove_node('localhost', :worker_2_port); SELECT master_remove_node('localhost', :worker_2_port);
@ -527,7 +527,7 @@ SELECT master_get_active_worker_nodes();
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57638) (localhost,57638)
(localhost,57637) (localhost,57637)
(2 rows) (N rows)
-- clean-up -- clean-up
SELECT 1 FROM master_add_node('localhost', :worker_2_port); SELECT 1 FROM master_add_node('localhost', :worker_2_port);
@ -542,7 +542,7 @@ SELECT run_command_on_workers('UPDATE pg_dist_placement SET shardstate=1 WHERE g
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,"UPDATE 8") (localhost,57637,t,"UPDATE 8")
(localhost,57638,t,"UPDATE 8") (localhost,57638,t,"UPDATE 8")
(2 rows) (N rows)
-- when there is no primary we should get a pretty error -- when there is no primary we should get a pretty error
UPDATE pg_dist_node SET noderole = 'secondary' WHERE nodeport=:worker_2_port; UPDATE pg_dist_node SET noderole = 'secondary' WHERE nodeport=:worker_2_port;
@ -578,7 +578,7 @@ SELECT run_command_on_workers('UPDATE pg_dist_placement SET groupid = ' || :'new
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,"UPDATE 8") (localhost,57637,t,"UPDATE 8")
(localhost,57638,t,"UPDATE 0") (localhost,57638,t,"UPDATE 0")
(2 rows) (N rows)
SELECT start_metadata_sync_to_node('localhost', :worker_2_port); SELECT start_metadata_sync_to_node('localhost', :worker_2_port);
start_metadata_sync_to_node start_metadata_sync_to_node
@ -642,7 +642,7 @@ SELECT master_remove_node('localhost', :worker_2_port);
SELECT nodename, nodeport FROM pg_dist_node WHERE nodename='localhost' AND nodeport=:worker_2_port; SELECT nodename, nodeport FROM pg_dist_node WHERE nodename='localhost' AND nodeport=:worker_2_port;
nodename | nodeport nodename | nodeport
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - - :master_port \c - - - :master_port
-- check that added nodes are not propagated to nodes without metadata -- check that added nodes are not propagated to nodes without metadata
@ -663,7 +663,7 @@ SELECT 1 FROM master_add_node('localhost', :worker_2_port);
SELECT nodename, nodeport FROM pg_dist_node WHERE nodename='localhost' AND nodeport=:worker_2_port; SELECT nodename, nodeport FROM pg_dist_node WHERE nodename='localhost' AND nodeport=:worker_2_port;
nodename | nodeport nodename | nodeport
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - - :master_port \c - - - :master_port
-- check that removing two nodes in the same transaction works -- check that removing two nodes in the same transaction works
@ -696,7 +696,7 @@ SELECT * FROM pg_dist_node ORDER BY nodeid;
3 | 0 | localhost | 57636 | default | t | t | primary | default | t | f 3 | 0 | localhost | 57636 | default | t | t | primary | default | t | f
11 | 9 | localhost | 57637 | default | t | t | primary | default | t | t 11 | 9 | localhost | 57637 | default | t | t | primary | default | t | t
12 | 10 | localhost | 57638 | default | t | t | primary | default | t | t 12 | 10 | localhost | 57638 | default | t | t | primary | default | t | t
(3 rows) (N rows)
-- check that mixed add/remove node commands work fine inside transaction -- check that mixed add/remove node commands work fine inside transaction
BEGIN; BEGIN;
@ -722,7 +722,7 @@ COMMIT;
SELECT nodename, nodeport FROM pg_dist_node WHERE nodename='localhost' AND nodeport=:worker_2_port; SELECT nodename, nodeport FROM pg_dist_node WHERE nodename='localhost' AND nodeport=:worker_2_port;
nodename | nodeport nodename | nodeport
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT start_metadata_sync_to_node('localhost', :worker_1_port); SELECT start_metadata_sync_to_node('localhost', :worker_1_port);
start_metadata_sync_to_node start_metadata_sync_to_node
@ -770,7 +770,7 @@ SELECT master_remove_node(nodename, nodeport) FROM pg_dist_node;
(3 rows) (N rows)
SELECT citus_set_coordinator_host('localhost'); SELECT citus_set_coordinator_host('localhost');
citus_set_coordinator_host citus_set_coordinator_host
@ -820,7 +820,7 @@ SELECT col1, col2 FROM temp ORDER BY col1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
row1 | 1 row1 | 1
row2 | 2 row2 | 2
(2 rows) (N rows)
SELECT SELECT
count(*) count(*)
@ -1061,7 +1061,7 @@ SELECT start_metadata_sync_to_node(nodename, nodeport) FROM pg_dist_node WHERE i
(3 rows) (N rows)
RESET client_min_messages; RESET client_min_messages;
SET citus.shard_replication_factor TO 1; SET citus.shard_replication_factor TO 1;
@ -1115,7 +1115,7 @@ WHERE logicalrelid = 'test_dist_colocated'::regclass GROUP BY nodeport ORDER BY
--------------------------------------------------------------------- ---------------------------------------------------------------------
57637 | 2 57637 | 2
57638 | 2 57638 | 2
(2 rows) (N rows)
-- non colocated tables should not be placed on shouldhaveshards false nodes anymore -- non colocated tables should not be placed on shouldhaveshards false nodes anymore
SELECT nodeport, count(*) SELECT nodeport, count(*)
@ -1145,7 +1145,7 @@ WHERE logicalrelid = 'test_ref'::regclass GROUP BY nodeport ORDER BY nodeport;
57636 | 1 57636 | 1
57637 | 1 57637 | 1
57638 | 1 57638 | 1
(3 rows) (N rows)
-- cleanup for next test -- cleanup for next test
DROP TABLE test_dist, test_ref, test_dist_colocated, test_dist_non_colocated, test_dist_colocated_with_non_colocated; DROP TABLE test_dist, test_ref, test_dist_colocated, test_dist_non_colocated, test_dist_colocated_with_non_colocated;
@ -1190,7 +1190,7 @@ WHERE logicalrelid = 'test_ref'::regclass GROUP BY nodeport ORDER BY nodeport;
57636 | 1 57636 | 1
57637 | 1 57637 | 1
57638 | 1 57638 | 1
(3 rows) (N rows)
SELECT * from master_set_node_property('localhost', :worker_2_port, 'shouldhaveshards', true); SELECT * from master_set_node_property('localhost', :worker_2_port, 'shouldhaveshards', true);
master_set_node_property master_set_node_property
@ -1217,7 +1217,7 @@ WHERE logicalrelid = 'test_ref'::regclass GROUP BY nodeport ORDER BY nodeport;
57636 | 1 57636 | 1
57637 | 1 57637 | 1
57638 | 1 57638 | 1
(3 rows) (N rows)
SELECT create_distributed_table('test_dist_colocated', 'x'); SELECT create_distributed_table('test_dist_colocated', 'x');
create_distributed_table create_distributed_table
@ -1250,7 +1250,7 @@ WHERE logicalrelid = 'test_dist_non_colocated'::regclass GROUP BY nodeport ORDER
--------------------------------------------------------------------- ---------------------------------------------------------------------
57637 | 2 57637 | 2
57638 | 2 57638 | 2
(2 rows) (N rows)
SELECT * from master_set_node_property('localhost', :worker_2_port, 'bogusproperty', false); SELECT * from master_set_node_property('localhost', :worker_2_port, 'bogusproperty', false);
ERROR: only the 'shouldhaveshards' property can be set using this function ERROR: only the 'shouldhaveshards' property can be set using this function

View File

@ -26,7 +26,7 @@ SELECT * FROM run_command_on_workers($$SELECT pg_identify_object_as_address(clas
--------------------------------------------------------------------- ---------------------------------------------------------------------
localhost | 57637 | t | (table,"{role_dependency_schema,non_super_user_table}",{}) localhost | 57637 | t | (table,"{role_dependency_schema,non_super_user_table}",{})
localhost | 57638 | t | (table,"{role_dependency_schema,non_super_user_table}",{}) localhost | 57638 | t | (table,"{role_dependency_schema,non_super_user_table}",{})
(2 rows) (N rows)
SELECT pg_identify_object_as_address(classid, objid, objsubid) from pg_catalog.pg_dist_object where pg_identify_object_as_address(classid, objid, objsubid)::text like '%superusers_type%'; SELECT pg_identify_object_as_address(classid, objid, objsubid) from pg_catalog.pg_dist_object where pg_identify_object_as_address(classid, objid, objsubid)::text like '%superusers_type%';
pg_identify_object_as_address pg_identify_object_as_address
@ -39,7 +39,7 @@ SELECT * FROM run_command_on_workers($$SELECT pg_identify_object_as_address(clas
--------------------------------------------------------------------- ---------------------------------------------------------------------
localhost | 57637 | t | (type,{role_dependency_schema.superusers_type},{}) localhost | 57637 | t | (type,{role_dependency_schema.superusers_type},{})
localhost | 57638 | t | (type,{role_dependency_schema.superusers_type},{}) localhost | 57638 | t | (type,{role_dependency_schema.superusers_type},{})
(2 rows) (N rows)
DROP SCHEMA role_dependency_schema CASCADE; DROP SCHEMA role_dependency_schema CASCADE;
NOTICE: drop cascades to 2 other objects NOTICE: drop cascades to 2 other objects

View File

@ -215,7 +215,7 @@ SELECT * FROM data_load_test ORDER BY col1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
132 | hello | 1 132 | hello | 1
243 | world | 2 243 | world | 2
(2 rows) (N rows)
DROP TABLE data_load_test; DROP TABLE data_load_test;
-- test queries on distributed tables with no shards -- test queries on distributed tables with no shards
@ -229,7 +229,7 @@ SELECT create_distributed_table('no_shard_test', 'col1', 'append');
SELECT * FROM no_shard_test WHERE col1 > 1; SELECT * FROM no_shard_test WHERE col1 > 1;
col1 | col2 col1 | col2
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
DROP TABLE no_shard_test; DROP TABLE no_shard_test;
CREATE TABLE no_shard_test (col1 int, col2 text); CREATE TABLE no_shard_test (col1 int, col2 text);
@ -242,7 +242,7 @@ SELECT create_distributed_table('no_shard_test', 'col1', 'range');
SELECT * FROM no_shard_test WHERE col1 > 1; SELECT * FROM no_shard_test WHERE col1 > 1;
col1 | col2 col1 | col2
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
DROP TABLE no_shard_test; DROP TABLE no_shard_test;
-- ensure writes in the same transaction as create_distributed_table are visible -- ensure writes in the same transaction as create_distributed_table are visible
@ -266,7 +266,7 @@ SELECT * FROM data_load_test ORDER BY col1;
--------------------------------------------------------------------- ---------------------------------------------------------------------
132 | hello | 1 132 | hello | 1
243 | world | 2 243 | world | 2
(2 rows) (N rows)
DROP TABLE data_load_test; DROP TABLE data_load_test;
-- creating co-located distributed tables in the same transaction works -- creating co-located distributed tables in the same transaction works

View File

@ -37,7 +37,7 @@ ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 360025;
SELECT relname FROM pg_class WHERE relname LIKE 'data_load_test%'; SELECT relname FROM pg_class WHERE relname LIKE 'data_load_test%';
relname relname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - :master_host :master_port \c - - :master_host :master_port
-- creating an index after loading data works -- creating an index after loading data works
@ -110,7 +110,7 @@ SELECT * FROM data_load_test ORDER BY col2;
--------------------------------------------------------------------- ---------------------------------------------------------------------
hello | world | hello | world |
world | hello | world | hello |
(2 rows) (N rows)
-- make sure the tuple went to the right shard -- make sure the tuple went to the right shard
SELECT * FROM data_load_test WHERE col3 = 'world'; SELECT * FROM data_load_test WHERE col3 = 'world';
@ -152,7 +152,7 @@ SELECT * FROM master_get_table_ddl_events('unlogged_table');
--------------------------------------------------------------------- ---------------------------------------------------------------------
CREATE UNLOGGED TABLE public.unlogged_table (key text, value text) USING heap CREATE UNLOGGED TABLE public.unlogged_table (key text, value text) USING heap
ALTER TABLE public.unlogged_table OWNER TO postgres ALTER TABLE public.unlogged_table OWNER TO postgres
(2 rows) (N rows)
\c - - :public_worker_1_host :worker_1_port \c - - :public_worker_1_host :worker_1_port
SELECT relpersistence FROM pg_class WHERE relname LIKE 'unlogged_table_%'; SELECT relpersistence FROM pg_class WHERE relname LIKE 'unlogged_table_%';
@ -162,7 +162,7 @@ SELECT relpersistence FROM pg_class WHERE relname LIKE 'unlogged_table_%';
u u
u u
u u
(4 rows) (N rows)
\c - - :master_host :master_port \c - - :master_host :master_port
-- Test rollback of create table -- Test rollback of create table
@ -180,7 +180,7 @@ ROLLBACK;
SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid FROM pg_class WHERE relname LIKE 'rollback_table%'); SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid FROM pg_class WHERE relname LIKE 'rollback_table%');
Column | Type | Modifiers Column | Type | Modifiers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - :master_host :master_port \c - - :master_host :master_port
-- Insert 3 rows to make sure that copy after shard creation touches the same -- Insert 3 rows to make sure that copy after shard creation touches the same
@ -206,7 +206,7 @@ ROLLBACK;
SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid FROM pg_class WHERE relname LIKE 'rollback_table%'); SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid FROM pg_class WHERE relname LIKE 'rollback_table%');
Column | Type | Modifiers Column | Type | Modifiers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - :master_host :master_port \c - - :master_host :master_port
BEGIN; BEGIN;
@ -243,7 +243,7 @@ ROLLBACK;
SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid FROM pg_class WHERE relname LIKE 'rollback_table%'); SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid FROM pg_class WHERE relname LIKE 'rollback_table%');
Column | Type | Modifiers Column | Type | Modifiers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - :master_host :master_port \c - - :master_host :master_port
BEGIN; BEGIN;
@ -312,7 +312,7 @@ SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = 'public.appen
SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid from pg_class WHERE relname LIKE 'public.tt1%'); SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid from pg_class WHERE relname LIKE 'public.tt1%');
Column | Type | Modifiers Column | Type | Modifiers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - :master_host :master_port \c - - :master_host :master_port
-- Queries executing with router executor is allowed in the same transaction -- Queries executing with router executor is allowed in the same transaction
@ -363,7 +363,7 @@ COMMIT;
SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid from pg_class WHERE relname LIKE 'tt1%'); SELECT "Column", "Type", "Modifiers" FROM table_desc WHERE relid = (SELECT oid from pg_class WHERE relname LIKE 'tt1%');
Column | Type | Modifiers Column | Type | Modifiers
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
\c - - :master_host :master_port \c - - :master_host :master_port
-- Tests with create_distributed_table & DDL & DML commands -- Tests with create_distributed_table & DDL & DML commands
@ -525,7 +525,7 @@ SELECT run_command_on_workers($$SELECT relreplident FROM pg_class join informati
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,i) (localhost,57637,t,i)
(localhost,57638,t,i) (localhost,57638,t,i)
(2 rows) (N rows)
BEGIN; BEGIN;
CREATE SCHEMA sc4; CREATE SCHEMA sc4;
@ -553,7 +553,7 @@ SELECT run_command_on_workers($$SELECT relreplident FROM pg_class join informati
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,i) (localhost,57637,t,i)
(localhost,57638,t,i) (localhost,57638,t,i)
(2 rows) (N rows)
SET search_path = 'public'; SET search_path = 'public';
BEGIN; BEGIN;
@ -581,7 +581,7 @@ SELECT run_command_on_workers($$SELECT relreplident FROM pg_class join informati
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,f) (localhost,57637,t,f)
(localhost,57638,t,f) (localhost,57638,t,f)
(2 rows) (N rows)
BEGIN; BEGIN;
CREATE SCHEMA sc6; CREATE SCHEMA sc6;
@ -609,7 +609,7 @@ SELECT run_command_on_workers($$SELECT relreplident FROM pg_class join informati
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,i) (localhost,57637,t,i)
(localhost,57638,t,i) (localhost,57638,t,i)
(2 rows) (N rows)
BEGIN; BEGIN;
CREATE TABLE alter_replica_table CREATE TABLE alter_replica_table
@ -636,7 +636,7 @@ SELECT run_command_on_workers($$SELECT relreplident FROM pg_class join informati
--------------------------------------------------------------------- ---------------------------------------------------------------------
(localhost,57637,t,i) (localhost,57637,t,i)
(localhost,57638,t,i) (localhost,57638,t,i)
(2 rows) (N rows)
DROP TABLE tt1; DROP TABLE tt1;
DROP TABLE tt2; DROP TABLE tt2;

View File

@ -181,7 +181,7 @@ INSERT INTO composite_type_partitioned_table VALUES (123, '(123, 456)'::other_co
Node: host=localhost port=xxxxx dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> Insert on composite_type_partitioned_table_530003 (actual rows=0 loops=1) -> Insert on composite_type_partitioned_table_530003 (actual rows=0 loops=1)
-> Result (actual rows=1 loops=1) -> Result (actual rows=1 loops=1)
(7 rows) (N rows)
SELECT run_command_on_coordinator_and_workers($cf$ SELECT run_command_on_coordinator_and_workers($cf$
DROP CAST (other_composite_type as test_composite_type); DROP CAST (other_composite_type as test_composite_type);
@ -223,7 +223,7 @@ INSERT INTO composite_type_partitioned_table VALUES (123, '(456, 678)'::other_co
Node: host=localhost port=xxxxx dbname=regression Node: host=localhost port=xxxxx dbname=regression
-> Insert on composite_type_partitioned_table_530000 (actual rows=0 loops=1) -> Insert on composite_type_partitioned_table_530000 (actual rows=0 loops=1)
-> Result (actual rows=1 loops=1) -> Result (actual rows=1 loops=1)
(7 rows) (N rows)
-- create and distribute a table on enum type column -- create and distribute a table on enum type column
CREATE TYPE bug_status AS ENUM ('new', 'open', 'closed'); CREATE TYPE bug_status AS ENUM ('new', 'open', 'closed');
@ -248,7 +248,7 @@ SELECT * FROM bugs WHERE status = 'closed'::bug_status;
--------------------------------------------------------------------- ---------------------------------------------------------------------
3 | closed 3 | closed
4 | closed 4 | closed
(2 rows) (N rows)
UPDATE bugs SET status = 'closed'::bug_status WHERE id = 2; UPDATE bugs SET status = 'closed'::bug_status WHERE id = 2;
ERROR: modifying the partition value of rows is not allowed ERROR: modifying the partition value of rows is not allowed
@ -257,7 +257,7 @@ SELECT * FROM bugs WHERE status = 'open'::bug_status;
--------------------------------------------------------------------- ---------------------------------------------------------------------
2 | open 2 | open
5 | open 5 | open
(2 rows) (N rows)
-- create and distribute a table on varchar column -- create and distribute a table on varchar column
CREATE TABLE varchar_hash_partitioned_table CREATE TABLE varchar_hash_partitioned_table

View File

@ -92,7 +92,7 @@ SELECT o_orderstatus, sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders
--------------------------------------------------------------------- ---------------------------------------------------------------------
F | 8559 | 3.0126715945089757 F | 8559 | 3.0126715945089757
O | 8904 | 3.0040485829959514 O | 8904 | 3.0040485829959514
(2 rows) (N rows)
-- fix worker passwords, which should invalidate task tracker caches -- fix worker passwords, which should invalidate task tracker caches
\c - postgres - :worker_1_port \c - postgres - :worker_1_port
@ -113,7 +113,7 @@ SELECT o_orderstatus, sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders
--------------------------------------------------------------------- ---------------------------------------------------------------------
F | 8559 | 3.0126715945089757 F | 8559 | 3.0126715945089757
O | 8904 | 3.0040485829959514 O | 8904 | 3.0040485829959514
(2 rows) (N rows)
-- adaptive query -- adaptive query
RESET citus.task_executor_type; RESET citus.task_executor_type;
@ -126,7 +126,7 @@ SELECT o_orderstatus, sum(l_linenumber), avg(l_linenumber) FROM lineitem, orders
--------------------------------------------------------------------- ---------------------------------------------------------------------
F | 8559 | 3.0126715945089757 F | 8559 | 3.0126715945089757
O | 8904 | 3.0040485829959514 O | 8904 | 3.0040485829959514
(2 rows) (N rows)
-- create and distribute table -- create and distribute table
CREATE TABLE wonderland (id integer, name text); CREATE TABLE wonderland (id integer, name text);

View File

@ -88,7 +88,7 @@ LIMIT 30;
864 | 3175 | 1 864 | 3175 | 1
960 | 10980 | 1 960 | 10980 | 1
963 | 4580 | 1 963 | 4580 | 1
(20 rows) (N rows)
RESET ROLE; RESET ROLE;
SET ROLE no_access; SET ROLE no_access;
@ -151,7 +151,7 @@ LIMIT 30;
864 | 3175 | 1 864 | 3175 | 1
960 | 10980 | 1 960 | 10980 | 1
963 | 4580 | 1 963 | 4580 | 1
(20 rows) (N rows)
RESET ROLE; RESET ROLE;
SET ROLE no_access; SET ROLE no_access;

View File

@ -20,7 +20,7 @@ SET ROLE full_access;
SELECT oid, relname, relacl FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND has_table_privilege(oid, 'SELECT'); SELECT oid, relname, relacl FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND has_table_privilege(oid, 'SELECT');
oid | relname | relacl oid | relname | relacl
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT count(*) FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND NOT has_table_privilege(oid, 'SELECT'); SELECT count(*) FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND NOT has_table_privilege(oid, 'SELECT');
count count
@ -45,7 +45,7 @@ SET ROLE full_access;
SELECT oid, relname, relacl FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND has_table_privilege(oid, 'SELECT'); SELECT oid, relname, relacl FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND has_table_privilege(oid, 'SELECT');
oid | relname | relacl oid | relname | relacl
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT count(*) FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND NOT has_table_privilege(oid, 'SELECT'); SELECT count(*) FROM pg_class WHERE relkind = 'r' AND relname LIKE 'customer_%' AND NOT has_table_privilege(oid, 'SELECT');
count count

View File

@ -38,7 +38,7 @@ SELECT * FROM master_get_table_ddl_events('lineitem') order by 1;
GRANT UPDATE ON public.lineitem TO full_access GRANT UPDATE ON public.lineitem TO full_access
GRANT UPDATE ON public.lineitem TO postgres GRANT UPDATE ON public.lineitem TO postgres
REVOKE ALL ON public.lineitem FROM PUBLIC REVOKE ALL ON public.lineitem FROM PUBLIC
(22 rows) (N rows)
SELECT * FROM master_get_new_shardid(); SELECT * FROM master_get_new_shardid();
master_get_new_shardid master_get_new_shardid
@ -51,7 +51,7 @@ SELECT * FROM master_get_active_worker_nodes();
--------------------------------------------------------------------- ---------------------------------------------------------------------
localhost | 57638 localhost | 57638
localhost | 57637 localhost | 57637
(2 rows) (N rows)
RESET ROLE; RESET ROLE;
-- ensure GRANT/REVOKE's do something sane for creating shards of -- ensure GRANT/REVOKE's do something sane for creating shards of
@ -67,7 +67,7 @@ SELECT * FROM master_get_table_ddl_events('checkperm');
--------------------------------------------------------------------- ---------------------------------------------------------------------
CREATE TABLE public.checkperm (key integer) USING heap CREATE TABLE public.checkperm (key integer) USING heap
ALTER TABLE public.checkperm OWNER TO postgres ALTER TABLE public.checkperm OWNER TO postgres
(2 rows) (N rows)
REVOKE ALL ON checkperm FROM PUBLIC; REVOKE ALL ON checkperm FROM PUBLIC;
SELECT * FROM master_get_table_ddl_events('checkperm'); SELECT * FROM master_get_table_ddl_events('checkperm');
@ -84,7 +84,7 @@ SELECT * FROM master_get_table_ddl_events('checkperm');
GRANT TRIGGER ON public.checkperm TO postgres GRANT TRIGGER ON public.checkperm TO postgres
GRANT MAINTAIN ON public.checkperm TO postgres GRANT MAINTAIN ON public.checkperm TO postgres
ALTER TABLE public.checkperm OWNER TO postgres ALTER TABLE public.checkperm OWNER TO postgres
(11 rows) (N rows)
GRANT SELECT ON checkperm TO read_access; GRANT SELECT ON checkperm TO read_access;
GRANT ALL ON checkperm TO full_access; GRANT ALL ON checkperm TO full_access;
@ -111,7 +111,7 @@ SELECT * FROM master_get_table_ddl_events('checkperm');
GRANT TRIGGER ON public.checkperm TO full_access GRANT TRIGGER ON public.checkperm TO full_access
GRANT MAINTAIN ON public.checkperm TO full_access GRANT MAINTAIN ON public.checkperm TO full_access
ALTER TABLE public.checkperm OWNER TO postgres ALTER TABLE public.checkperm OWNER TO postgres
(20 rows) (N rows)
REVOKE ALL ON checkperm FROM read_access; REVOKE ALL ON checkperm FROM read_access;
GRANT SELECT ON checkperm TO PUBLIC; GRANT SELECT ON checkperm TO PUBLIC;
@ -138,7 +138,7 @@ SELECT * FROM master_get_table_ddl_events('checkperm');
GRANT MAINTAIN ON public.checkperm TO full_access GRANT MAINTAIN ON public.checkperm TO full_access
GRANT SELECT ON public.checkperm TO PUBLIC GRANT SELECT ON public.checkperm TO PUBLIC
ALTER TABLE public.checkperm OWNER TO postgres ALTER TABLE public.checkperm OWNER TO postgres
(20 rows) (N rows)
GRANT ALL ON checkperm TO full_access WITH GRANT OPTION; GRANT ALL ON checkperm TO full_access WITH GRANT OPTION;
SELECT * FROM master_get_table_ddl_events('checkperm'); SELECT * FROM master_get_table_ddl_events('checkperm');
@ -164,7 +164,7 @@ SELECT * FROM master_get_table_ddl_events('checkperm');
GRANT MAINTAIN ON public.checkperm TO full_access WITH GRANT OPTION GRANT MAINTAIN ON public.checkperm TO full_access WITH GRANT OPTION
GRANT SELECT ON public.checkperm TO PUBLIC GRANT SELECT ON public.checkperm TO PUBLIC
ALTER TABLE public.checkperm OWNER TO postgres ALTER TABLE public.checkperm OWNER TO postgres
(20 rows) (N rows)
-- create table as superuser/postgres -- create table as superuser/postgres
CREATE TABLE trivial_postgres (id int); CREATE TABLE trivial_postgres (id int);
@ -190,7 +190,7 @@ SELECT relname, rolname, relacl FROM pg_class JOIN pg_roles ON (pg_roles.oid = p
--------------------------------------------------------------------- ---------------------------------------------------------------------
trivial_full_access | full_access | trivial_full_access | full_access |
trivial_postgres | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres} trivial_postgres | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres}
(2 rows) (N rows)
SET citus.shard_replication_factor = 2; -- on all workers... SET citus.shard_replication_factor = 2; -- on all workers...
-- create shards as each user, verify ownership -- create shards as each user, verify ownership
@ -244,7 +244,7 @@ SELECT relname, rolname, relacl FROM pg_class JOIN pg_roles ON (pg_roles.oid = p
trivial_postgres_109080 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres} trivial_postgres_109080 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres}
trivial_postgres_109082 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres} trivial_postgres_109082 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres}
trivial_postgres_109084 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres} trivial_postgres_109084 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres}
(6 rows) (N rows)
\c - - - :worker_2_port \c - - - :worker_2_port
SELECT relname, rolname, relacl FROM pg_class JOIN pg_roles ON (pg_roles.oid = pg_class.relowner) WHERE relname LIKE 'trivial%' ORDER BY relname; SELECT relname, rolname, relacl FROM pg_class JOIN pg_roles ON (pg_roles.oid = pg_class.relowner) WHERE relname LIKE 'trivial%' ORDER BY relname;
@ -256,7 +256,7 @@ SELECT relname, rolname, relacl FROM pg_class JOIN pg_roles ON (pg_roles.oid = p
trivial_postgres_109080 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres} trivial_postgres_109080 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres}
trivial_postgres_109082 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres} trivial_postgres_109082 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres}
trivial_postgres_109084 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres} trivial_postgres_109084 | postgres | {postgres=arwdDxtm/postgres,full_access=arwdDxtm/postgres}
(6 rows) (N rows)
\c - - - :master_port \c - - - :master_port
-- ensure COPY into append tables works -- ensure COPY into append tables works
@ -282,7 +282,7 @@ SELECT * FROM trivial_postgres ORDER BY id;
1 1
2 2
2 2
(4 rows) (N rows)
SELECT * FROM trivial_full_access ORDER BY id; SELECT * FROM trivial_full_access ORDER BY id;
id id
@ -291,7 +291,7 @@ SELECT * FROM trivial_full_access ORDER BY id;
1 1
2 2
2 2
(4 rows) (N rows)
SET ROLE full_access; SET ROLE full_access;
SELECT * FROM trivial_postgres ORDER BY id; SELECT * FROM trivial_postgres ORDER BY id;
@ -301,7 +301,7 @@ SELECT * FROM trivial_postgres ORDER BY id;
1 1
2 2
2 2
(4 rows) (N rows)
SELECT * FROM trivial_full_access ORDER BY id; SELECT * FROM trivial_full_access ORDER BY id;
id id
@ -310,7 +310,7 @@ SELECT * FROM trivial_full_access ORDER BY id;
1 1
2 2
2 2
(4 rows) (N rows)
RESET ROLE; RESET ROLE;
-- verify column level grants are supported -- verify column level grants are supported
@ -341,7 +341,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109092 | t | f localhost | 57637 | 109092 | t | f
localhost | 57638 | 109091 | t | f localhost | 57638 | 109091 | t | f
localhost | 57638 | 109093 | t | f localhost | 57638 | 109093 | t | f
(4 rows) (N rows)
-- grant select -- grant select
GRANT SELECT ON ALL TABLES IN SCHEMA multiuser_schema TO read_access; GRANT SELECT ON ALL TABLES IN SCHEMA multiuser_schema TO read_access;
@ -354,7 +354,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109092 | t | t localhost | 57637 | 109092 | t | t
localhost | 57638 | 109091 | t | t localhost | 57638 | 109091 | t | t
localhost | 57638 | 109093 | t | t localhost | 57638 | 109093 | t | t
(4 rows) (N rows)
-- distribute the second table -- distribute the second table
SELECT create_reference_table('multiuser_schema.reference_table'); SELECT create_reference_table('multiuser_schema.reference_table');
@ -371,7 +371,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57636 | 109094 | t | t localhost | 57636 | 109094 | t | t
localhost | 57637 | 109094 | t | t localhost | 57637 | 109094 | t | t
localhost | 57638 | 109094 | t | t localhost | 57638 | 109094 | t | t
(3 rows) (N rows)
-- create another table in the schema, verify select is not granted -- create another table in the schema, verify select is not granted
CREATE TABLE multiuser_schema.another_table(a int, b int); CREATE TABLE multiuser_schema.another_table(a int, b int);
@ -389,7 +389,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109097 | t | f localhost | 57637 | 109097 | t | f
localhost | 57638 | 109096 | t | f localhost | 57638 | 109096 | t | f
localhost | 57638 | 109098 | t | f localhost | 57638 | 109098 | t | f
(4 rows) (N rows)
-- grant select again, verify it is granted -- grant select again, verify it is granted
GRANT SELECT ON ALL TABLES IN SCHEMA multiuser_schema TO read_access; GRANT SELECT ON ALL TABLES IN SCHEMA multiuser_schema TO read_access;
@ -401,7 +401,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109097 | t | t localhost | 57637 | 109097 | t | t
localhost | 57638 | 109096 | t | t localhost | 57638 | 109096 | t | t
localhost | 57638 | 109098 | t | t localhost | 57638 | 109098 | t | t
(4 rows) (N rows)
-- verify isolate tenant carries grants -- verify isolate tenant carries grants
SELECT isolate_tenant_to_new_shard('multiuser_schema.hash_table', 5, shard_transfer_mode => 'block_writes'); SELECT isolate_tenant_to_new_shard('multiuser_schema.hash_table', 5, shard_transfer_mode => 'block_writes');
@ -420,7 +420,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109101 | t | t localhost | 57637 | 109101 | t | t
localhost | 57638 | 109091 | t | t localhost | 57638 | 109091 | t | t
localhost | 57638 | 109093 | t | t localhost | 57638 | 109093 | t | t
(6 rows) (N rows)
-- revoke select -- revoke select
REVOKE SELECT ON ALL TABLES IN SCHEMA multiuser_schema FROM read_access; REVOKE SELECT ON ALL TABLES IN SCHEMA multiuser_schema FROM read_access;
@ -434,7 +434,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109101 | t | f localhost | 57637 | 109101 | t | f
localhost | 57638 | 109091 | t | f localhost | 57638 | 109091 | t | f
localhost | 57638 | 109093 | t | f localhost | 57638 | 109093 | t | f
(6 rows) (N rows)
-- test multi-schema grants -- test multi-schema grants
CREATE SCHEMA multiuser_second_schema; CREATE SCHEMA multiuser_second_schema;
@ -456,7 +456,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109101 | t | t localhost | 57637 | 109101 | t | t
localhost | 57638 | 109091 | t | t localhost | 57638 | 109091 | t | t
localhost | 57638 | 109093 | t | t localhost | 57638 | 109093 | t | t
(6 rows) (N rows)
SELECT * FROM run_command_on_placements('multiuser_second_schema.hash_table', $$ select has_table_privilege('read_access', '%s', 'select') $$) SELECT * FROM run_command_on_placements('multiuser_second_schema.hash_table', $$ select has_table_privilege('read_access', '%s', 'select') $$)
ORDER BY nodename, nodeport, shardid; ORDER BY nodename, nodeport, shardid;
@ -468,7 +468,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109106 | t | t localhost | 57637 | 109106 | t | t
localhost | 57638 | 109105 | t | t localhost | 57638 | 109105 | t | t
localhost | 57638 | 109107 | t | t localhost | 57638 | 109107 | t | t
(6 rows) (N rows)
-- revoke from multiple schemas, verify result -- revoke from multiple schemas, verify result
REVOKE SELECT ON ALL TABLES IN SCHEMA multiuser_schema, multiuser_second_schema FROM read_access; REVOKE SELECT ON ALL TABLES IN SCHEMA multiuser_schema, multiuser_second_schema FROM read_access;
@ -482,7 +482,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109101 | t | f localhost | 57637 | 109101 | t | f
localhost | 57638 | 109091 | t | f localhost | 57638 | 109091 | t | f
localhost | 57638 | 109093 | t | f localhost | 57638 | 109093 | t | f
(6 rows) (N rows)
SELECT * FROM run_command_on_placements('multiuser_second_schema.hash_table', $$ select has_table_privilege('read_access', '%s', 'select') $$) SELECT * FROM run_command_on_placements('multiuser_second_schema.hash_table', $$ select has_table_privilege('read_access', '%s', 'select') $$)
ORDER BY nodename, nodeport, shardid; ORDER BY nodename, nodeport, shardid;
@ -494,7 +494,7 @@ ORDER BY nodename, nodeport, shardid;
localhost | 57637 | 109106 | t | f localhost | 57637 | 109106 | t | f
localhost | 57638 | 109105 | t | f localhost | 57638 | 109105 | t | f
localhost | 57638 | 109107 | t | f localhost | 57638 | 109107 | t | f
(6 rows) (N rows)
DROP SCHEMA multiuser_schema CASCADE; DROP SCHEMA multiuser_schema CASCADE;
NOTICE: drop cascades to 4 other objects NOTICE: drop cascades to 4 other objects

View File

@ -100,7 +100,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
-- Checks to see if metadata and data are isolated properly. If there are problems in -- Checks to see if metadata and data are isolated properly. If there are problems in
-- metadata and/or data on workers, these queries should return different results below -- metadata and/or data on workers, these queries should return different results below
@ -174,7 +174,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230002 | t | -2147483648 | -1 orders_streaming | 1230002 | t | -2147483648 | -1
lineitem_streaming | 1230001 | t | 0 | 2147483647 lineitem_streaming | 1230001 | t | 0 | 2147483647
orders_streaming | 1230003 | t | 0 | 2147483647 orders_streaming | 1230003 | t | 0 | 2147483647
(4 rows) (N rows)
-- check without cascade option -- check without cascade option
SELECT isolate_tenant_to_new_shard('lineitem_streaming', 100, shard_transfer_mode => 'block_writes'); SELECT isolate_tenant_to_new_shard('lineitem_streaming', 100, shard_transfer_mode => 'block_writes');
@ -207,7 +207,7 @@ EXPLAIN (COSTS false) SELECT count(*) FROM lineitem_streaming WHERE l_orderkey =
-> Aggregate -> Aggregate
-> Seq Scan on lineitem_streaming_1230011 lineitem_streaming -> Seq Scan on lineitem_streaming_1230011 lineitem_streaming
Filter: (l_orderkey = 101) Filter: (l_orderkey = 101)
(8 rows) (N rows)
-- create an MX node -- create an MX node
\c - postgres - :master_port \c - postgres - :master_port
@ -322,7 +322,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99; SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99;
count count
@ -413,7 +413,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230046 | t | 412880113 | 2147483646 orders_streaming | 1230046 | t | 412880113 | 2147483646
lineitem_streaming | 1230045 | t | 2147483647 | 2147483647 lineitem_streaming | 1230045 | t | 2147483647 | 2147483647
orders_streaming | 1230047 | t | 2147483647 | 2147483647 orders_streaming | 1230047 | t | 2147483647 | 2147483647
(24 rows) (N rows)
SELECT * FROM pg_dist_shard_placement WHERE shardid BETWEEN 1230000 AND 1399999 ORDER BY nodeport, shardid; SELECT * FROM pg_dist_shard_placement WHERE shardid BETWEEN 1230000 AND 1399999 ORDER BY nodeport, shardid;
shardid | shardstate | shardlength | nodename | nodeport | placementid shardid | shardstate | shardlength | nodename | nodeport | placementid
@ -442,7 +442,7 @@ SELECT * FROM pg_dist_shard_placement WHERE shardid BETWEEN 1230000 AND 1399999
1230045 | 1 | 0 | localhost | 57638 | 100045 1230045 | 1 | 0 | localhost | 57638 | 100045
1230046 | 1 | 0 | localhost | 57638 | 100046 1230046 | 1 | 0 | localhost | 57638 | 100046
1230047 | 1 | 0 | localhost | 57638 | 100047 1230047 | 1 | 0 | localhost | 57638 | 100047
(24 rows) (N rows)
-- test failing foreign constraints after multiple tenant isolation -- test failing foreign constraints after multiple tenant isolation
\COPY lineitem_streaming FROM STDIN WITH DELIMITER '|' \COPY lineitem_streaming FROM STDIN WITH DELIMITER '|'
@ -495,7 +495,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
-- check shards -- check shards
SET citus.override_table_visibility TO false; SET citus.override_table_visibility TO false;
@ -517,7 +517,7 @@ SET citus.override_table_visibility TO false;
Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent
(14 rows) (N rows)
\c - postgres - :worker_1_port \c - postgres - :worker_1_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";
@ -533,7 +533,7 @@ SELECT "Column", "Type", "Modifiers" FROM public.table_desc WHERE relid='orders_
o_clerk | character(15) | not null o_clerk | character(15) | not null
o_shippriority | integer | not null o_shippriority | integer | not null
o_comment | character varying(79) | not null o_comment | character varying(79) | not null
(9 rows) (N rows)
\c - mx_isolation_role_ent - :worker_1_port \c - mx_isolation_role_ent - :worker_1_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";
@ -567,7 +567,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230046 | t | 412880113 | 2147483646 orders_streaming | 1230046 | t | 412880113 | 2147483646
lineitem_streaming | 1230045 | t | 2147483647 | 2147483647 lineitem_streaming | 1230045 | t | 2147483647 | 2147483647
orders_streaming | 1230047 | t | 2147483647 | 2147483647 orders_streaming | 1230047 | t | 2147483647 | 2147483647
(24 rows) (N rows)
-- return to master node -- return to master node
\c - mx_isolation_role_ent - :master_port \c - mx_isolation_role_ent - :master_port
@ -710,7 +710,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230046 | t | 412880113 | 2147483646 orders_streaming | 1230046 | t | 412880113 | 2147483646
lineitem_streaming | 1230045 | t | 2147483647 | 2147483647 lineitem_streaming | 1230045 | t | 2147483647 | 2147483647
orders_streaming | 1230047 | t | 2147483647 | 2147483647 orders_streaming | 1230047 | t | 2147483647 | 2147483647
(24 rows) (N rows)
\c - postgres - :master_port \c - postgres - :master_port
SELECT public.wait_for_resource_cleanup(); SELECT public.wait_for_resource_cleanup();
@ -753,7 +753,7 @@ SET citus.override_table_visibility TO false;
Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent
(14 rows) (N rows)
\c - mx_isolation_role_ent - :master_port \c - mx_isolation_role_ent - :master_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";
@ -782,7 +782,7 @@ SET citus.override_table_visibility TO false;
Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent
(14 rows) (N rows)
DROP EVENT TRIGGER abort_ddl; DROP EVENT TRIGGER abort_ddl;
-- create a trigger for drops -- create a trigger for drops
@ -839,7 +839,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99; SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99;
count count
@ -1079,7 +1079,7 @@ ORDER BY 1, 2;
test_colocated_table_3_1230093 | test_colocated_table_3_id_fkey1_1230093 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_2_1230090(id) test_colocated_table_3_1230093 | test_colocated_table_3_id_fkey1_1230093 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_2_1230090(id)
test_colocated_table_3_1230093 | test_colocated_table_3_id_fkey_1230093 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_1_1230087(id) test_colocated_table_3_1230093 | test_colocated_table_3_id_fkey_1230093 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_1_1230087(id)
test_colocated_table_3_1230093 | test_colocated_table_3_value_1_fkey_1230093 | FOREIGN KEY (value_1) REFERENCES "Tenant Isolation".test_reference_table_fkey_1230060(id) test_colocated_table_3_1230093 | test_colocated_table_3_value_1_fkey_1230093 | FOREIGN KEY (value_1) REFERENCES "Tenant Isolation".test_reference_table_fkey_1230060(id)
(42 rows) (N rows)
\c - mx_isolation_role_ent - :master_port \c - mx_isolation_role_ent - :master_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";

View File

@ -100,7 +100,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
-- Checks to see if metadata and data are isolated properly. If there are problems in -- Checks to see if metadata and data are isolated properly. If there are problems in
-- metadata and/or data on workers, these queries should return different results below -- metadata and/or data on workers, these queries should return different results below
@ -174,7 +174,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230002 | t | -2147483648 | -1 orders_streaming | 1230002 | t | -2147483648 | -1
lineitem_streaming | 1230001 | t | 0 | 2147483647 lineitem_streaming | 1230001 | t | 0 | 2147483647
orders_streaming | 1230003 | t | 0 | 2147483647 orders_streaming | 1230003 | t | 0 | 2147483647
(4 rows) (N rows)
-- check without cascade option -- check without cascade option
SELECT isolate_tenant_to_new_shard('lineitem_streaming', 100, shard_transfer_mode => 'force_logical'); SELECT isolate_tenant_to_new_shard('lineitem_streaming', 100, shard_transfer_mode => 'force_logical');
@ -207,7 +207,7 @@ EXPLAIN (COSTS false) SELECT count(*) FROM lineitem_streaming WHERE l_orderkey =
-> Aggregate -> Aggregate
-> Seq Scan on lineitem_streaming_1230011 lineitem_streaming -> Seq Scan on lineitem_streaming_1230011 lineitem_streaming
Filter: (l_orderkey = 101) Filter: (l_orderkey = 101)
(8 rows) (N rows)
-- create an MX node -- create an MX node
\c - postgres - :master_port \c - postgres - :master_port
@ -334,7 +334,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99; SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99;
count count
@ -425,7 +425,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230046 | t | 412880113 | 2147483646 orders_streaming | 1230046 | t | 412880113 | 2147483646
lineitem_streaming | 1230045 | t | 2147483647 | 2147483647 lineitem_streaming | 1230045 | t | 2147483647 | 2147483647
orders_streaming | 1230047 | t | 2147483647 | 2147483647 orders_streaming | 1230047 | t | 2147483647 | 2147483647
(24 rows) (N rows)
SELECT * FROM pg_dist_shard_placement WHERE shardid BETWEEN 1230000 AND 1399999 ORDER BY nodeport, shardid; SELECT * FROM pg_dist_shard_placement WHERE shardid BETWEEN 1230000 AND 1399999 ORDER BY nodeport, shardid;
shardid | shardstate | shardlength | nodename | nodeport | placementid shardid | shardstate | shardlength | nodename | nodeport | placementid
@ -454,7 +454,7 @@ SELECT * FROM pg_dist_shard_placement WHERE shardid BETWEEN 1230000 AND 1399999
1230045 | 1 | 0 | localhost | 57638 | 100045 1230045 | 1 | 0 | localhost | 57638 | 100045
1230046 | 1 | 0 | localhost | 57638 | 100046 1230046 | 1 | 0 | localhost | 57638 | 100046
1230047 | 1 | 0 | localhost | 57638 | 100047 1230047 | 1 | 0 | localhost | 57638 | 100047
(24 rows) (N rows)
-- test failing foreign constraints after multiple tenant isolation -- test failing foreign constraints after multiple tenant isolation
\COPY lineitem_streaming FROM STDIN WITH DELIMITER '|' \COPY lineitem_streaming FROM STDIN WITH DELIMITER '|'
@ -507,7 +507,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
-- check shards -- check shards
SET citus.override_table_visibility TO false; SET citus.override_table_visibility TO false;
@ -529,7 +529,7 @@ SET citus.override_table_visibility TO false;
Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230039 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230042 | table | mx_isolation_role_ent
Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent Tenant Isolation | orders_streaming_1230043 | table | mx_isolation_role_ent
(14 rows) (N rows)
\c - postgres - :worker_1_port \c - postgres - :worker_1_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";
@ -545,7 +545,7 @@ SELECT "Column", "Type", "Modifiers" FROM public.table_desc WHERE relid='orders_
o_clerk | character(15) | not null o_clerk | character(15) | not null
o_shippriority | integer | not null o_shippriority | integer | not null
o_comment | character varying(79) | not null o_comment | character varying(79) | not null
(9 rows) (N rows)
\c - mx_isolation_role_ent - :worker_1_port \c - mx_isolation_role_ent - :worker_1_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";
@ -579,7 +579,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230046 | t | 412880113 | 2147483646 orders_streaming | 1230046 | t | 412880113 | 2147483646
lineitem_streaming | 1230045 | t | 2147483647 | 2147483647 lineitem_streaming | 1230045 | t | 2147483647 | 2147483647
orders_streaming | 1230047 | t | 2147483647 | 2147483647 orders_streaming | 1230047 | t | 2147483647 | 2147483647
(24 rows) (N rows)
-- return to master node -- return to master node
\c - mx_isolation_role_ent - :master_port \c - mx_isolation_role_ent - :master_port
@ -754,7 +754,7 @@ SELECT * FROM pg_dist_shard
orders_streaming | 1230046 | t | 412880113 | 2147483646 orders_streaming | 1230046 | t | 412880113 | 2147483646
lineitem_streaming | 1230045 | t | 2147483647 | 2147483647 lineitem_streaming | 1230045 | t | 2147483647 | 2147483647
orders_streaming | 1230047 | t | 2147483647 | 2147483647 orders_streaming | 1230047 | t | 2147483647 | 2147483647
(24 rows) (N rows)
\c - postgres - :master_port \c - postgres - :master_port
SELECT public.wait_for_resource_cleanup(); SELECT public.wait_for_resource_cleanup();
@ -801,7 +801,7 @@ SET citus.override_table_visibility TO false;
Tenant Isolation | text_column_1230052 | table | mx_isolation_role_ent Tenant Isolation | text_column_1230052 | table | mx_isolation_role_ent
Tenant Isolation | text_column_1230053 | table | mx_isolation_role_ent Tenant Isolation | text_column_1230053 | table | mx_isolation_role_ent
Tenant Isolation | text_column_1230054 | table | mx_isolation_role_ent Tenant Isolation | text_column_1230054 | table | mx_isolation_role_ent
(18 rows) (N rows)
\c - mx_isolation_role_ent - :master_port \c - mx_isolation_role_ent - :master_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";
@ -834,7 +834,7 @@ SET citus.override_table_visibility TO false;
Tenant Isolation | text_column_1230052 | table | mx_isolation_role_ent Tenant Isolation | text_column_1230052 | table | mx_isolation_role_ent
Tenant Isolation | text_column_1230053 | table | mx_isolation_role_ent Tenant Isolation | text_column_1230053 | table | mx_isolation_role_ent
Tenant Isolation | text_column_1230054 | table | mx_isolation_role_ent Tenant Isolation | text_column_1230054 | table | mx_isolation_role_ent
(18 rows) (N rows)
DROP EVENT TRIGGER abort_ddl; DROP EVENT TRIGGER abort_ddl;
\c - mx_isolation_role_ent - :master_port \c - mx_isolation_role_ent - :master_port
@ -876,7 +876,7 @@ ORDER BY
99 | 109604.3256 | 03-13-1994 99 | 109604.3256 | 03-13-1994
-1995148554 | 16890.6816 | 05-08-1995 -1995148554 | 16890.6816 | 05-08-1995
-1686493264 | 1988.7134 | 09-05-1997 -1686493264 | 1988.7134 | 09-05-1997
(7 rows) (N rows)
SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99; SELECT count(*) FROM lineitem_streaming WHERE l_orderkey = 99;
count count
@ -1126,7 +1126,7 @@ ORDER BY 1, 2;
test_colocated_table_3_1230106 | test_colocated_table_3_id_fkey1_1230106 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_2_1230103(id) test_colocated_table_3_1230106 | test_colocated_table_3_id_fkey1_1230106 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_2_1230103(id)
test_colocated_table_3_1230106 | test_colocated_table_3_id_fkey_1230106 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_1_1230100(id) test_colocated_table_3_1230106 | test_colocated_table_3_id_fkey_1230106 | FOREIGN KEY (id) REFERENCES "Tenant Isolation".test_colocated_table_1_1230100(id)
test_colocated_table_3_1230106 | test_colocated_table_3_value_1_fkey_1230106 | FOREIGN KEY (value_1) REFERENCES "Tenant Isolation".test_reference_table_fkey_1230065(id) test_colocated_table_3_1230106 | test_colocated_table_3_value_1_fkey_1230106 | FOREIGN KEY (value_1) REFERENCES "Tenant Isolation".test_reference_table_fkey_1230065(id)
(42 rows) (N rows)
\c - mx_isolation_role_ent - :master_port \c - mx_isolation_role_ent - :master_port
SET search_path to "Tenant Isolation"; SET search_path to "Tenant Isolation";

View File

@ -70,7 +70,7 @@ SELECT DISTINCT c FROM (
SELECT worker_create_or_replace_object('CREATE PUBLICATION "pub-all-insertupdateonly" FOR ALL TABLES WITH (publish_via_partition_root = ''false'', publish = ''insert, update'')'); SELECT worker_create_or_replace_object('CREATE PUBLICATION "pub-all-insertupdateonly" FOR ALL TABLES WITH (publish_via_partition_root = ''false'', publish = ''insert, update'')');
SELECT worker_create_or_replace_object('CREATE PUBLICATION pubempty WITH (publish_via_partition_root = ''false'', publish = ''insert, update, delete, truncate'')'); SELECT worker_create_or_replace_object('CREATE PUBLICATION pubempty WITH (publish_via_partition_root = ''false'', publish = ''insert, update, delete, truncate'')');
SELECT worker_create_or_replace_object('CREATE PUBLICATION pubinsertonly WITH (publish_via_partition_root = ''false'', publish = ''insert'')'); SELECT worker_create_or_replace_object('CREATE PUBLICATION pubinsertonly WITH (publish_via_partition_root = ''false'', publish = ''insert'')');
(4 rows) (N rows)
CREATE TABLE test (x int primary key, y int, "column-1" int, doc xml); CREATE TABLE test (x int primary key, y int, "column-1" int, doc xml);
CREATE TABLE "test-pubs" (x int primary key, y int, "column-1" int); CREATE TABLE "test-pubs" (x int primary key, y int, "column-1" int);

View File

@ -70,7 +70,7 @@ SELECT DISTINCT c FROM (
SELECT worker_create_or_replace_object('CREATE PUBLICATION "pub-all-insertupdateonly" FOR ALL TABLES WITH (publish_via_partition_root = ''false'', publish = ''insert, update'')'); SELECT worker_create_or_replace_object('CREATE PUBLICATION "pub-all-insertupdateonly" FOR ALL TABLES WITH (publish_via_partition_root = ''false'', publish = ''insert, update'')');
SELECT worker_create_or_replace_object('CREATE PUBLICATION pubempty WITH (publish_via_partition_root = ''false'', publish = ''insert, update, delete, truncate'')'); SELECT worker_create_or_replace_object('CREATE PUBLICATION pubempty WITH (publish_via_partition_root = ''false'', publish = ''insert, update, delete, truncate'')');
SELECT worker_create_or_replace_object('CREATE PUBLICATION pubinsertonly WITH (publish_via_partition_root = ''false'', publish = ''insert'')'); SELECT worker_create_or_replace_object('CREATE PUBLICATION pubinsertonly WITH (publish_via_partition_root = ''false'', publish = ''insert'')');
(4 rows) (N rows)
CREATE TABLE test (x int primary key, y int, "column-1" int, doc xml); CREATE TABLE test (x int primary key, y int, "column-1" int, doc xml);
CREATE TABLE "test-pubs" (x int primary key, y int, "column-1" int); CREATE TABLE "test-pubs" (x int primary key, y int, "column-1" int);

View File

@ -143,7 +143,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_8970000'
fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid) fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid)
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(4 rows) (N rows)
SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2; SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2;
Constraint | Definition Constraint | Definition
@ -155,7 +155,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_
fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid) fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid)
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(7 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -164,7 +164,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' OR
sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text)) sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text))
sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data) sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data)
(4 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -174,7 +174,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text)) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text))
sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data) sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data)
(5 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -203,7 +203,7 @@ ORDER BY stxname ASC;
s2 s2
s2_8970008 s2_8970008
s2_8970010 s2_8970010
(6 rows) (N rows)
SELECT count(*) FROM pg_index SELECT count(*) FROM pg_index
WHERE indisclustered WHERE indisclustered
@ -238,7 +238,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_8970000'
fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid) fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid)
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(4 rows) (N rows)
SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2; SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2;
Constraint | Definition Constraint | Definition
@ -250,7 +250,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_
fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid) fkey_from_parent_to_dist_8970000 | FOREIGN KEY (measureid) REFERENCES colocated_dist_table_8970016(measureid)
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(7 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -259,7 +259,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' OR
sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text)) sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text))
sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data) sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data)
(4 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -269,7 +269,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text)) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text))
sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data) sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data)
(5 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -300,7 +300,7 @@ ORDER BY stxname ASC;
s2_8970008 s2_8970008
s2_8970009 s2_8970009
s2_8970011 s2_8970011
(8 rows) (N rows)
SELECT count(*) FROM pg_index SELECT count(*) FROM pg_index
WHERE indisclustered WHERE indisclustered

View File

@ -140,7 +140,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_8970000'
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid) fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid)
sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(5 rows) (N rows)
SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2; SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2;
Constraint | Definition Constraint | Definition
@ -154,7 +154,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid) fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid)
sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(9 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -163,7 +163,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' OR
sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text)) sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text))
sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data) sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data)
(4 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -173,7 +173,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text)) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text))
sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data) sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data)
(5 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -202,7 +202,7 @@ ORDER BY stxname ASC;
s2 s2
s2_8970008 s2_8970008
s2_8970010 s2_8970010
(6 rows) (N rows)
SELECT count(*) FROM pg_index SELECT count(*) FROM pg_index
WHERE indisclustered WHERE indisclustered
@ -238,7 +238,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_8970000'
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid) fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid)
sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_8970000_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(5 rows) (N rows)
SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2; SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_01_8970008'::regclass ORDER BY 1,2;
Constraint | Definition Constraint | Definition
@ -252,7 +252,7 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='sensors_2020_01_
fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid) fkey_from_parent_to_parent_8970000 | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_8970020(eventdatetime, measureid)
fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid) fkey_from_parent_to_ref_8970000 | FOREIGN KEY (measureid) REFERENCES reference_table_8970028(measureid)
sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid) sensors_2020_01_01_8970008_measureid_eventdatetime_fkey | FOREIGN KEY (eventdatetime, measureid) REFERENCES colocated_partitioned_table_2020_01_01_8970024(eventdatetime, measureid)
(9 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -261,7 +261,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_8970000' OR
sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text)) sensors_8970000 | CREATE INDEX index_on_parent_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (lower((measureid)::text))
sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_8970000 | CREATE INDEX index_with_include_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data) sensors_8970000 | CREATE UNIQUE INDEX sensors_pkey_8970000 ON ONLY "blocking shard Move Fkeys Indexes".sensors_8970000 USING btree (measureid, eventdatetime, measure_data)
(4 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_8970008' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -271,7 +271,7 @@ SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='sensors_2020_01_01_
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_expr_measure_data_eventdatetime_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (((measure_data -> 'IsFailed'::text))) INCLUDE (measure_data, eventdatetime)
sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text)) sensors_2020_01_01_8970008 | CREATE INDEX sensors_2020_01_01_lower_idx_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (lower((measureid)::text))
sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data) sensors_2020_01_01_8970008 | CREATE UNIQUE INDEX sensors_2020_01_01_pkey_8970008 ON "blocking shard Move Fkeys Indexes".sensors_2020_01_01_8970008 USING btree (measureid, eventdatetime, measure_data)
(5 rows) (N rows)
SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2; SELECT tablename, indexdef FROM pg_indexes WHERE tablename ='index_backed_rep_identity_8970029' ORDER BY 1,2;
tablename | indexdef tablename | indexdef
@ -302,7 +302,7 @@ ORDER BY stxname ASC;
s2_8970008 s2_8970008
s2_8970009 s2_8970009
s2_8970011 s2_8970011
(8 rows) (N rows)
SELECT count(*) FROM pg_index SELECT count(*) FROM pg_index
WHERE indisclustered WHERE indisclustered

View File

@ -23,7 +23,7 @@ NOTICE: extension "pg_stat_statements" does not exist, skipping
SELECT extname FROM pg_extension WHERE extname = 'pg_stat_statements'; SELECT extname FROM pg_extension WHERE extname = 'pg_stat_statements';
extname extname
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
-- this should error out since extension is not created yet -- this should error out since extension is not created yet
SELECT * FROM citus_stat_statements; SELECT * FROM citus_stat_statements;
@ -90,7 +90,7 @@ SELECT citus_stat_statements_reset();
SELECT normalize_query_string(query) FROM citus_stat_statements; SELECT normalize_query_string(query) FROM citus_stat_statements;
normalize_query_string normalize_query_string
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
-- run some queries -- run some queries
SELECT count(*) FROM lineitem_hash_part; SELECT count(*) FROM lineitem_hash_part;
@ -108,12 +108,12 @@ SELECT count(*) FROM lineitem_hash_part;
SELECT l_orderkey FROM lineitem_hash_part; SELECT l_orderkey FROM lineitem_hash_part;
l_orderkey l_orderkey
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > 100; SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > 100;
l_orderkey l_orderkey
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = 4; SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = 4;
count count
@ -150,7 +150,7 @@ ORDER BY 1, 2, 3, 4;
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 2 SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 2
SELECT l_orderkey FROM lineitem_hash_part | adaptive | | 1 SELECT l_orderkey FROM lineitem_hash_part | adaptive | | 1
SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > ? | adaptive | | 1 SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > ? | adaptive | | 1
(6 rows) (N rows)
-- test GUC citus.stat_statements_track -- test GUC citus.stat_statements_track
SET citus.stat_statements_track TO 'none'; SET citus.stat_statements_track TO 'none';
@ -173,7 +173,7 @@ ORDER BY 1, 2, 3, 4;
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 2 SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 2
SELECT l_orderkey FROM lineitem_hash_part | adaptive | | 1 SELECT l_orderkey FROM lineitem_hash_part | adaptive | | 1
SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > ? | adaptive | | 1 SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > ? | adaptive | | 1
(6 rows) (N rows)
-- reset the GUC to track stats -- reset the GUC to track stats
SET citus.stat_statements_track TO 'all'; SET citus.stat_statements_track TO 'all';
@ -188,7 +188,7 @@ SELECT pg_stat_statements_reset() IS NOT NULL AS t;
SELECT * FROM citus_stat_statements; SELECT * FROM citus_stat_statements;
queryid | userid | dbid | query | executor | partition_key | calls queryid | userid | dbid | query | executor | partition_key | calls
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
-- run some queries -- run some queries
SELECT count(*) FROM lineitem_hash_part; SELECT count(*) FROM lineitem_hash_part;
@ -206,12 +206,12 @@ SELECT count(*) FROM lineitem_hash_part;
SELECT l_orderkey FROM lineitem_hash_part; SELECT l_orderkey FROM lineitem_hash_part;
l_orderkey l_orderkey
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > 100; SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > 100;
l_orderkey l_orderkey
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = 4; SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = 4;
count count
@ -249,7 +249,7 @@ ORDER BY 1, 2, 3, 4;
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 2 SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 2
SELECT l_orderkey FROM lineitem_hash_part | adaptive | | 1 SELECT l_orderkey FROM lineitem_hash_part | adaptive | | 1
SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > ? | adaptive | | 1 SELECT l_orderkey FROM lineitem_hash_part WHERE l_orderkey > ? | adaptive | | 1
(6 rows) (N rows)
SELECT pg_stat_statements_reset() IS NOT NULL AS t; SELECT pg_stat_statements_reset() IS NOT NULL AS t;
t t
@ -281,7 +281,7 @@ ORDER BY 1, 2, 3, 4;
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 1 | 1 SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 1 | 1
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 1200 | 1 SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 1200 | 1
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 3 SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 3
(4 rows) (N rows)
-- citus_stat_statements_reset() must be called to reset call counts -- citus_stat_statements_reset() must be called to reset call counts
SELECT citus_stat_statements_reset(); SELECT citus_stat_statements_reset();
@ -310,7 +310,7 @@ ORDER BY 1, 2, 3, 4;
--------------------------------------------------------------------- ---------------------------------------------------------------------
SELECT count(*) FROM lineitem_hash_part | adaptive | | 1 SELECT count(*) FROM lineitem_hash_part | adaptive | | 1
SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 1 SELECT count(*) FROM lineitem_hash_part WHERE l_orderkey = ? | adaptive | 4 | 1
(2 rows) (N rows)
-- create test tables to run update/delete scenarios -- create test tables to run update/delete scenarios
CREATE TABLE stat_test_text(user_id text, value int); CREATE TABLE stat_test_text(user_id text, value int);
@ -325,19 +325,19 @@ SELECT citus_stat_statements_reset();
SELECT * FROM stat_test_text; SELECT * FROM stat_test_text;
user_id | value user_id | value
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT * FROM stat_test_bigint WHERE user_id = 1::bigint; SELECT * FROM stat_test_bigint WHERE user_id = 1::bigint;
user_id | value user_id | value
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT normalize_query_string(query), executor, partition_key, calls SELECT normalize_query_string(query), executor, partition_key, calls
FROM citus_stat_statements FROM citus_stat_statements
ORDER BY 1, 2, 3, 4; ORDER BY 1, 2, 3, 4;
normalize_query_string | executor | partition_key | calls normalize_query_string | executor | partition_key | calls
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT create_distributed_table('stat_test_text', 'user_id'); SELECT create_distributed_table('stat_test_text', 'user_id');
create_distributed_table create_distributed_table
@ -356,27 +356,27 @@ FROM citus_stat_statements
ORDER BY 1, 2, 3, 4; ORDER BY 1, 2, 3, 4;
normalize_query_string | executor | partition_key | calls normalize_query_string | executor | partition_key | calls
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT * FROM stat_test_text; SELECT * FROM stat_test_text;
user_id | value user_id | value
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT * FROM stat_test_text WHERE user_id = 'me'; SELECT * FROM stat_test_text WHERE user_id = 'me';
user_id | value user_id | value
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT * FROM stat_test_bigint; SELECT * FROM stat_test_bigint;
user_id | value user_id | value
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT * FROM stat_test_bigint WHERE user_id = 2::bigint; SELECT * FROM stat_test_bigint WHERE user_id = 2::bigint;
user_id | value user_id | value
--------------------------------------------------------------------- ---------------------------------------------------------------------
(0 rows) (N rows)
SELECT normalize_query_string(query), executor, partition_key, calls SELECT normalize_query_string(query), executor, partition_key, calls
FROM citus_stat_statements FROM citus_stat_statements
@ -387,7 +387,7 @@ ORDER BY 1, 2, 3, 4;
SELECT * FROM stat_test_bigint WHERE user_id = ?::bigint | adaptive | 2 | 1 SELECT * FROM stat_test_bigint WHERE user_id = ?::bigint | adaptive | 2 | 1
SELECT * FROM stat_test_text | adaptive | | 1 SELECT * FROM stat_test_text | adaptive | | 1
SELECT * FROM stat_test_text WHERE user_id = ? | adaptive | me | 1 SELECT * FROM stat_test_text WHERE user_id = ? | adaptive | me | 1
(4 rows) (N rows)
-- insert some rows and check stats -- insert some rows and check stats
INSERT INTO stat_test_bigint VALUES (1, 1); INSERT INTO stat_test_bigint VALUES (1, 1);
@ -407,7 +407,7 @@ ORDER BY 1, 2, 3, 4;
SELECT * FROM stat_test_bigint WHERE user_id = ?::bigint | adaptive | 2 | 1 SELECT * FROM stat_test_bigint WHERE user_id = ?::bigint | adaptive | 2 | 1
SELECT * FROM stat_test_text | adaptive | | 1 SELECT * FROM stat_test_text | adaptive | | 1
SELECT * FROM stat_test_text WHERE user_id = ? | adaptive | me | 1 SELECT * FROM stat_test_text WHERE user_id = ? | adaptive | me | 1
(8 rows) (N rows)
-- delete some rows and check stats -- delete some rows and check stats
SELECT citus_stat_statements_reset(); SELECT citus_stat_statements_reset();
@ -429,7 +429,7 @@ ORDER BY 1, 2, 3, 4;
DELETE FROM stat_test_bigint WHERE user_id = ? | adaptive | 1000 | 2 DELETE FROM stat_test_bigint WHERE user_id = ? | adaptive | 1000 | 2
DELETE FROM stat_test_bigint WHERE user_id > ? | adaptive | | 1 DELETE FROM stat_test_bigint WHERE user_id > ? | adaptive | | 1
DELETE FROM stat_test_bigint WHERE value > ? | adaptive | | 2 DELETE FROM stat_test_bigint WHERE value > ? | adaptive | | 2
(3 rows) (N rows)
-- update some rows and check stats -- update some rows and check stats
SELECT citus_stat_statements_reset(); SELECT citus_stat_statements_reset();
@ -451,7 +451,7 @@ ORDER BY 1, 2, 3, 4;
UPDATE stat_test_bigint SET value = ? WHERE user_id = ? | adaptive | 3 | 2 UPDATE stat_test_bigint SET value = ? WHERE user_id = ? | adaptive | 3 | 2
UPDATE stat_test_bigint SET value = ? WHERE user_id > ? | adaptive | | 1 UPDATE stat_test_bigint SET value = ? WHERE user_id > ? | adaptive | | 1
UPDATE stat_test_bigint SET value = ? WHERE value = ? | adaptive | | 2 UPDATE stat_test_bigint SET value = ? WHERE value = ? | adaptive | | 2
(3 rows) (N rows)
-- test joins -- test joins
CREATE TABLE stat_test_bigint_other(LIKE stat_test_bigint); CREATE TABLE stat_test_bigint_other(LIKE stat_test_bigint);
@ -514,7 +514,7 @@ ORDER BY 1, 2, 3, 4;
WHERE b.user_id = ? | | | WHERE b.user_id = ? | | |
SELECT count(*) FROM stat_test_bigint b JOIN stat_test_bigint_other o USING (user_id)+| adaptive | 3 | 1 SELECT count(*) FROM stat_test_bigint b JOIN stat_test_bigint_other o USING (user_id)+| adaptive | 3 | 1
WHERE o.user_id = ? | | | WHERE o.user_id = ? | | |
(5 rows) (N rows)
-- test reference table -- test reference table
CREATE TABLE stat_test_reference(LIKE stat_test_bigint); CREATE TABLE stat_test_reference(LIKE stat_test_bigint);
@ -596,7 +596,7 @@ ORDER BY 1, 2, 3, 4;
WHERE r.user_id = ? | | | WHERE r.user_id = ? | | |
SELECT count(*) FROM stat_test_reference | adaptive | | 1 SELECT count(*) FROM stat_test_reference | adaptive | | 1
SELECT count(*) FROM stat_test_reference WHERE user_id = ? | adaptive | | 2 SELECT count(*) FROM stat_test_reference WHERE user_id = ? | adaptive | | 2
(6 rows) (N rows)
-- non-stats role should only see its own entries, even when calling citus_query_stats directly -- non-stats role should only see its own entries, even when calling citus_query_stats directly
CREATE USER nostats; CREATE USER nostats;