diff --git a/src/backend/distributed/commands/utility_hook.c b/src/backend/distributed/commands/utility_hook.c index 9359b6c14..e70afb69b 100644 --- a/src/backend/distributed/commands/utility_hook.c +++ b/src/backend/distributed/commands/utility_hook.c @@ -158,7 +158,7 @@ static void RunPostprocessMainDBCommand(Node *parsetree); static bool IsStatementSupportedInNonMainDb(Node *parsetree); static bool StatementRequiresMarkDistributedFromNonMainDb(Node *parsetree); static ObjectInfo GetObjectInfo(Node *parsetree); -static void MarkObjectDistributedInNonMainDb(Node *parsetree, ObjectInfo objectInfo); +static void MarkObjectDistributedInNonMainDb(Node *parsetree); /* * ProcessUtilityParseTree is a convenience method to create a PlannedStmt out of @@ -1667,8 +1667,7 @@ RunPostprocessMainDBCommand(Node *parsetree) if (IsStatementSupportedInNonMainDb(parsetree) && StatementRequiresMarkDistributedFromNonMainDb(parsetree)) { - ObjectInfo objectInfo = GetObjectInfo(parsetree); - MarkObjectDistributedInNonMainDb(parsetree, objectInfo); + MarkObjectDistributedInNonMainDb(parsetree); } } @@ -1699,8 +1698,9 @@ GetObjectInfo(Node *parsetree) * non-main database. */ static void -MarkObjectDistributedInNonMainDb(Node *parsetree, ObjectInfo objectInfo) +MarkObjectDistributedInNonMainDb(Node *parsetree) { + ObjectInfo objectInfo = GetObjectInfo(parsetree); StringInfo mainDBQuery = makeStringInfo(); appendStringInfo(mainDBQuery, MARK_OBJECT_DISTRIBUTED, diff --git a/src/test/regress/expected/grant_role_2pc.out b/src/test/regress/expected/grant_role_from_non_maindb.out similarity index 87% rename from src/test/regress/expected/grant_role_2pc.out rename to src/test/regress/expected/grant_role_from_non_maindb.out index 144d67fc3..fa88e4e2a 100644 --- a/src/test/regress/expected/grant_role_2pc.out +++ b/src/test/regress/expected/grant_role_from_non_maindb.out @@ -33,7 +33,7 @@ select result FROM run_command_on_all_nodes( SELECT member::regrole, roleid::regrole as role, grantor::regrole, admin_option FROM pg_auth_members WHERE member::regrole::text = 'grant_role2pc_user2' - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$ ); @@ -67,7 +67,7 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user3','grant_role2pc_user4','grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); result @@ -87,7 +87,7 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); result @@ -104,6 +104,7 @@ BEGIN; revoke grant_role2pc_user1 from grant_role2pc_user5 granted by grant_role2pc_user3 ; revoke grant_role2pc_user1 from grant_role2pc_user4 granted by grant_role2pc_user3; COMMIT; +\c grant_role2pc_db - - :worker_1_port BEGIN; revoke grant_role2pc_user1 from grant_role2pc_user6,grant_role2pc_user7 granted by grant_role2pc_user3; revoke grant_role2pc_user1 from grant_role2pc_user3 cascade; @@ -116,7 +117,7 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user2','grant_role2pc_user3','grant_role2pc_user4','grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); result @@ -139,14 +140,14 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user5','grant_role2pc_user6') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); result --------------------------------------------------------------------- - [{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false}] - [{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false}] - [{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false}] + [{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}] + [{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}] + [{"member":"grant_role2pc_user5","role":"grant_role2pc_user1","grantor":"postgres","admin_option":true},{"member":"grant_role2pc_user5","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user1","grantor":"postgres","admin_option":false},{"member":"grant_role2pc_user6","role":"grant_role2pc_user2","grantor":"grant_role2pc_user3","admin_option":false}] (3 rows) revoke grant_role2pc_user1 from grant_role2pc_user5,grant_role2pc_user6; diff --git a/src/test/regress/expected/metadata_sync_2pc.out b/src/test/regress/expected/metadata_sync_from_non_maindb.out similarity index 100% rename from src/test/regress/expected/metadata_sync_2pc.out rename to src/test/regress/expected/metadata_sync_from_non_maindb.out diff --git a/src/test/regress/multi_1_schedule b/src/test/regress/multi_1_schedule index 02ac8528a..a05601855 100644 --- a/src/test/regress/multi_1_schedule +++ b/src/test/regress/multi_1_schedule @@ -40,7 +40,7 @@ test: create_drop_database_propagation_pg15 test: create_drop_database_propagation_pg16 test: comment_on_database test: comment_on_role -test: metadata_sync_2pc +test: metadata_sync_from_non_maindb # don't parallelize single_shard_table_udfs to make sure colocation ids are sequential test: single_shard_table_udfs test: schema_based_sharding diff --git a/src/test/regress/multi_schedule b/src/test/regress/multi_schedule index 1dbc6eba4..6a412563c 100644 --- a/src/test/regress/multi_schedule +++ b/src/test/regress/multi_schedule @@ -109,10 +109,9 @@ test: undistribute_table test: run_command_on_all_nodes test: background_task_queue_monitor test: other_databases -test: grant_role_2pc +test: grant_role_from_non_maindb test: citus_internal_access - # Causal clock test test: clock diff --git a/src/test/regress/sql/grant_role_2pc.sql b/src/test/regress/sql/grant_role_from_non_maindb.sql similarity index 92% rename from src/test/regress/sql/grant_role_2pc.sql rename to src/test/regress/sql/grant_role_from_non_maindb.sql index 1684bfe12..5e698b6f4 100644 --- a/src/test/regress/sql/grant_role_2pc.sql +++ b/src/test/regress/sql/grant_role_from_non_maindb.sql @@ -1,19 +1,14 @@ CREATE SCHEMA grant_role2pc; - SET search_path TO grant_role2pc; - set citus.enable_create_database_propagation to on; - CREATE DATABASE grant_role2pc_db; - \c grant_role2pc_db SHOW citus.main_db; - SET citus.superuser TO 'postgres'; CREATE USER grant_role2pc_user1; CREATE USER grant_role2pc_user2; @@ -41,7 +36,7 @@ select result FROM run_command_on_all_nodes( SELECT member::regrole, roleid::regrole as role, grantor::regrole, admin_option FROM pg_auth_members WHERE member::regrole::text = 'grant_role2pc_user2' - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$ ); @@ -75,7 +70,7 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user3','grant_role2pc_user4','grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); @@ -93,7 +88,7 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); @@ -105,7 +100,7 @@ BEGIN; revoke grant_role2pc_user1 from grant_role2pc_user5 granted by grant_role2pc_user3 ; revoke grant_role2pc_user1 from grant_role2pc_user4 granted by grant_role2pc_user3; COMMIT; - +\c grant_role2pc_db - - :worker_1_port BEGIN; revoke grant_role2pc_user1 from grant_role2pc_user6,grant_role2pc_user7 granted by grant_role2pc_user3; revoke grant_role2pc_user1 from grant_role2pc_user3 cascade; @@ -120,7 +115,7 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user2','grant_role2pc_user3','grant_role2pc_user4','grant_role2pc_user5','grant_role2pc_user6','grant_role2pc_user7') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); @@ -139,7 +134,7 @@ FROM ( FROM pg_auth_members WHERE member::regrole::text in ('grant_role2pc_user5','grant_role2pc_user6') - order by member::regrole::text + order by member::regrole::text, roleid::regrole::text ) t $$); @@ -149,8 +144,6 @@ revoke grant_role2pc_user1 from grant_role2pc_user5,grant_role2pc_user6; DROP SCHEMA grant_role2pc; set citus.enable_create_database_propagation to on; DROP DATABASE grant_role2pc_db; - drop user grant_role2pc_user2,grant_role2pc_user3,grant_role2pc_user4,grant_role2pc_user5,grant_role2pc_user6,grant_role2pc_user7; drop user grant_role2pc_user1; - reset citus.enable_create_database_propagation; diff --git a/src/test/regress/sql/metadata_sync_2pc.sql b/src/test/regress/sql/metadata_sync_from_non_maindb.sql similarity index 99% rename from src/test/regress/sql/metadata_sync_2pc.sql rename to src/test/regress/sql/metadata_sync_from_non_maindb.sql index 8d6ee6467..1030782d3 100644 --- a/src/test/regress/sql/metadata_sync_2pc.sql +++ b/src/test/regress/sql/metadata_sync_from_non_maindb.sql @@ -1,13 +1,8 @@ - CREATE SCHEMA metadata_sync_2pc_schema; - SET search_path TO metadata_sync_2pc_schema; - set citus.enable_create_database_propagation to on; - CREATE DATABASE metadata_sync_2pc_db; - \c metadata_sync_2pc_db SHOW citus.main_db; @@ -24,7 +19,6 @@ select 1 from citus_remove_node('localhost', :worker_2_port); grant grant_role2pc_user1,grant_role2pc_user2 to grant_role2pc_user3 WITH ADMIN OPTION; grant grant_role2pc_user1,grant_role2pc_user2 to grant_role2pc_user4,grant_role2pc_user5 granted by grant_role2pc_user3; - \c regression select 1 from citus_add_node('localhost', :worker_2_port); @@ -39,7 +33,6 @@ FROM ( ) t $$); - \c metadata_sync_2pc_db revoke grant_role2pc_user1,grant_role2pc_user2 from grant_role2pc_user4,grant_role2pc_user5 granted by grant_role2pc_user3; @@ -50,12 +43,9 @@ revoke grant_role2pc_user1,grant_role2pc_user2 from grant_role2pc_user3; \c regression drop user grant_role2pc_user1,grant_role2pc_user2,grant_role2pc_user3,grant_role2pc_user4,grant_role2pc_user5; - set citus.enable_create_database_propagation to on; drop database metadata_sync_2pc_db; - drop schema metadata_sync_2pc_schema; reset citus.enable_create_database_propagation; reset search_path; -