From 6ba4ee036c4c8a47d6aaac9b491484445d295401 Mon Sep 17 00:00:00 2001 From: gurkanindibay Date: Mon, 11 Mar 2024 12:42:36 +0300 Subject: [PATCH] Changes dist_object check --- .../regress/expected/granted_by_support.out | 36 +++++++++---------- src/test/regress/sql/granted_by_support.sql | 18 +++++----- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/test/regress/expected/granted_by_support.out b/src/test/regress/expected/granted_by_support.out index 3a956bd52..4e44b4c7d 100644 --- a/src/test/regress/expected/granted_by_support.out +++ b/src/test/regress/expected/granted_by_support.out @@ -12,8 +12,8 @@ create role non_dist_role1; NOTICE: not propagating CREATE ROLE/USER commands to other nodes HINT: Connect to other nodes directly to manually create all necessary users and roles. reset citus.enable_create_role_propagation; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) @@ -30,8 +30,8 @@ grant dist_role3 to dist_role4 with admin option; set citus.enable_create_role_propagation to off; grant non_dist_role1 to dist_role1 with admin option; reset citus.enable_create_role_propagation; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) @@ -47,8 +47,8 @@ grant dist_role4 to "dist_role5'_test" with admin option; --below command propagates the non_dist_role1 since non_dist_role1 is already granted to dist_role1 --and citus sees granted roles as a dependency and citus propagates the dependent roles grant dist_role4 to dist_role1 with admin option GRANTED BY "dist_role5'_test"; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- non_dist_role1 (1 row) @@ -109,8 +109,8 @@ select result FROM run_command_on_all_nodes( --clean all resources drop role dist_role1,dist_role2,dist_role3,dist_role4,"dist_role5'_test"; drop role non_dist_role1; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) @@ -143,8 +143,8 @@ select 1 from citus_remove_node ('localhost',:worker_2_port); 1 (1 row) -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) @@ -174,8 +174,8 @@ create role dist_role3; create role dist_role4; create role "dist_role5'_test"; \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) @@ -199,16 +199,16 @@ grant dist_role2 to "dist_role5'_test" granted by dist_role3; grant dist_role2 to dist_role4 granted by non_dist_role1 ;--will not be propagated since grantor is non-distributed ERROR: role "non_dist_role1" does not exist \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) \c test_granted_by_support - - :worker_1_port grant dist_role4 to "dist_role5'_test" with admin option; \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) @@ -217,8 +217,8 @@ select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid whe --workers as it doesn't create dependency objects for non-distributed roles. grant dist_role4 to dist_role1 with admin option GRANTED BY "dist_role5'_test"; \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; - rolname +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; + objid --------------------------------------------------------------------- (0 rows) diff --git a/src/test/regress/sql/granted_by_support.sql b/src/test/regress/sql/granted_by_support.sql index bfc9358f0..fcec183c5 100644 --- a/src/test/regress/sql/granted_by_support.sql +++ b/src/test/regress/sql/granted_by_support.sql @@ -6,7 +6,7 @@ select 1 from citus_remove_node ('localhost',:worker_2_port); set citus.enable_create_role_propagation to off; create role non_dist_role1; reset citus.enable_create_role_propagation; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; create role dist_role1; create role dist_role2; @@ -24,7 +24,7 @@ set citus.enable_create_role_propagation to off; grant non_dist_role1 to dist_role1 with admin option; reset citus.enable_create_role_propagation; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; @@ -41,7 +41,7 @@ grant dist_role4 to "dist_role5'_test" with admin option; --and citus sees granted roles as a dependency and citus propagates the dependent roles grant dist_role4 to dist_role1 with admin option GRANTED BY "dist_role5'_test"; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; grant dist_role4 to dist_role3 with admin option GRANTED BY dist_role1; --fails since already dist_role3 granted to dist_role4 @@ -85,7 +85,7 @@ select result FROM run_command_on_all_nodes( drop role dist_role1,dist_role2,dist_role3,dist_role4,"dist_role5'_test"; drop role non_dist_role1; -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; reset citus.enable_create_role_propagation; select result FROM run_command_on_all_nodes( @@ -107,7 +107,7 @@ create database test_granted_by_support; select 1 from citus_remove_node ('localhost',:worker_2_port); -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; \c test_granted_by_support --here in below block since 'citus.enable_create_role_propagation to off ' is not effective, @@ -135,7 +135,7 @@ create role dist_role3; create role dist_role4; create role "dist_role5'_test"; \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; \c test_granted_by_support @@ -159,12 +159,12 @@ grant dist_role3 to "dist_role5'_test" granted by dist_role4; grant dist_role2 to "dist_role5'_test" granted by dist_role3; grant dist_role2 to dist_role4 granted by non_dist_role1 ;--will not be propagated since grantor is non-distributed \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; \c test_granted_by_support - - :worker_1_port grant dist_role4 to "dist_role5'_test" with admin option; \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; \c test_granted_by_support @@ -173,7 +173,7 @@ select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid whe grant dist_role4 to dist_role1 with admin option GRANTED BY "dist_role5'_test"; \c regression - - :master_port -select r.rolname from pg_roles r inner join pg_dist_object o on r.oid= objid where r.rolname = 'non_dist_role1'; +SELECT objid::regrole FROM pg_catalog.pg_dist_object WHERE classid='pg_authid'::regclass::oid AND objid::regrole::text= 'non_dist_role1' ORDER BY 1; \c test_granted_by_support - - :worker_1_port