aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/privileges.out30
-rw-r--r--src/test/regress/sql/privileges.sql15
2 files changed, 45 insertions, 0 deletions
diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out
index 6b01313101b..a76256405fe 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -113,6 +113,36 @@ CREATE USER regress_priv_user2;
CREATE USER regress_priv_user3;
CREATE USER regress_priv_user4;
CREATE USER regress_priv_user5;
+-- DROP OWNED should also act on granted and granted-to roles
+GRANT regress_priv_user1 TO regress_priv_user2;
+GRANT regress_priv_user2 TO regress_priv_user3;
+SELECT roleid::regrole, member::regrole FROM pg_auth_members
+ WHERE roleid IN ('regress_priv_user1'::regrole,'regress_priv_user2'::regrole)
+ ORDER BY roleid::regrole::text;
+ roleid | member
+--------------------+--------------------
+ regress_priv_user1 | regress_priv_user2
+ regress_priv_user2 | regress_priv_user3
+(2 rows)
+
+REASSIGN OWNED BY regress_priv_user2 TO regress_priv_user4; -- no effect
+SELECT roleid::regrole, member::regrole FROM pg_auth_members
+ WHERE roleid IN ('regress_priv_user1'::regrole,'regress_priv_user2'::regrole)
+ ORDER BY roleid::regrole::text;
+ roleid | member
+--------------------+--------------------
+ regress_priv_user1 | regress_priv_user2
+ regress_priv_user2 | regress_priv_user3
+(2 rows)
+
+DROP OWNED BY regress_priv_user2; -- removes both grants
+SELECT roleid::regrole, member::regrole FROM pg_auth_members
+ WHERE roleid IN ('regress_priv_user1'::regrole,'regress_priv_user2'::regrole)
+ ORDER BY roleid::regrole::text;
+ roleid | member
+--------+--------
+(0 rows)
+
GRANT pg_read_all_data TO regress_priv_user6;
GRANT pg_write_all_data TO regress_priv_user7;
GRANT pg_read_all_settings TO regress_priv_user8 WITH ADMIN OPTION;
diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql
index 60e7443bf59..d195aaf1377 100644
--- a/src/test/regress/sql/privileges.sql
+++ b/src/test/regress/sql/privileges.sql
@@ -90,6 +90,21 @@ CREATE USER regress_priv_user3;
CREATE USER regress_priv_user4;
CREATE USER regress_priv_user5;
+-- DROP OWNED should also act on granted and granted-to roles
+GRANT regress_priv_user1 TO regress_priv_user2;
+GRANT regress_priv_user2 TO regress_priv_user3;
+SELECT roleid::regrole, member::regrole FROM pg_auth_members
+ WHERE roleid IN ('regress_priv_user1'::regrole,'regress_priv_user2'::regrole)
+ ORDER BY roleid::regrole::text;
+REASSIGN OWNED BY regress_priv_user2 TO regress_priv_user4; -- no effect
+SELECT roleid::regrole, member::regrole FROM pg_auth_members
+ WHERE roleid IN ('regress_priv_user1'::regrole,'regress_priv_user2'::regrole)
+ ORDER BY roleid::regrole::text;
+DROP OWNED BY regress_priv_user2; -- removes both grants
+SELECT roleid::regrole, member::regrole FROM pg_auth_members
+ WHERE roleid IN ('regress_priv_user1'::regrole,'regress_priv_user2'::regrole)
+ ORDER BY roleid::regrole::text;
+
GRANT pg_read_all_data TO regress_priv_user6;
GRANT pg_write_all_data TO regress_priv_user7;
GRANT pg_read_all_settings TO regress_priv_user8 WITH ADMIN OPTION;