2022-02-08 15:48:28 -08:00
|
|
|
DROP DATABASE IF EXISTS shard0;
|
|
|
|
|
DROP DATABASE IF EXISTS shard1;
|
|
|
|
|
DROP DATABASE IF EXISTS shard2;
|
2022-08-08 15:15:48 -05:00
|
|
|
DROP DATABASE IF EXISTS some_db;
|
2022-02-08 15:48:28 -08:00
|
|
|
|
|
|
|
|
CREATE DATABASE shard0;
|
|
|
|
|
CREATE DATABASE shard1;
|
|
|
|
|
CREATE DATABASE shard2;
|
2022-08-08 15:15:48 -05:00
|
|
|
CREATE DATABASE some_db;
|
2022-02-08 15:48:28 -08:00
|
|
|
|
|
|
|
|
\c shard0
|
|
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS data CASCADE;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE data (
|
|
|
|
|
id BIGINT,
|
|
|
|
|
value VARCHAR
|
|
|
|
|
) PARTITION BY HASH (id);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE data_shard_0 PARTITION OF data FOR VALUES WITH (MODULUS 3, REMAINDER 0);
|
|
|
|
|
|
|
|
|
|
\c shard1
|
|
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS data CASCADE;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE data (
|
|
|
|
|
id BIGINT,
|
|
|
|
|
value VARCHAR
|
|
|
|
|
) PARTITION BY HASH (id);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE data_shard_1 PARTITION OF data FOR VALUES WITH (MODULUS 3, REMAINDER 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\c shard2
|
|
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS data CASCADE;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE data (
|
|
|
|
|
id BIGINT,
|
|
|
|
|
value VARCHAR
|
|
|
|
|
) PARTITION BY HASH (id);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE data_shard_2 PARTITION OF data FOR VALUES WITH (MODULUS 3, REMAINDER 2);
|
|
|
|
|
|
2022-08-08 15:15:48 -05:00
|
|
|
|
|
|
|
|
\c some_db
|
|
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS data CASCADE;
|
|
|
|
|
|
|
|
|
|
CREATE TABLE data (
|
|
|
|
|
id BIGINT,
|
|
|
|
|
value VARCHAR
|
|
|
|
|
);
|
|
|
|
|
|
2022-02-08 15:48:28 -08:00
|
|
|
DROP ROLE IF EXISTS sharding_user;
|
2022-08-08 15:15:48 -05:00
|
|
|
DROP ROLE IF EXISTS other_user;
|
|
|
|
|
DROP ROLE IF EXISTS simple_user;
|
2022-02-08 15:48:28 -08:00
|
|
|
CREATE ROLE sharding_user ENCRYPTED PASSWORD 'sharding_user' LOGIN;
|
2022-08-08 15:15:48 -05:00
|
|
|
CREATE ROLE other_user ENCRYPTED PASSWORD 'other_user' LOGIN;
|
|
|
|
|
CREATE ROLE simple_user ENCRYPTED PASSWORD 'simple_user' LOGIN;
|
2022-02-08 15:48:28 -08:00
|
|
|
|
2022-08-08 15:15:48 -05:00
|
|
|
GRANT CONNECT ON DATABASE shard0 TO sharding_user;
|
|
|
|
|
GRANT CONNECT ON DATABASE shard1 TO sharding_user;
|
|
|
|
|
GRANT CONNECT ON DATABASE shard2 TO sharding_user;
|
|
|
|
|
|
|
|
|
|
GRANT CONNECT ON DATABASE shard0 TO other_user;
|
|
|
|
|
GRANT CONNECT ON DATABASE shard1 TO other_user;
|
|
|
|
|
GRANT CONNECT ON DATABASE shard2 TO other_user;
|
|
|
|
|
|
|
|
|
|
GRANT CONNECT ON DATABASE some_db TO simple_user;
|
2022-02-08 15:48:28 -08:00
|
|
|
|
|
|
|
|
\c shard0
|
2022-08-30 11:14:53 -05:00
|
|
|
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
|
|
|
|
|
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO sharding_user;
|
2022-02-08 15:48:28 -08:00
|
|
|
GRANT ALL ON SCHEMA public TO sharding_user;
|
|
|
|
|
GRANT ALL ON TABLE data TO sharding_user;
|
2022-08-08 15:15:48 -05:00
|
|
|
GRANT ALL ON SCHEMA public TO other_user;
|
|
|
|
|
GRANT ALL ON TABLE data TO other_user;
|
2022-08-30 11:14:53 -05:00
|
|
|
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO other_user;
|
2022-02-08 15:48:28 -08:00
|
|
|
|
|
|
|
|
\c shard1
|
2022-08-30 11:14:53 -05:00
|
|
|
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
|
|
|
|
|
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO sharding_user;
|
2022-02-08 15:48:28 -08:00
|
|
|
GRANT ALL ON SCHEMA public TO sharding_user;
|
|
|
|
|
GRANT ALL ON TABLE data TO sharding_user;
|
2022-08-08 15:15:48 -05:00
|
|
|
GRANT ALL ON SCHEMA public TO other_user;
|
|
|
|
|
GRANT ALL ON TABLE data TO other_user;
|
2022-08-30 11:14:53 -05:00
|
|
|
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO other_user;
|
|
|
|
|
|
2022-02-08 15:48:28 -08:00
|
|
|
|
|
|
|
|
\c shard2
|
2022-08-30 11:14:53 -05:00
|
|
|
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
|
|
|
|
|
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO sharding_user;
|
2022-02-08 15:48:28 -08:00
|
|
|
GRANT ALL ON SCHEMA public TO sharding_user;
|
2022-02-16 22:52:11 -08:00
|
|
|
GRANT ALL ON TABLE data TO sharding_user;
|
2022-08-08 15:15:48 -05:00
|
|
|
GRANT ALL ON SCHEMA public TO other_user;
|
|
|
|
|
GRANT ALL ON TABLE data TO other_user;
|
2022-08-30 11:14:53 -05:00
|
|
|
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO other_user;
|
2022-08-08 15:15:48 -05:00
|
|
|
|
|
|
|
|
\c some_db
|
2022-08-30 11:14:53 -05:00
|
|
|
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
|
|
|
|
|
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO simple_user;
|
2022-08-08 15:15:48 -05:00
|
|
|
GRANT ALL ON SCHEMA public TO simple_user;
|
|
|
|
|
GRANT ALL ON TABLE data TO simple_user;
|