diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 6b33c658f..92da5752d 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -486,7 +486,7 @@ jobs: image: ${{ needs.params.outputs.fail_test_image_name }}:${{ fromJson(needs.params.outputs.pg16_version).full }}${{ needs.params.outputs.image_suffix }} options: --user root env: - runs: 8 + runs: 20 needs: - params - build diff --git a/src/test/regress/citus_tests/run_test.py b/src/test/regress/citus_tests/run_test.py index 158a44ef6..7218cf449 100755 --- a/src/test/regress/citus_tests/run_test.py +++ b/src/test/regress/citus_tests/run_test.py @@ -199,6 +199,9 @@ DEPS = { repeatable=False, ), "multi_prepare_plsql": TestDeps("base_schedule"), + "multi_tenant_isolation": TestDeps( + "minimal_schedule", ["multi_data_types"] + ), } diff --git a/src/test/regress/expected/citus_local_tables_ent.out b/src/test/regress/expected/citus_local_tables_ent.out index 99e18109f..4d08a607d 100644 --- a/src/test/regress/expected/citus_local_tables_ent.out +++ b/src/test/regress/expected/citus_local_tables_ent.out @@ -86,3 +86,28 @@ RESET ROLE; -- cleanup at exit DROP SCHEMA citus_local_tables_ent CASCADE; NOTICE: drop cascades to 2 other objects +DROP USER user_can_select_a_1; +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_replication_slots$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_publication$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_subscription$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + diff --git a/src/test/regress/expected/multi_tenant_isolation.out b/src/test/regress/expected/multi_tenant_isolation.out index 5af7acac8..d84c52da4 100644 --- a/src/test/regress/expected/multi_tenant_isolation.out +++ b/src/test/regress/expected/multi_tenant_isolation.out @@ -9,6 +9,12 @@ SELECT nextval('pg_catalog.pg_dist_placement_placementid_seq') AS last_placement ALTER SEQUENCE pg_catalog.pg_dist_placement_placementid_seq RESTART 100000; CREATE SCHEMA "Tenant Isolation"; SET search_path to "Tenant Isolation"; +SELECT citus_set_coordinator_host('localhost'); + citus_set_coordinator_host +--------------------------------------------------------------------- + +(1 row) + CREATE ROLE mx_isolation_role_ent WITH LOGIN; GRANT ALL ON SCHEMA "Tenant Isolation", public TO mx_isolation_role_ent; -- connect with this new role @@ -1228,3 +1234,27 @@ SELECT count(*) FROM pg_catalog.pg_dist_partition WHERE colocationid > 0; TRUNCATE TABLE pg_catalog.pg_dist_colocation; ALTER SEQUENCE pg_catalog.pg_dist_colocationid_seq RESTART 1; ALTER SEQUENCE pg_catalog.pg_dist_placement_placementid_seq RESTART :last_placement_id; +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_replication_slots$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_publication$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_subscription$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + diff --git a/src/test/regress/expected/publication.out b/src/test/regress/expected/publication.out index c761efb3e..e923de599 100644 --- a/src/test/regress/expected/publication.out +++ b/src/test/regress/expected/publication.out @@ -544,3 +544,27 @@ DROP SCHEMA publication CASCADE; DROP SCHEMA "publication-1" CASCADE; DROP SCHEMA citus_schema_1 CASCADE; DROP SCHEMA publication2 CASCADE; +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_replication_slots$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_publication$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_subscription$$); + result +--------------------------------------------------------------------- + 0 + 0 + 0 +(3 rows) + diff --git a/src/test/regress/sql/citus_local_tables_ent.sql b/src/test/regress/sql/citus_local_tables_ent.sql index 8b76c0a4d..fb6552308 100644 --- a/src/test/regress/sql/citus_local_tables_ent.sql +++ b/src/test/regress/sql/citus_local_tables_ent.sql @@ -72,3 +72,8 @@ RESET ROLE; -- cleanup at exit DROP SCHEMA citus_local_tables_ent CASCADE; +DROP USER user_can_select_a_1; + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_replication_slots$$); +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_publication$$); +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_subscription$$); diff --git a/src/test/regress/sql/multi_tenant_isolation.sql b/src/test/regress/sql/multi_tenant_isolation.sql index c3e51b6cc..84d6e81ba 100644 --- a/src/test/regress/sql/multi_tenant_isolation.sql +++ b/src/test/regress/sql/multi_tenant_isolation.sql @@ -12,6 +12,8 @@ ALTER SEQUENCE pg_catalog.pg_dist_placement_placementid_seq RESTART 100000; CREATE SCHEMA "Tenant Isolation"; SET search_path to "Tenant Isolation"; +SELECT citus_set_coordinator_host('localhost'); + CREATE ROLE mx_isolation_role_ent WITH LOGIN; GRANT ALL ON SCHEMA "Tenant Isolation", public TO mx_isolation_role_ent; @@ -610,3 +612,7 @@ TRUNCATE TABLE pg_catalog.pg_dist_colocation; ALTER SEQUENCE pg_catalog.pg_dist_colocationid_seq RESTART 1; ALTER SEQUENCE pg_catalog.pg_dist_placement_placementid_seq RESTART :last_placement_id; + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_replication_slots$$); +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_publication$$); +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_subscription$$); diff --git a/src/test/regress/sql/publication.sql b/src/test/regress/sql/publication.sql index 06bdc39fe..f7e41b9a4 100644 --- a/src/test/regress/sql/publication.sql +++ b/src/test/regress/sql/publication.sql @@ -391,3 +391,7 @@ DROP SCHEMA publication CASCADE; DROP SCHEMA "publication-1" CASCADE; DROP SCHEMA citus_schema_1 CASCADE; DROP SCHEMA publication2 CASCADE; + +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_replication_slots$$); +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_publication$$); +SELECT result FROM run_command_on_all_nodes($$SELECT count(*) FROM pg_subscription$$);