|
|
|
@ -22,14 +22,30 @@ CREATE OR REPLACE FUNCTION relation_ddl_access_mode(relationId Oid)
|
|
|
|
|
RETURNS int
|
|
|
|
|
LANGUAGE C STABLE STRICT
|
|
|
|
|
AS 'citus', $$relation_ddl_access_mode$$;
|
|
|
|
|
CREATE OR REPLACE FUNCTION relation_access_mode_to_text(relationShardAccess int)
|
|
|
|
|
CREATE OR REPLACE FUNCTION distributed_relation(relation_name text)
|
|
|
|
|
RETURNS bool AS
|
|
|
|
|
$$
|
|
|
|
|
DECLARE
|
|
|
|
|
part_method char;
|
|
|
|
|
BEGIN
|
|
|
|
|
select partmethod INTO part_method from pg_dist_partition WHERE logicalrelid = relation_name::regclass;
|
|
|
|
|
IF part_method = 'h' THEN
|
|
|
|
|
RETURN true;
|
|
|
|
|
ELSE
|
|
|
|
|
RETURN false;
|
|
|
|
|
END IF;
|
|
|
|
|
END;
|
|
|
|
|
$$ LANGUAGE 'plpgsql' IMMUTABLE;
|
|
|
|
|
CREATE OR REPLACE FUNCTION relation_access_mode_to_text(relation_name text, relationShardAccess int)
|
|
|
|
|
RETURNS text AS
|
|
|
|
|
$$
|
|
|
|
|
BEGIN
|
|
|
|
|
IF relationShardAccess = 0 THEN
|
|
|
|
|
IF relationShardAccess = 0 and distributed_relation(relation_name) THEN
|
|
|
|
|
RETURN 'not_parallel_accessed';
|
|
|
|
|
ELSIF relationShardAccess = 0 and NOT distributed_relation(relation_name) THEN
|
|
|
|
|
RETURN 'not_accessed';
|
|
|
|
|
ELSIF relationShardAccess = 1 THEN
|
|
|
|
|
RETURN 'sequential_access';
|
|
|
|
|
RETURN 'reference_table_access';
|
|
|
|
|
ELSE
|
|
|
|
|
RETURN 'parallel_access';
|
|
|
|
|
END IF;
|
|
|
|
@ -37,9 +53,9 @@ END;
|
|
|
|
|
$$ LANGUAGE 'plpgsql' IMMUTABLE;
|
|
|
|
|
CREATE VIEW relation_acesses AS
|
|
|
|
|
SELECT table_name,
|
|
|
|
|
relation_access_mode_to_text(relation_select_access_mode(table_name::regclass)) as select_access,
|
|
|
|
|
relation_access_mode_to_text(relation_dml_access_mode(table_name::regclass)) as dml_access,
|
|
|
|
|
relation_access_mode_to_text(relation_ddl_access_mode(table_name::regclass)) as ddl_access
|
|
|
|
|
relation_access_mode_to_text(table_name, relation_select_access_mode(table_name::regclass)) as select_access,
|
|
|
|
|
relation_access_mode_to_text(table_name, relation_dml_access_mode(table_name::regclass)) as dml_access,
|
|
|
|
|
relation_access_mode_to_text(table_name, relation_ddl_access_mode(table_name::regclass)) as ddl_access
|
|
|
|
|
FROM
|
|
|
|
|
((SELECT 'table_' || i as table_name FROM generate_series(1, 7) i) UNION (SELECT 'partitioning_test') UNION (SELECT 'partitioning_test_2009') UNION (SELECT 'partitioning_test_2010')) tables;
|
|
|
|
|
SET citus.shard_replication_factor TO 1;
|
|
|
|
@ -101,9 +117,9 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_7') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-----------------
|
|
|
|
|
table_7 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
table_7 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -115,18 +131,18 @@ SELECT count(*) FROM table_1;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+--------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
-- a very simple test that first checks sequential
|
|
|
|
|
-- and parallel SELECTs,DMLs, and DDLs
|
|
|
|
|
BEGIN;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+--------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM table_1 WHERE key = 1;
|
|
|
|
@ -136,9 +152,9 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+--------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM table_1 WHERE key = 1 OR key = 2;
|
|
|
|
@ -148,31 +164,31 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+--------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
INSERT INTO table_1 VALUES (1,1);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-------------------+--------------
|
|
|
|
|
table_1 | parallel_access | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
INSERT INTO table_1 VALUES (1,1), (2,2);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-------------------+--------------
|
|
|
|
|
table_1 | parallel_access | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ALTER TABLE table_1 ADD COLUMN test_col INT;
|
|
|
|
|
-- now see that the other tables are not accessed at all
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-------------------+-----------------
|
|
|
|
|
table_1 | parallel_access | sequential_access | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | parallel_access
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -186,9 +202,9 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+--------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT count(*) FROM table_1 WHERE key = 2;
|
|
|
|
@ -198,23 +214,23 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+--------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
INSERT INTO table_1 VALUES (1,1);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+-------------------+--------------
|
|
|
|
|
table_1 | sequential_access | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
INSERT INTO table_1 VALUES (2,2);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+-------------------+--------------
|
|
|
|
|
table_1 | sequential_access | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -222,9 +238,9 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
ALTER TABLE table_1 ADD CONSTRAINT table_1_u UNIQUE (key);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-----------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -244,15 +260,15 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name LIKE 'table_%' ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+--------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_3 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_4 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_5 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_6 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_7 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_3 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_4 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_5 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_6 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_7 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(7 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -270,10 +286,10 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+--------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -293,10 +309,10 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+--------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -320,15 +336,15 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name LIKE 'table_%' ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+--------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_3 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_4 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_5 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_6 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_7 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_3 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_4 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_5 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_6 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_7 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(7 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -338,18 +354,18 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
UPDATE table_1 SET value = 15;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name = 'table_1';
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode = 'sequential';
|
|
|
|
|
UPDATE table_2 SET value = 15;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+-------------------+--------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
table_2 | sequential_access | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -359,11 +375,11 @@ BEGIN;
|
|
|
|
|
table_1 SET value = 15
|
|
|
|
|
WHERE key IN (SELECT key FROM table_2 JOIN table_3 USING (key) WHERE table_2.value = 15);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2', 'table_3') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
table_2 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_3 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
table_2 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_3 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -371,10 +387,10 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
INSERT INTO table_2 SELECT * FROM table_1;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | not_accessed | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | parallel_access | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -383,10 +399,10 @@ BEGIN;
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode = 'sequential';
|
|
|
|
|
INSERT INTO table_2 SELECT * FROM table_1;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+-------------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | not_accessed | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -394,10 +410,10 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
INSERT INTO table_2 SELECT * FROM table_1 OFFSET 0;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | not_accessed | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | parallel_access | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -422,10 +438,10 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+--------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -445,11 +461,11 @@ BEGIN;
|
|
|
|
|
OFFSET 0
|
|
|
|
|
) as foo;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2', 'table_3') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_3 | not_accessed | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_3 | not_parallel_accessed | parallel_access | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -471,11 +487,11 @@ BEGIN;
|
|
|
|
|
OFFSET 0
|
|
|
|
|
) as foo;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2', 'table_3') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+-------------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_3 | not_accessed | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_3 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -497,12 +513,12 @@ BEGIN;
|
|
|
|
|
) as foo
|
|
|
|
|
) AND value IN (SELECT key FROM table_4);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2', 'table_3', 'table_4') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_2 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_3 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
table_4 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_3 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
table_4 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(4 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -513,9 +529,9 @@ BEGIN;
|
|
|
|
|
2 2
|
|
|
|
|
3 3
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+--------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -523,9 +539,9 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
COPY table_1 FROM STDIN WITH CSV;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+-----------------+--------------
|
|
|
|
|
table_1 | not_accessed | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | parallel_access | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -533,9 +549,9 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
COPY table_1 FROM STDIN WITH CSV;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+-------------------+--------------
|
|
|
|
|
table_1 | not_accessed | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -548,23 +564,23 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_6');
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+--------------+--------------
|
|
|
|
|
table_6 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+------------------------+--------------+--------------
|
|
|
|
|
table_6 | reference_table_access | not_accessed | not_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
UPDATE table_6 SET value = 15;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_6');
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+-------------------+--------------
|
|
|
|
|
table_6 | sequential_access | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+------------------------+------------------------+--------------
|
|
|
|
|
table_6 | reference_table_access | reference_table_access | not_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ALTER TABLE table_6 ADD COLUMN x INT;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_6');
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+-------------------+-------------------
|
|
|
|
|
table_6 | sequential_access | sequential_access | sequential_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+------------------------+------------------------+------------------------
|
|
|
|
|
table_6 | reference_table_access | reference_table_access | reference_table_access
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -577,10 +593,10 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_6', 'table_1') ORDER BY 1,2;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+--------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_6 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_6 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -588,9 +604,9 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
TRUNCATE table_1;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-----------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -599,9 +615,9 @@ BEGIN;
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode = 'sequential';
|
|
|
|
|
TRUNCATE table_1;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-------------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | sequential_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -609,9 +625,9 @@ ROLLBACK;
|
|
|
|
|
BEGIN;
|
|
|
|
|
TRUNCATE table_6;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_6') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-------------------
|
|
|
|
|
table_6 | not_accessed | not_accessed | sequential_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+------------------------
|
|
|
|
|
table_6 | not_accessed | not_accessed | reference_table_access
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -620,10 +636,10 @@ ALTER TABLE table_1 ADD CONSTRAINT table_1_u UNIQUE (key);
|
|
|
|
|
BEGIN;
|
|
|
|
|
ALTER TABLE table_2 ADD CONSTRAINT table_2_u FOREIGN KEY (key) REFERENCES table_1(key);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-----------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_2 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -633,10 +649,10 @@ BEGIN;
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode = 'sequential';
|
|
|
|
|
ALTER TABLE table_2 ADD CONSTRAINT table_2_u FOREIGN KEY (key) REFERENCES table_1(key);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-------------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | sequential_access
|
|
|
|
|
table_2 | not_accessed | not_accessed | sequential_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -651,10 +667,10 @@ SELECT create_distributed_table('partitioning_test', 'id');
|
|
|
|
|
BEGIN;
|
|
|
|
|
CREATE TABLE partitioning_test_2009 PARTITION OF partitioning_test FOR VALUES FROM ('2009-01-01') TO ('2010-01-01');
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+---------------+--------------+-----------------
|
|
|
|
|
partitioning_test | not_accessed | not_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -663,10 +679,10 @@ CREATE TABLE partitioning_test_2009 AS SELECT * FROM partitioning_test;
|
|
|
|
|
BEGIN;
|
|
|
|
|
ALTER TABLE partitioning_test ATTACH PARTITION partitioning_test_2009 FOR VALUES FROM ('2009-01-01') TO ('2010-01-01');
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+---------------+--------------+-----------------
|
|
|
|
|
partitioning_test | not_accessed | not_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -681,10 +697,10 @@ SELECT create_distributed_table('partitioning_test_2010', 'id');
|
|
|
|
|
BEGIN;
|
|
|
|
|
ALTER TABLE partitioning_test ATTACH PARTITION partitioning_test_2010 FOR VALUES FROM ('2010-01-01') TO ('2011-01-01');
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+---------------+--------------+-----------------
|
|
|
|
|
partitioning_test | not_accessed | not_accessed | parallel_access
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -697,11 +713,11 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------+--------------+--------------
|
|
|
|
|
partitioning_test | parallel_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2010 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -715,11 +731,11 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-------------------+--------------+--------------
|
|
|
|
|
partitioning_test | sequential_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2009 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2010 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -727,11 +743,11 @@ COMMIT;
|
|
|
|
|
BEGIN;
|
|
|
|
|
UPDATE partitioning_test SET time = now();
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------+-----------------+--------------
|
|
|
|
|
partitioning_test | parallel_access | parallel_access | not_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
partitioning_test_2010 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------+-----------------+-----------------------
|
|
|
|
|
partitioning_test | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -740,11 +756,11 @@ BEGIN;
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode TO 'sequential';
|
|
|
|
|
UPDATE partitioning_test SET time = now();
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-------------------+-------------------+--------------
|
|
|
|
|
partitioning_test | sequential_access | sequential_access | not_accessed
|
|
|
|
|
partitioning_test_2009 | sequential_access | sequential_access | not_accessed
|
|
|
|
|
partitioning_test_2010 | sequential_access | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -752,11 +768,11 @@ COMMIT;
|
|
|
|
|
BEGIN;
|
|
|
|
|
ALTER TABLE partitioning_test ADD COLUMN X INT;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+---------------+--------------+-----------------
|
|
|
|
|
partitioning_test | not_accessed | not_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -765,11 +781,11 @@ BEGIN;
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode TO 'sequential';
|
|
|
|
|
ALTER TABLE partitioning_test ADD COLUMN X INT;
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+---------------+--------------+-------------------
|
|
|
|
|
partitioning_test | not_accessed | not_accessed | sequential_access
|
|
|
|
|
partitioning_test_2009 | not_accessed | not_accessed | sequential_access
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | sequential_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -782,11 +798,11 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------+--------------+--------------
|
|
|
|
|
partitioning_test | parallel_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -800,11 +816,11 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-------------------+--------------+--------------
|
|
|
|
|
partitioning_test | sequential_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2009 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -812,11 +828,11 @@ COMMIT;
|
|
|
|
|
BEGIN;
|
|
|
|
|
UPDATE partitioning_test_2009 SET time = now();
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------+-----------------+--------------
|
|
|
|
|
partitioning_test | parallel_access | parallel_access | not_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -825,11 +841,11 @@ BEGIN;
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode TO 'sequential';
|
|
|
|
|
UPDATE partitioning_test_2009 SET time = now();
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-------------------+-------------------+--------------
|
|
|
|
|
partitioning_test | sequential_access | sequential_access | not_accessed
|
|
|
|
|
partitioning_test_2009 | sequential_access | sequential_access | not_accessed
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -837,11 +853,11 @@ COMMIT;
|
|
|
|
|
BEGIN;
|
|
|
|
|
CREATE INDEX i1000000 ON partitioning_test_2009 (id);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+---------------+--------------+-----------------
|
|
|
|
|
partitioning_test | not_accessed | not_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -850,11 +866,11 @@ BEGIN;
|
|
|
|
|
SET LOCAL citus.multi_shard_modify_mode TO 'sequential';
|
|
|
|
|
CREATE INDEX i1000000 ON partitioning_test_2009 (id);
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('partitioning_test', 'partitioning_test_2009', 'partitioning_test_2010') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+---------------+--------------+-------------------
|
|
|
|
|
partitioning_test | not_accessed | not_accessed | sequential_access
|
|
|
|
|
partitioning_test_2009 | not_accessed | not_accessed | sequential_access
|
|
|
|
|
partitioning_test_2010 | not_accessed | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
partitioning_test | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2009 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
partitioning_test_2010 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -864,10 +880,10 @@ BEGIN;
|
|
|
|
|
TRUNCATE table_1 CASCADE;
|
|
|
|
|
NOTICE: truncate cascades to table "table_2"
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1', 'table_2') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+--------------+-----------------
|
|
|
|
|
table_1 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_2 | not_accessed | not_accessed | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
table_2 | not_parallel_accessed | not_parallel_accessed | parallel_access
|
|
|
|
|
(2 rows)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -882,9 +898,9 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+--------------+--------------
|
|
|
|
|
table_1 | parallel_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -899,9 +915,9 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-------------------+--------------+--------------
|
|
|
|
|
table_1 | sequential_access | not_accessed | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
@ -918,9 +934,9 @@ BEGIN;
|
|
|
|
|
(3 rows)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+-------------------+--------------
|
|
|
|
|
table_1 | not_accessed | sequential_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------------+-----------------------
|
|
|
|
|
table_1 | not_parallel_accessed | not_parallel_accessed | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -935,9 +951,9 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -952,9 +968,9 @@ BEGIN;
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_1') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+--------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_accessed
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------+-----------------+-----------------------
|
|
|
|
|
table_1 | parallel_access | parallel_access | not_parallel_accessed
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
ROLLBACK;
|
|
|
|
@ -972,19 +988,20 @@ NOTICE: Copying data from local table...
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
SELECT * FROM relation_acesses WHERE table_name IN ('table_3') ORDER BY 1;
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+---------------+-----------------+-----------------
|
|
|
|
|
table_3 | not_accessed | parallel_access | parallel_access
|
|
|
|
|
table_name | select_access | dml_access | ddl_access
|
|
|
|
|
------------+-----------------------+-----------------+-----------------
|
|
|
|
|
table_3 | not_parallel_accessed | parallel_access | parallel_access
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
COMMIT;
|
|
|
|
|
SET search_path TO 'public';
|
|
|
|
|
DROP SCHEMA access_tracking CASCADE;
|
|
|
|
|
NOTICE: drop cascades to 13 other objects
|
|
|
|
|
NOTICE: drop cascades to 14 other objects
|
|
|
|
|
DETAIL: drop cascades to function access_tracking.relation_select_access_mode(oid)
|
|
|
|
|
drop cascades to function access_tracking.relation_dml_access_mode(oid)
|
|
|
|
|
drop cascades to function access_tracking.relation_ddl_access_mode(oid)
|
|
|
|
|
drop cascades to function access_tracking.relation_access_mode_to_text(integer)
|
|
|
|
|
drop cascades to function access_tracking.distributed_relation(text)
|
|
|
|
|
drop cascades to function access_tracking.relation_access_mode_to_text(text,integer)
|
|
|
|
|
drop cascades to view access_tracking.relation_acesses
|
|
|
|
|
drop cascades to table access_tracking.table_1
|
|
|
|
|
drop cascades to table access_tracking.table_2
|
|
|
|
|