From 932a425b32a46ab4554ff48d4569db562d2a5fdb Mon Sep 17 00:00:00 2001 From: gurkanindibay Date: Thu, 22 Feb 2024 18:05:51 +0300 Subject: [PATCH] Fixes review notes --- .../role_operations_from_non_maindb.out | 55 ++++++++++++++++++- .../sql/role_operations_from_non_maindb.sql | 37 ++++++++++++- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/src/test/regress/expected/role_operations_from_non_maindb.out b/src/test/regress/expected/role_operations_from_non_maindb.out index 9bd2246f7..11eabef3c 100644 --- a/src/test/regress/expected/role_operations_from_non_maindb.out +++ b/src/test/regress/expected/role_operations_from_non_maindb.out @@ -30,6 +30,23 @@ $$); [{"rolname":"test_role1","rolsuper":false,"rolinherit":true,"rolcreaterole":false,"rolcreatedb":false,"rolcanlogin":true,"rolreplication":false,"rolbypassrls":false,"rolconnlimit":-1,"pass_not_empty":true,"date":null},{"rolname":"test_role2-needs\\!escape","rolsuper":true,"rolinherit":true,"rolcreaterole":true,"rolcreatedb":true,"rolcanlogin":true,"rolreplication":true,"rolbypassrls":true,"rolconnlimit":10,"pass_not_empty":null,"date":"2023-01-01"}] (3 rows) +select result FROM run_command_on_all_nodes($$ + SELECT array_to_json(array_agg(row_to_json(t))) + FROM ( + SELECT r.rolname + FROM pg_dist_object d + JOIN pg_roles r ON d.objid = r.oid + WHERE r.rolname IN ('test_role1', 'test_role2-needs\!escape') + order by r.rolname + ) t +$$); + result +--------------------------------------------------------------------- + [{"rolname":"test_role1"},{"rolname":"test_role2-needs\\!escape"}] + [{"rolname":"test_role1"},{"rolname":"test_role2-needs\\!escape"}] + [{"rolname":"test_role1"},{"rolname":"test_role2-needs\\!escape"}] +(3 rows) + \c role_operations_test_db - - :master_port -- Test ALTER ROLE with various options ALTER ROLE test_role1 WITH PASSWORD 'new_password1'; @@ -60,8 +77,44 @@ $$); \c role_operations_test_db - - :master_port -- Test DROP ROLE DROP ROLE IF EXISTS test_role1, "test_role2-needs\!escape"; --- Clean up: drop the database \c regression - - :master_port +--verify that roles and dist_object are dropped +select result FROM run_command_on_all_nodes($$ + SELECT array_to_json(array_agg(row_to_json(t))) + FROM ( + SELECT rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, + rolcanlogin, rolreplication, rolbypassrls, rolconnlimit, + (rolpassword != '') as pass_not_empty, DATE(rolvaliduntil) + FROM pg_authid + WHERE rolname in ('test_role1', 'test_role2-needs\!escape') + ORDER BY rolname + ) t +$$); + result +--------------------------------------------------------------------- + + + +(3 rows) + +select result FROM run_command_on_all_nodes($$ + SELECT array_to_json(array_agg(row_to_json(t))) + FROM ( + SELECT r.rolname + FROM pg_dist_object d + JOIN pg_roles r ON d.objid = r.oid + WHERE r.rolname IN ('test_role1', 'test_role2-needs\!escape') + order by r.rolname + ) t +$$); + result +--------------------------------------------------------------------- + + + +(3 rows) + +-- Clean up: drop the database set citus.enable_create_database_propagation to on; DROP DATABASE role_operations_test_db; reset citus.enable_create_database_propagation; diff --git a/src/test/regress/sql/role_operations_from_non_maindb.sql b/src/test/regress/sql/role_operations_from_non_maindb.sql index a7954a1f3..87c759d66 100644 --- a/src/test/regress/sql/role_operations_from_non_maindb.sql +++ b/src/test/regress/sql/role_operations_from_non_maindb.sql @@ -27,6 +27,17 @@ select result FROM run_command_on_all_nodes($$ ) t $$); +select result FROM run_command_on_all_nodes($$ + SELECT array_to_json(array_agg(row_to_json(t))) + FROM ( + SELECT r.rolname + FROM pg_dist_object d + JOIN pg_roles r ON d.objid = r.oid + WHERE r.rolname IN ('test_role1', 'test_role2-needs\!escape') + order by r.rolname + ) t +$$); + \c role_operations_test_db - - :master_port -- Test ALTER ROLE with various options ALTER ROLE test_role1 WITH PASSWORD 'new_password1'; @@ -54,8 +65,32 @@ $$); -- Test DROP ROLE DROP ROLE IF EXISTS test_role1, "test_role2-needs\!escape"; --- Clean up: drop the database \c regression - - :master_port +--verify that roles and dist_object are dropped +select result FROM run_command_on_all_nodes($$ + SELECT array_to_json(array_agg(row_to_json(t))) + FROM ( + SELECT rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, + rolcanlogin, rolreplication, rolbypassrls, rolconnlimit, + (rolpassword != '') as pass_not_empty, DATE(rolvaliduntil) + FROM pg_authid + WHERE rolname in ('test_role1', 'test_role2-needs\!escape') + ORDER BY rolname + ) t +$$); + +select result FROM run_command_on_all_nodes($$ + SELECT array_to_json(array_agg(row_to_json(t))) + FROM ( + SELECT r.rolname + FROM pg_dist_object d + JOIN pg_roles r ON d.objid = r.oid + WHERE r.rolname IN ('test_role1', 'test_role2-needs\!escape') + order by r.rolname + ) t +$$); + +-- Clean up: drop the database set citus.enable_create_database_propagation to on; DROP DATABASE role_operations_test_db; reset citus.enable_create_database_propagation;