mirror of https://github.com/citusdata/citus.git
358 lines
13 KiB
Plaintext
358 lines
13 KiB
Plaintext
CREATE SCHEMA resync_metadata_with_sequences;
|
|
SET search_path TO resync_metadata_with_sequences;
|
|
CREATE TABLE test_serial(a bigserial PRIMARY KEY);
|
|
SELECT create_distributed_table('test_serial', 'a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE SEQUENCE myseq;
|
|
CREATE TABLE test_sequence(a bigint DEFAULT nextval('myseq'));
|
|
SELECT create_distributed_table('test_sequence', 'a');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE SEQUENCE myseq_ref;
|
|
CREATE TABLE test_serial_ref(a bigserial PRIMARY KEY, b bigint DEFAULT nextval('myseq_ref'));
|
|
SELECT create_reference_table('test_serial_ref');
|
|
create_reference_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial_ref VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
1 | 1
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial_ref VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
2 | 2
|
|
(1 row)
|
|
|
|
SET client_min_messages TO ERROR;
|
|
SELECT 1 FROM citus_add_node('localhost', :master_port, groupid:=0);
|
|
?column?
|
|
---------------------------------------------------------------------
|
|
1
|
|
(1 row)
|
|
|
|
CREATE SEQUENCE myseq_locl_to_dist;
|
|
CREATE TABLE test_local_to_dist(a bigserial PRIMARY KEY, b bigint DEFAULT nextval('myseq_locl_to_dist'));
|
|
SELECT citus_add_local_table_to_metadata('test_local_to_dist');
|
|
citus_add_local_table_to_metadata
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
1 | 1
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
2 | 2
|
|
(1 row)
|
|
|
|
SET citus.shard_replication_factor TO 1;
|
|
CREATE SEQUENCE other_id_seq;
|
|
CREATE TABLE sensors(
|
|
measureid bigserial,
|
|
other_id bigint DEFAULT nextval('other_id_seq'),
|
|
eventdatetime date) PARTITION BY RANGE(eventdatetime);
|
|
CREATE TABLE sensors_old PARTITION OF sensors FOR VALUES FROM ('2000-01-01') TO ('2020-01-01');
|
|
CREATE TABLE sensors_2020_01_01 PARTITION OF sensors FOR VALUES FROM ('2020-01-01') TO ('2020-02-01');
|
|
CREATE TABLE sensors_news PARTITION OF sensors FOR VALUES FROM ('2020-05-01') TO ('2025-01-01');
|
|
SELECT create_distributed_table('sensors', 'measureid', colocate_with:='none');
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
\c - - - :worker_1_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
INSERT INTO test_serial VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949185
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949186
|
|
(1 row)
|
|
|
|
INSERT into test_sequence VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949185
|
|
(1 row)
|
|
|
|
INSERT into test_sequence VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949186
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949185 | 3940649673949185
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949186 | 3940649673949186
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial_ref VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949185 | 3940649673949185
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial_ref VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949186 | 3940649673949186
|
|
(1 row)
|
|
|
|
INSERT INTO sensors VALUES (DEFAULT, DEFAULT, '2010-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
3940649673949185 | 3940649673949185 | 01-01-2010
|
|
(1 row)
|
|
|
|
INSERT INTO sensors_news VALUES (DEFAULT, DEFAULT, '2021-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
3940649673949186 | 3940649673949186 | 01-01-2021
|
|
(1 row)
|
|
|
|
\c - - - :master_port
|
|
SET client_min_messages TO ERROR;
|
|
SELECT 1 FROM citus_activate_node('localhost', :worker_1_port);
|
|
?column?
|
|
---------------------------------------------------------------------
|
|
1
|
|
(1 row)
|
|
|
|
\c - - - :worker_1_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
-- can continue inserting with the existing sequence/serial
|
|
INSERT INTO test_serial VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949187
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949188
|
|
(1 row)
|
|
|
|
INSERT into test_sequence VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949187
|
|
(1 row)
|
|
|
|
INSERT into test_sequence VALUES(DEFAULT) RETURNING *;
|
|
a
|
|
---------------------------------------------------------------------
|
|
3940649673949188
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949187 | 3940649673949187
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949188 | 3940649673949188
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial_ref VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949187 | 3940649673949187
|
|
(1 row)
|
|
|
|
INSERT INTO test_serial_ref VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949188 | 3940649673949188
|
|
(1 row)
|
|
|
|
INSERT INTO sensors VALUES (DEFAULT, DEFAULT, '2010-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
3940649673949187 | 3940649673949187 | 01-01-2010
|
|
(1 row)
|
|
|
|
INSERT INTO sensors_news VALUES (DEFAULT, DEFAULT, '2021-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
3940649673949188 | 3940649673949188 | 01-01-2021
|
|
(1 row)
|
|
|
|
\c - - - :master_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
SELECT create_distributed_table('test_local_to_dist', 'a', colocate_with:='none');
|
|
NOTICE: Copying data from local table...
|
|
NOTICE: copying the data has completed
|
|
DETAIL: The local data in the table is no longer visible, but is still on disk.
|
|
HINT: To remove the local data, run: SELECT truncate_local_data_after_distributing_table($$resync_metadata_with_sequences.test_local_to_dist$$)
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3 | 3
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
4 | 4
|
|
(1 row)
|
|
|
|
\c - - - :worker_1_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949189 | 3940649673949189
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949190 | 3940649673949190
|
|
(1 row)
|
|
|
|
\c - - - :master_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
SELECT alter_distributed_table('test_local_to_dist', shard_count:=6);
|
|
NOTICE: creating a new table for resync_metadata_with_sequences.test_local_to_dist
|
|
NOTICE: moving the data of resync_metadata_with_sequences.test_local_to_dist
|
|
NOTICE: dropping the old resync_metadata_with_sequences.test_local_to_dist
|
|
NOTICE: renaming the new table to resync_metadata_with_sequences.test_local_to_dist
|
|
alter_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
SET citus.shard_replication_factor TO 1;
|
|
SELECT alter_distributed_table('sensors', shard_count:=5);
|
|
NOTICE: converting the partitions of resync_metadata_with_sequences.sensors
|
|
NOTICE: creating a new table for resync_metadata_with_sequences.sensors_old
|
|
NOTICE: moving the data of resync_metadata_with_sequences.sensors_old
|
|
NOTICE: dropping the old resync_metadata_with_sequences.sensors_old
|
|
NOTICE: renaming the new table to resync_metadata_with_sequences.sensors_old
|
|
NOTICE: creating a new table for resync_metadata_with_sequences.sensors_2020_01_01
|
|
NOTICE: moving the data of resync_metadata_with_sequences.sensors_2020_01_01
|
|
NOTICE: dropping the old resync_metadata_with_sequences.sensors_2020_01_01
|
|
NOTICE: renaming the new table to resync_metadata_with_sequences.sensors_2020_01_01
|
|
NOTICE: creating a new table for resync_metadata_with_sequences.sensors_news
|
|
NOTICE: moving the data of resync_metadata_with_sequences.sensors_news
|
|
NOTICE: dropping the old resync_metadata_with_sequences.sensors_news
|
|
NOTICE: renaming the new table to resync_metadata_with_sequences.sensors_news
|
|
NOTICE: creating a new table for resync_metadata_with_sequences.sensors
|
|
NOTICE: dropping the old resync_metadata_with_sequences.sensors
|
|
NOTICE: renaming the new table to resync_metadata_with_sequences.sensors
|
|
alter_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
5 | 5
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
6 | 6
|
|
(1 row)
|
|
|
|
INSERT INTO sensors VALUES (DEFAULT, DEFAULT, '2010-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
1 | 1 | 01-01-2010
|
|
(1 row)
|
|
|
|
INSERT INTO sensors_news VALUES (DEFAULT, DEFAULT, '2021-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
2 | 2 | 01-01-2021
|
|
(1 row)
|
|
|
|
\c - - - :worker_1_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949191 | 3940649673949191
|
|
(1 row)
|
|
|
|
INSERT INTO test_local_to_dist VALUES(DEFAULT) RETURNING *;
|
|
a | b
|
|
---------------------------------------------------------------------
|
|
3940649673949192 | 3940649673949192
|
|
(1 row)
|
|
|
|
INSERT INTO sensors VALUES (DEFAULT, DEFAULT, '2010-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
3940649673949189 | 3940649673949189 | 01-01-2010
|
|
(1 row)
|
|
|
|
INSERT INTO sensors_news VALUES (DEFAULT, DEFAULT, '2021-01-01') RETURNING *;
|
|
measureid | other_id | eventdatetime
|
|
---------------------------------------------------------------------
|
|
3940649673949190 | 3940649673949190 | 01-01-2021
|
|
(1 row)
|
|
|
|
\c - - - :master_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
DROP TABLE test_serial, test_sequence;
|
|
\c - - - :worker_1_port
|
|
SET search_path tO resync_metadata_with_sequences;
|
|
-- show that we only have the sequences left after
|
|
-- dropping the tables (e.g., bigserial is dropped)
|
|
select count(*) from pg_sequences where schemaname ilike '%resync_metadata_with_sequences%';
|
|
count
|
|
---------------------------------------------------------------------
|
|
7
|
|
(1 row)
|
|
|
|
\c - - - :master_port
|
|
SET client_min_messages TO ERROR;
|
|
SELECT 1 FROM citus_remove_node('localhost', :master_port);
|
|
?column?
|
|
---------------------------------------------------------------------
|
|
1
|
|
(1 row)
|
|
|
|
DROP SCHEMA resync_metadata_with_sequences CASCADE;
|