mirror of https://github.com/citusdata/citus.git
61 lines
1.6 KiB
SQL
61 lines
1.6 KiB
SQL
SET citus.next_shard_id TO 1600000;
|
|
|
|
\c "dbname=regression options='-c\ citus.use_secondary_nodes=always'"
|
|
|
|
CREATE TABLE dest_table (a int, b int);
|
|
CREATE TABLE source_table (a int, b int);
|
|
|
|
-- attempts to change metadata should fail while reading from secondaries
|
|
SELECT create_distributed_table('dest_table', 'a');
|
|
|
|
\c "dbname=regression options='-c\ citus.use_secondary_nodes=never'"
|
|
|
|
SELECT create_distributed_table('dest_table', 'a');
|
|
SELECT create_distributed_table('source_table', 'a');
|
|
|
|
INSERT INTO dest_table (a, b) VALUES (1, 1);
|
|
INSERT INTO dest_table (a, b) VALUES (2, 1);
|
|
|
|
INSERT INTO source_table (a, b) VALUES (10, 10);
|
|
|
|
-- simluate actually having secondary nodes
|
|
SELECT * FROM pg_dist_node;
|
|
UPDATE pg_dist_node SET noderole = 'secondary';
|
|
|
|
\c "dbname=regression options='-c\ citus.use_secondary_nodes=always'"
|
|
|
|
-- inserts are disallowed
|
|
INSERT INTO dest_table (a, b) VALUES (1, 2);
|
|
|
|
-- router selects are allowed
|
|
SELECT a FROM dest_table WHERE a = 1;
|
|
|
|
-- real-time selects are also allowed
|
|
SELECT a FROM dest_table;
|
|
|
|
-- subqueries are also allowed
|
|
SET client_min_messages TO DEBUG1;
|
|
SELECT
|
|
foo.a
|
|
FROM
|
|
(
|
|
WITH cte AS (
|
|
SELECT
|
|
DISTINCT dest_table.a
|
|
FROM
|
|
dest_table, source_table
|
|
WHERE
|
|
source_table.a = dest_table.a AND
|
|
dest_table.b IN (1,2,3,4)
|
|
) SELECT * FROM cte ORDER BY 1 DESC LIMIT 5
|
|
) as foo;
|
|
SET client_min_messages TO DEFAULT;
|
|
|
|
-- insert into is definitely not allowed
|
|
INSERT INTO dest_table (a, b)
|
|
SELECT a, b FROM source_table;
|
|
|
|
\c "dbname=regression options='-c\ citus.use_secondary_nodes=never'"
|
|
UPDATE pg_dist_node SET noderole = 'primary';
|
|
DROP TABLE dest_table;
|