diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/dependency.out | 28 | ||||
-rw-r--r-- | src/test/regress/sql/dependency.sql | 18 |
2 files changed, 44 insertions, 2 deletions
diff --git a/src/test/regress/expected/dependency.out b/src/test/regress/expected/dependency.out index 700def75b1f..cb2e4659322 100644 --- a/src/test/regress/expected/dependency.out +++ b/src/test/regress/expected/dependency.out @@ -89,15 +89,32 @@ DROP OWNED BY regression_user1; \d deptest -- Test REASSIGN OWNED GRANT ALL ON deptest1 TO regression_user1; +GRANT CREATE ON DATABASE regression TO regression_user1; SET SESSION AUTHORIZATION regression_user1; +CREATE SCHEMA deptest; CREATE TABLE deptest (a serial primary key, b text); NOTICE: CREATE TABLE will create implicit sequence "deptest_a_seq" for serial column "deptest.a" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "deptest_pkey" for table "deptest" +ALTER DEFAULT PRIVILEGES FOR ROLE regression_user1 IN SCHEMA deptest + GRANT ALL ON TABLES TO regression_user2; +CREATE FUNCTION deptest_func() RETURNS void LANGUAGE plpgsql + AS $$ BEGIN END; $$; +CREATE TYPE deptest_enum AS ENUM ('red'); CREATE TABLE deptest2 (f1 int); -- make a serial column the hard way CREATE SEQUENCE ss1; ALTER TABLE deptest2 ALTER f1 SET DEFAULT nextval('ss1'); ALTER SEQUENCE ss1 OWNED BY deptest2.f1; +-- When reassigning ownership of a composite type, its pg_class entry +-- should match +CREATE TYPE deptest_t AS (a int); +SELECT typowner = relowner +FROM pg_type JOIN pg_class c ON typrelid = c.oid WHERE typname = 'deptest_t'; + ?column? +---------- + t +(1 row) + RESET SESSION AUTHORIZATION; REASSIGN OWNED BY regression_user1 TO regression_user2; \dt deptest @@ -107,10 +124,19 @@ REASSIGN OWNED BY regression_user1 TO regression_user2; public | deptest | table | regression_user2 (1 row) +SELECT typowner = relowner +FROM pg_type JOIN pg_class c ON typrelid = c.oid WHERE typname = 'deptest_t'; + ?column? +---------- + t +(1 row) + -- doesn't work: grant still exists DROP USER regression_user1; ERROR: role "regression_user1" cannot be dropped because some objects depend on it -DETAIL: privileges for table deptest1 +DETAIL: owner of default privileges on new relations belonging to role regression_user1 in schema deptest +privileges for database regression +privileges for table deptest1 DROP OWNED BY regression_user1; DROP USER regression_user1; \set VERBOSITY terse diff --git a/src/test/regress/sql/dependency.sql b/src/test/regress/sql/dependency.sql index c1d81569c69..a0836a7121d 100644 --- a/src/test/regress/sql/dependency.sql +++ b/src/test/regress/sql/dependency.sql @@ -74,20 +74,36 @@ DROP OWNED BY regression_user1; -- Test REASSIGN OWNED GRANT ALL ON deptest1 TO regression_user1; +GRANT CREATE ON DATABASE regression TO regression_user1; SET SESSION AUTHORIZATION regression_user1; +CREATE SCHEMA deptest; CREATE TABLE deptest (a serial primary key, b text); +ALTER DEFAULT PRIVILEGES FOR ROLE regression_user1 IN SCHEMA deptest + GRANT ALL ON TABLES TO regression_user2; +CREATE FUNCTION deptest_func() RETURNS void LANGUAGE plpgsql + AS $$ BEGIN END; $$; +CREATE TYPE deptest_enum AS ENUM ('red'); CREATE TABLE deptest2 (f1 int); -- make a serial column the hard way CREATE SEQUENCE ss1; ALTER TABLE deptest2 ALTER f1 SET DEFAULT nextval('ss1'); ALTER SEQUENCE ss1 OWNED BY deptest2.f1; -RESET SESSION AUTHORIZATION; +-- When reassigning ownership of a composite type, its pg_class entry +-- should match +CREATE TYPE deptest_t AS (a int); +SELECT typowner = relowner +FROM pg_type JOIN pg_class c ON typrelid = c.oid WHERE typname = 'deptest_t'; + +RESET SESSION AUTHORIZATION; REASSIGN OWNED BY regression_user1 TO regression_user2; \dt deptest +SELECT typowner = relowner +FROM pg_type JOIN pg_class c ON typrelid = c.oid WHERE typname = 'deptest_t'; + -- doesn't work: grant still exists DROP USER regression_user1; DROP OWNED BY regression_user1; |