mirror of https://github.com/citusdata/citus.git
Enable BUFFERS with EXPLAIN ANALYZE by default
c2a4078ebad71999dd451ae7d4358be3c9290b07m3hm3t/pg18_bugger_shared_hits_lines
parent
74c66167b1
commit
3bcb2cf215
|
|
@ -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 row‐count summaries
|
||||||
|
# turn any “(7 rows)”, “(8 rows)”, etc. into “(N rows)”
|
||||||
|
s/^\([0-9]+ rows\)$/(N rows)/g
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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');
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue