From 527c204df6f26532d01064b0306b8bfe995fafae Mon Sep 17 00:00:00 2001 From: Harsh Lunagariya Date: Wed, 20 Nov 2024 09:11:33 +0000 Subject: [PATCH 1/6] Trying something Signed-off-by: Harsh Lunagariya --- contrib/babelfishpg_tsql/src/dbcmds.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/babelfishpg_tsql/src/dbcmds.c b/contrib/babelfishpg_tsql/src/dbcmds.c index 6d80cc24a0c..febe9747a60 100644 --- a/contrib/babelfishpg_tsql/src/dbcmds.c +++ b/contrib/babelfishpg_tsql/src/dbcmds.c @@ -1508,6 +1508,7 @@ create_db_roles_in_database(const char *dbname, List *parsetree_list) Node *stmt; Oid save_userid; int save_sec_context; + bool save_creating_extension; int i = 0; char *db_owner; char *db_accessadmin; @@ -1556,6 +1557,7 @@ create_db_roles_in_database(const char *dbname, List *parsetree_list) update_GrantStmt(stmt, get_database_name(MyDatabaseId), NULL, db_ddladmin, NULL); GetUserIdAndSecContext(&save_userid, &save_sec_context); + save_creating_extension = creating_extension; PG_TRY(); { @@ -1569,6 +1571,7 @@ create_db_roles_in_database(const char *dbname, List *parsetree_list) add_to_bbf_authid_user_ext(db_ddladmin, DB_DDLADMIN, dbname, NULL, NULL, true, false, false); SetUserIdAndSecContext(get_bbf_role_admin_oid(), save_sec_context | SECURITY_LOCAL_USERID_CHANGE); + creating_extension = false; foreach(parsetree_item, parsetree_list) { @@ -1596,6 +1599,7 @@ create_db_roles_in_database(const char *dbname, List *parsetree_list) } PG_FINALLY(); { + creating_extension = save_creating_extension; SetUserIdAndSecContext(save_userid, save_sec_context); pfree(db_owner); pfree(db_accessadmin); From 41a173256b3a2c1843f5fcdec1667029cfa5e998 Mon Sep 17 00:00:00 2001 From: Harsh Lunagariya Date: Wed, 20 Nov 2024 10:29:18 +0000 Subject: [PATCH 2/6] Revert upgrade schedule changes Signed-off-by: Harsh Lunagariya --- test/JDBC/upgrade/13_6/schedule | 1 + test/JDBC/upgrade/13_7/schedule | 1 + test/JDBC/upgrade/13_8/schedule | 1 + test/JDBC/upgrade/13_9/schedule | 1 + test/JDBC/upgrade/14_10/schedule | 2 ++ test/JDBC/upgrade/14_11/schedule | 2 ++ test/JDBC/upgrade/14_12/schedule | 2 ++ test/JDBC/upgrade/14_13/schedule | 2 ++ test/JDBC/upgrade/14_15/schedule | 2 ++ test/JDBC/upgrade/14_16/schedule | 2 ++ test/JDBC/upgrade/14_3/schedule | 1 + test/JDBC/upgrade/14_5/schedule | 1 + test/JDBC/upgrade/14_6/schedule | 2 ++ test/JDBC/upgrade/14_7/schedule | 2 ++ test/JDBC/upgrade/14_8/schedule | 2 ++ test/JDBC/upgrade/14_9/schedule | 2 ++ test/JDBC/upgrade/15_1/schedule | 2 ++ test/JDBC/upgrade/15_10/schedule | 2 ++ test/JDBC/upgrade/15_11/schedule | 2 ++ test/JDBC/upgrade/15_2/schedule | 2 ++ test/JDBC/upgrade/15_3/schedule | 2 ++ test/JDBC/upgrade/15_4/schedule | 2 ++ test/JDBC/upgrade/15_5/schedule | 2 ++ test/JDBC/upgrade/15_6/schedule | 2 ++ test/JDBC/upgrade/15_7/schedule | 2 ++ test/JDBC/upgrade/15_8/schedule | 2 ++ test/JDBC/upgrade/16_1/schedule | 2 ++ test/JDBC/upgrade/16_2/schedule | 2 ++ test/JDBC/upgrade/16_3/schedule | 2 ++ test/JDBC/upgrade/16_4/schedule | 2 ++ test/JDBC/upgrade/16_6/schedule | 2 ++ 31 files changed, 56 insertions(+) diff --git a/test/JDBC/upgrade/13_6/schedule b/test/JDBC/upgrade/13_6/schedule index 699802a5f21..7038b20579e 100644 --- a/test/JDBC/upgrade/13_6/schedule +++ b/test/JDBC/upgrade/13_6/schedule @@ -119,6 +119,7 @@ BABEL-PG-SYSTEM-FUNCTIONS BABEL-PROCID BABEL-RAND BABEL-ROLE +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/13_7/schedule b/test/JDBC/upgrade/13_7/schedule index f25f359b334..ae2fec7b53c 100644 --- a/test/JDBC/upgrade/13_7/schedule +++ b/test/JDBC/upgrade/13_7/schedule @@ -117,6 +117,7 @@ BABEL-PG-SYSTEM-FUNCTIONS BABEL-PROCID BABEL-RAND BABEL-ROLE +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/13_8/schedule b/test/JDBC/upgrade/13_8/schedule index 28d5356d2f7..ca58800f9d3 100644 --- a/test/JDBC/upgrade/13_8/schedule +++ b/test/JDBC/upgrade/13_8/schedule @@ -117,6 +117,7 @@ BABEL-PG-SYSTEM-FUNCTIONS BABEL-PROCID BABEL-RAND BABEL-ROLE +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/13_9/schedule b/test/JDBC/upgrade/13_9/schedule index 18f85cd2085..aff6ec249d8 100644 --- a/test/JDBC/upgrade/13_9/schedule +++ b/test/JDBC/upgrade/13_9/schedule @@ -116,6 +116,7 @@ BABEL-PG-SYSTEM-FUNCTIONS BABEL-PROCID BABEL-RAND BABEL-ROLE +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/14_10/schedule b/test/JDBC/upgrade/14_10/schedule index b9b298a1179..04f7785d331 100644 --- a/test/JDBC/upgrade/14_10/schedule +++ b/test/JDBC/upgrade/14_10/schedule @@ -132,6 +132,7 @@ BABEL-2845 BABEL-2884 BABEL-2944 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3249 BABEL-3486 @@ -386,6 +387,7 @@ case_insensitive_collation-before-16_5-or-15_9 sys-has_perms_by_name sys-has_perms_by_name-dep BABEL_OBJECT_ID-before-16_5-or-15_9 +BABEL_SCHEMATA isc-schemata-dep AVG-Aggregate-common AVG-Aggregate-Dep diff --git a/test/JDBC/upgrade/14_11/schedule b/test/JDBC/upgrade/14_11/schedule index 61626a1ae77..b6289b91655 100644 --- a/test/JDBC/upgrade/14_11/schedule +++ b/test/JDBC/upgrade/14_11/schedule @@ -133,6 +133,7 @@ BABEL-2845 BABEL-2884 BABEL-2944 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3249 BABEL-3486 @@ -387,6 +388,7 @@ case_insensitive_collation-before-16_5-or-15_9 sys-has_perms_by_name sys-has_perms_by_name-dep BABEL_OBJECT_ID-before-16_5-or-15_9 +BABEL_SCHEMATA isc-schemata-dep AVG-Aggregate-common AVG-Aggregate-Dep diff --git a/test/JDBC/upgrade/14_12/schedule b/test/JDBC/upgrade/14_12/schedule index cf7d06bb626..1d232400fd4 100644 --- a/test/JDBC/upgrade/14_12/schedule +++ b/test/JDBC/upgrade/14_12/schedule @@ -132,6 +132,7 @@ BABEL-2845 BABEL-2884 BABEL-2944 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3249 BABEL-3486 @@ -385,6 +386,7 @@ case_insensitive_collation-before-16_5-or-15_9 sys-has_perms_by_name sys-has_perms_by_name-dep BABEL_OBJECT_ID-before-16_5-or-15_9 +BABEL_SCHEMATA isc-schemata-dep AVG-Aggregate-common AVG-Aggregate-Dep diff --git a/test/JDBC/upgrade/14_13/schedule b/test/JDBC/upgrade/14_13/schedule index ce6b4b13a6d..a785639b79c 100644 --- a/test/JDBC/upgrade/14_13/schedule +++ b/test/JDBC/upgrade/14_13/schedule @@ -132,6 +132,7 @@ BABEL-2845 BABEL-2884 BABEL-2944 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3249 BABEL-3486 @@ -385,6 +386,7 @@ case_insensitive_collation-before-16_5-or-15_9 sys-has_perms_by_name sys-has_perms_by_name-dep BABEL_OBJECT_ID-before-16_5-or-15_9 +BABEL_SCHEMATA isc-schemata-dep AVG-Aggregate-common AVG-Aggregate-Dep diff --git a/test/JDBC/upgrade/14_15/schedule b/test/JDBC/upgrade/14_15/schedule index a90299cd63c..3c70bafb128 100644 --- a/test/JDBC/upgrade/14_15/schedule +++ b/test/JDBC/upgrade/14_15/schedule @@ -132,6 +132,7 @@ BABEL-2845 BABEL-2884 BABEL-2944 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3249 BABEL-3486 @@ -385,6 +386,7 @@ case_insensitive_collation-before-16_5-or-15_9 sys-has_perms_by_name sys-has_perms_by_name-dep BABEL_OBJECT_ID-before-16_5-or-15_9 +BABEL_SCHEMATA isc-schemata-dep AVG-Aggregate-common AVG-Aggregate-Dep diff --git a/test/JDBC/upgrade/14_16/schedule b/test/JDBC/upgrade/14_16/schedule index 244315483a0..3f5322c5eb0 100644 --- a/test/JDBC/upgrade/14_16/schedule +++ b/test/JDBC/upgrade/14_16/schedule @@ -132,6 +132,7 @@ BABEL-2845 BABEL-2884 BABEL-2944 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3249 BABEL-3486 @@ -385,6 +386,7 @@ case_insensitive_collation-before-16_5-or-15_9 sys-has_perms_by_name sys-has_perms_by_name-dep BABEL_OBJECT_ID-before-16_5-or-15_9 +BABEL_SCHEMATA isc-schemata-dep AVG-Aggregate-common AVG-Aggregate-Dep diff --git a/test/JDBC/upgrade/14_3/schedule b/test/JDBC/upgrade/14_3/schedule index 9be94180b43..6c6b52875b3 100644 --- a/test/JDBC/upgrade/14_3/schedule +++ b/test/JDBC/upgrade/14_3/schedule @@ -123,6 +123,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/14_5/schedule b/test/JDBC/upgrade/14_5/schedule index 2f7889601bb..84c86a1f883 100644 --- a/test/JDBC/upgrade/14_5/schedule +++ b/test/JDBC/upgrade/14_5/schedule @@ -122,6 +122,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SP_COLUMNS_MANAGED-dep BABEL-SP_FKEYS BABEL-SP_FKEYS-dep diff --git a/test/JDBC/upgrade/14_6/schedule b/test/JDBC/upgrade/14_6/schedule index 28aad7c0ca4..71af8e640e8 100644 --- a/test/JDBC/upgrade/14_6/schedule +++ b/test/JDBC/upgrade/14_6/schedule @@ -58,6 +58,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -136,6 +137,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/14_7/schedule b/test/JDBC/upgrade/14_7/schedule index 4e7cda551a0..7345266915d 100644 --- a/test/JDBC/upgrade/14_7/schedule +++ b/test/JDBC/upgrade/14_7/schedule @@ -60,6 +60,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -149,6 +150,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/14_8/schedule b/test/JDBC/upgrade/14_8/schedule index 864946c42b8..0e8674e4188 100644 --- a/test/JDBC/upgrade/14_8/schedule +++ b/test/JDBC/upgrade/14_8/schedule @@ -60,6 +60,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -147,6 +148,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/14_9/schedule b/test/JDBC/upgrade/14_9/schedule index 09fba72615c..e7e1abdd236 100644 --- a/test/JDBC/upgrade/14_9/schedule +++ b/test/JDBC/upgrade/14_9/schedule @@ -132,6 +132,7 @@ BABEL-2845 BABEL-2884 BABEL-2944 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3249 BABEL-3486 @@ -386,6 +387,7 @@ case_insensitive_collation-before-16_5-or-15_9 sys-has_perms_by_name sys-has_perms_by_name-dep BABEL_OBJECT_ID-before-16_5-or-15_9 +BABEL_SCHEMATA isc-schemata-dep AVG-Aggregate-common AVG-Aggregate-Dep diff --git a/test/JDBC/upgrade/15_1/schedule b/test/JDBC/upgrade/15_1/schedule index b4641fe7bcb..bff93795641 100644 --- a/test/JDBC/upgrade/15_1/schedule +++ b/test/JDBC/upgrade/15_1/schedule @@ -58,6 +58,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -135,6 +136,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_10/schedule b/test/JDBC/upgrade/15_10/schedule index 6ae39827539..62bb5c084ae 100644 --- a/test/JDBC/upgrade/15_10/schedule +++ b/test/JDBC/upgrade/15_10/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_11/schedule b/test/JDBC/upgrade/15_11/schedule index ac6b961089d..ea1913223ba 100644 --- a/test/JDBC/upgrade/15_11/schedule +++ b/test/JDBC/upgrade/15_11/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_2/schedule b/test/JDBC/upgrade/15_2/schedule index dfc972fedf0..85dc144d8ef 100644 --- a/test/JDBC/upgrade/15_2/schedule +++ b/test/JDBC/upgrade/15_2/schedule @@ -60,6 +60,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -148,6 +149,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_3/schedule b/test/JDBC/upgrade/15_3/schedule index 123b1a8b7c3..18ca4bfdac0 100644 --- a/test/JDBC/upgrade/15_3/schedule +++ b/test/JDBC/upgrade/15_3/schedule @@ -62,6 +62,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -158,6 +159,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_4/schedule b/test/JDBC/upgrade/15_4/schedule index 8fa1c97c0fe..d41e7b0e7a4 100644 --- a/test/JDBC/upgrade/15_4/schedule +++ b/test/JDBC/upgrade/15_4/schedule @@ -62,6 +62,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -160,6 +161,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_5/schedule b/test/JDBC/upgrade/15_5/schedule index 1f1809cb909..555984dd41c 100644 --- a/test/JDBC/upgrade/15_5/schedule +++ b/test/JDBC/upgrade/15_5/schedule @@ -62,6 +62,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010-before-15_6 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -164,6 +165,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_6/schedule b/test/JDBC/upgrade/15_6/schedule index a9e06b9c328..bbce0805c22 100644 --- a/test/JDBC/upgrade/15_6/schedule +++ b/test/JDBC/upgrade/15_6/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_7/schedule b/test/JDBC/upgrade/15_7/schedule index f937b7107b1..461a7e4554c 100644 --- a/test/JDBC/upgrade/15_7/schedule +++ b/test/JDBC/upgrade/15_7/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -168,6 +169,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/15_8/schedule b/test/JDBC/upgrade/15_8/schedule index a856d2134ad..221946ad46f 100644 --- a/test/JDBC/upgrade/15_8/schedule +++ b/test/JDBC/upgrade/15_8/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/16_1/schedule b/test/JDBC/upgrade/16_1/schedule index a61e52fd316..913b988ed25 100644 --- a/test/JDBC/upgrade/16_1/schedule +++ b/test/JDBC/upgrade/16_1/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -166,6 +167,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/16_2/schedule b/test/JDBC/upgrade/16_2/schedule index b161d8ef699..24aed058b9d 100644 --- a/test/JDBC/upgrade/16_2/schedule +++ b/test/JDBC/upgrade/16_2/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/16_3/schedule b/test/JDBC/upgrade/16_3/schedule index 0eba293d169..1b63b62b236 100644 --- a/test/JDBC/upgrade/16_3/schedule +++ b/test/JDBC/upgrade/16_3/schedule @@ -63,6 +63,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/16_4/schedule b/test/JDBC/upgrade/16_4/schedule index bc1f1692c32..586ce8aa779 100644 --- a/test/JDBC/upgrade/16_4/schedule +++ b/test/JDBC/upgrade/16_4/schedule @@ -62,6 +62,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep diff --git a/test/JDBC/upgrade/16_6/schedule b/test/JDBC/upgrade/16_6/schedule index 49b2e5ff3af..87f222392b4 100644 --- a/test/JDBC/upgrade/16_6/schedule +++ b/test/JDBC/upgrade/16_6/schedule @@ -62,6 +62,7 @@ BABEL-3000 BABEL-3000-dep BABEL-3010 BABEL-3116 +BABEL-3117 BABEL-3118 BABEL-3121 BABEL-3144 @@ -167,6 +168,7 @@ BABEL-PROCID BABEL-RAND BABEL-ROLE BABEL-ROLE-MEMBER +BABEL_SCHEMATA BABEL-SPCOLUMNS BABEL-SPCOLUMNS-dep BABEL-SP_COLUMNS_MANAGED-dep From f43dd17934e3922b32e05f625cfaf961b6e4dee6 Mon Sep 17 00:00:00 2001 From: Harsh Lunagariya Date: Wed, 20 Nov 2024 18:48:49 +0000 Subject: [PATCH 3/6] Update existing upgrade scripts - 1 Signed-off-by: Harsh Lunagariya --- .../babelfishpg_tsql--3.4.0--4.0.0.sql | 4 +++ .../babelfishpg_tsql--3.5.0--4.0.0.sql | 5 ++++ .../babelfishpg_tsql--3.6.0--4.0.0.sql | 4 +++ .../babelfishpg_tsql--3.7.0--4.0.0.sql | 4 +++ .../babelfishpg_tsql--3.8.0--4.0.0.sql | 4 +++ .../babelfishpg_tsql--3.9.0--4.0.0.sql | 6 ++++ .../babelfishpg_tsql--4.4.0--5.0.0.sql | 4 ++- contrib/babelfishpg_tsql/src/dbcmds.c | 1 - contrib/babelfishpg_tsql/src/guc.c | 28 +++++++++++++++++++ contrib/babelfishpg_tsql/src/hooks.c | 16 +++++++++++ contrib/babelfishpg_tsql/src/pltsql.h | 2 ++ .../expected_drop.out | 14 +++++----- 12 files changed, 83 insertions(+), 9 deletions(-) diff --git a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.4.0--4.0.0.sql b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.4.0--4.0.0.sql index a9ef026b794..b74c8862034 100644 --- a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.4.0--4.0.0.sql +++ b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.4.0--4.0.0.sql @@ -72,7 +72,11 @@ BEGIN RAISE EXCEPTION 'Role "bbf_role_admin" already exists.'; ELSE EXECUTE format('CREATE ROLE bbf_role_admin WITH CREATEDB CREATEROLE INHERIT PASSWORD NULL'); + + SET babelfishpg_tsql.disable_storing_init_privs = TRUE; EXECUTE format('GRANT CREATE ON DATABASE %s TO bbf_role_admin WITH GRANT OPTION', CURRENT_DATABASE()); + RESET babelfishpg_tsql.disable_storing_init_privs; + CALL sys.babel_initialize_logins('bbf_role_admin'); FOR temprow IN SELECT rolname FROM sys.babelfish_authid_login_ext WHERE rolname != 'bbf_role_admin' UNION SELECT rolname FROM sys.babelfish_authid_user_ext diff --git a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.5.0--4.0.0.sql b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.5.0--4.0.0.sql index 0b216bb778e..44085008b6f 100644 --- a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.5.0--4.0.0.sql +++ b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.5.0--4.0.0.sql @@ -45,7 +45,12 @@ BEGIN RAISE EXCEPTION 'Role "bbf_role_admin" already exists.'; ELSE EXECUTE format('CREATE ROLE bbf_role_admin WITH CREATEDB CREATEROLE INHERIT PASSWORD NULL'); + + SET babelfishpg_tsql.disable_storing_init_privs = TRUE; EXECUTE format('GRANT CREATE ON DATABASE %s TO bbf_role_admin WITH GRANT OPTION', CURRENT_DATABASE()); + RESET babelfishpg_tsql.disable_storing_init_privs; + + CALL sys.babel_initialize_logins('bbf_role_admin'); FOR temprow IN SELECT rolname FROM sys.babelfish_authid_login_ext WHERE rolname != 'bbf_role_admin' UNION SELECT rolname FROM sys.babelfish_authid_user_ext diff --git a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.6.0--4.0.0.sql b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.6.0--4.0.0.sql index 0b216bb778e..c2bcf741c20 100644 --- a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.6.0--4.0.0.sql +++ b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.6.0--4.0.0.sql @@ -45,7 +45,11 @@ BEGIN RAISE EXCEPTION 'Role "bbf_role_admin" already exists.'; ELSE EXECUTE format('CREATE ROLE bbf_role_admin WITH CREATEDB CREATEROLE INHERIT PASSWORD NULL'); + + SET babelfishpg_tsql.disable_storing_init_privs = TRUE; EXECUTE format('GRANT CREATE ON DATABASE %s TO bbf_role_admin WITH GRANT OPTION', CURRENT_DATABASE()); + RESET babelfishpg_tsql.disable_storing_init_privs; + CALL sys.babel_initialize_logins('bbf_role_admin'); FOR temprow IN SELECT rolname FROM sys.babelfish_authid_login_ext WHERE rolname != 'bbf_role_admin' UNION SELECT rolname FROM sys.babelfish_authid_user_ext diff --git a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.7.0--4.0.0.sql b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.7.0--4.0.0.sql index 0b216bb778e..c2bcf741c20 100644 --- a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.7.0--4.0.0.sql +++ b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.7.0--4.0.0.sql @@ -45,7 +45,11 @@ BEGIN RAISE EXCEPTION 'Role "bbf_role_admin" already exists.'; ELSE EXECUTE format('CREATE ROLE bbf_role_admin WITH CREATEDB CREATEROLE INHERIT PASSWORD NULL'); + + SET babelfishpg_tsql.disable_storing_init_privs = TRUE; EXECUTE format('GRANT CREATE ON DATABASE %s TO bbf_role_admin WITH GRANT OPTION', CURRENT_DATABASE()); + RESET babelfishpg_tsql.disable_storing_init_privs; + CALL sys.babel_initialize_logins('bbf_role_admin'); FOR temprow IN SELECT rolname FROM sys.babelfish_authid_login_ext WHERE rolname != 'bbf_role_admin' UNION SELECT rolname FROM sys.babelfish_authid_user_ext diff --git a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.8.0--4.0.0.sql b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.8.0--4.0.0.sql index 0b216bb778e..c2bcf741c20 100644 --- a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.8.0--4.0.0.sql +++ b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.8.0--4.0.0.sql @@ -45,7 +45,11 @@ BEGIN RAISE EXCEPTION 'Role "bbf_role_admin" already exists.'; ELSE EXECUTE format('CREATE ROLE bbf_role_admin WITH CREATEDB CREATEROLE INHERIT PASSWORD NULL'); + + SET babelfishpg_tsql.disable_storing_init_privs = TRUE; EXECUTE format('GRANT CREATE ON DATABASE %s TO bbf_role_admin WITH GRANT OPTION', CURRENT_DATABASE()); + RESET babelfishpg_tsql.disable_storing_init_privs; + CALL sys.babel_initialize_logins('bbf_role_admin'); FOR temprow IN SELECT rolname FROM sys.babelfish_authid_login_ext WHERE rolname != 'bbf_role_admin' UNION SELECT rolname FROM sys.babelfish_authid_user_ext diff --git a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.9.0--4.0.0.sql b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.9.0--4.0.0.sql index 0b216bb778e..d744d8ce178 100644 --- a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.9.0--4.0.0.sql +++ b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--3.9.0--4.0.0.sql @@ -31,6 +31,7 @@ $$ end; $$; + -- Give bbf_role_admin privileges on every Babelfish role DO LANGUAGE plpgsql @@ -45,7 +46,11 @@ BEGIN RAISE EXCEPTION 'Role "bbf_role_admin" already exists.'; ELSE EXECUTE format('CREATE ROLE bbf_role_admin WITH CREATEDB CREATEROLE INHERIT PASSWORD NULL'); + + SET babelfishpg_tsql.disable_storing_init_privs = TRUE; EXECUTE format('GRANT CREATE ON DATABASE %s TO bbf_role_admin WITH GRANT OPTION', CURRENT_DATABASE()); + RESET babelfishpg_tsql.disable_storing_init_privs; + CALL sys.babel_initialize_logins('bbf_role_admin'); FOR temprow IN SELECT rolname FROM sys.babelfish_authid_login_ext WHERE rolname != 'bbf_role_admin' UNION SELECT rolname FROM sys.babelfish_authid_user_ext @@ -57,6 +62,7 @@ BEGIN END; $$; + CREATE OR REPLACE VIEW sys.server_principals AS SELECT CAST(Ext.orig_loginname AS sys.SYSNAME) AS name, diff --git a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--4.4.0--5.0.0.sql b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--4.4.0--5.0.0.sql index 394d92490c3..1d94b149cd0 100644 --- a/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--4.4.0--5.0.0.sql +++ b/contrib/babelfishpg_tsql/sql/upgrades/babelfishpg_tsql--4.4.0--5.0.0.sql @@ -143,7 +143,9 @@ CALL sys.babelfish_revoke_guest_from_mapped_logins(); */ DO $$ BEGIN - EXECUTE format('REVOKE GRANT OPTION FOR CREATE ON DATABASE %s FROM bbf_role_admin; ', CURRENT_DATABASE()); + SET babelfishpg_tsql.disable_storing_init_privs = TRUE; + EXECUTE format('REVOKE GRANT OPTION FOR CREATE ON DATABASE %s FROM bbf_role_admin; ', CURRENT_DATABASE()); + RESET babelfishpg_tsql.disable_storing_init_privs; END; $$ LANGUAGE plpgsql; diff --git a/contrib/babelfishpg_tsql/src/dbcmds.c b/contrib/babelfishpg_tsql/src/dbcmds.c index febe9747a60..686e8dd34ca 100644 --- a/contrib/babelfishpg_tsql/src/dbcmds.c +++ b/contrib/babelfishpg_tsql/src/dbcmds.c @@ -1695,4 +1695,3 @@ create_db_roles_during_upgrade(PG_FUNCTION_ARGS) PG_RETURN_INT32(0); } - diff --git a/contrib/babelfishpg_tsql/src/guc.c b/contrib/babelfishpg_tsql/src/guc.c index d3cf909523b..053422e44a0 100644 --- a/contrib/babelfishpg_tsql/src/guc.c +++ b/contrib/babelfishpg_tsql/src/guc.c @@ -1,5 +1,6 @@ #include "postgres.h" #include "commands/explain.h" +#include "commands/extension.h" #include "parser/scansup.h" /* downcase_identifier */ #include "utils/guc.h" #include "miscadmin.h" @@ -69,6 +70,7 @@ char *pltsql_host_release = NULL; char *pltsql_host_service_pack_level = NULL; bool pltsql_enable_create_alter_view_from_pg = false; +bool pltsql_disable_storing_init_privs = false; static const struct config_enum_entry explain_format_options[] = { {"text", EXPLAIN_FORMAT_TEXT, false}, @@ -612,6 +614,22 @@ assign_datefirst(int newval, void *extra) (*pltsql_protocol_plugin_ptr)->set_guc_stat_var("babelfishpg_tsql.datefirst", false, NULL, newval); } +static void +assign_disable_storing_init_privs(bool newval, void *extra) +{ + if (superuser()) + return; + + if (newval == pltsql_disable_storing_init_privs) + return; + + if (!creating_extension || + (OidIsValid(CurrentExtensionObject) && CurrentExtensionObject != get_extension_oid("babelfishpg_tsql", true))) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("babelfishpg_tsql.disable_storing_init_privs can only be modified in upgrade script"))); +} + void define_escape_hatch_variables(void); @@ -1232,6 +1250,16 @@ define_custom_variables(void) PGC_SUSET, GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_AUTO_FILE, NULL, NULL, NULL); + + DefineCustomBoolVariable("babelfishpg_tsql.disable_storing_init_privs", + gettext_noop("Disable storing initial privileges while " + "CREATE/ALTER Babelfish TSQL extension"), + NULL, + &pltsql_disable_storing_init_privs, + false, + PGC_USERSET, + GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_AUTO_FILE, + NULL, assign_disable_storing_init_privs, NULL); } int escape_hatch_storage_options = EH_IGNORE; diff --git a/contrib/babelfishpg_tsql/src/hooks.c b/contrib/babelfishpg_tsql/src/hooks.c index 33182aaad7d..180f10380c8 100644 --- a/contrib/babelfishpg_tsql/src/hooks.c +++ b/contrib/babelfishpg_tsql/src/hooks.c @@ -28,6 +28,7 @@ #include "commands/copy.h" #include "commands/dbcommands.h" #include "commands/explain.h" +#include "commands/extension.h" #include "commands/tablecmds.h" #include "commands/trigger.h" #include "commands/view.h" @@ -186,6 +187,7 @@ static void is_function_pg_stat_valid(FunctionCallInfo fcinfo, PgStat_FunctionCallUsage *fcu, char prokind, bool finalize); static AclResult pltsql_ExecFuncProc_AclCheck(Oid funcid); +static bool check_store_init_privs_flag(void); /***************************************** * Replication Hooks @@ -513,6 +515,8 @@ InstallExtendedHooks(void) pltsql_get_object_owner_hook = pltsql_get_object_owner; is_bbf_db_ddladmin_operation_hook = is_bbf_db_ddladmin_operation; + + pltsql_check_store_init_privs_flag_hook = check_store_init_privs_flag; } void @@ -588,6 +592,7 @@ UninstallExtendedHooks(void) handle_param_collation_hook = NULL; handle_default_collation_hook = NULL; pltsql_get_object_identity_event_trigger_hook = NULL; + pltsql_check_store_init_privs_flag_hook = NULL; } /***************************************** @@ -5845,3 +5850,14 @@ is_bbf_db_ddladmin_operation(Oid namespaceId) return false; } + +static bool +check_store_init_privs_flag(void) +{ + if (!(creating_extension && + OidIsValid(CurrentExtensionObject) && + CurrentExtensionObject == get_extension_oid("babelfishpg_tsql", true))) + return false; + + return pltsql_disable_storing_init_privs; +} diff --git a/contrib/babelfishpg_tsql/src/pltsql.h b/contrib/babelfishpg_tsql/src/pltsql.h index fba89da533b..5def140443b 100644 --- a/contrib/babelfishpg_tsql/src/pltsql.h +++ b/contrib/babelfishpg_tsql/src/pltsql.h @@ -2346,4 +2346,6 @@ extern void init_special_function_list(void); */ extern char *tsql_format_type_extended(Oid type_oid, int32 typemod, bits16 flags); +extern bool pltsql_disable_storing_init_privs; + #endif /* PLTSQL_H */ diff --git a/test/python/expected/sql_validation_framework/expected_drop.out b/test/python/expected/sql_validation_framework/expected_drop.out index 8712a71aa55..61552a079d8 100644 --- a/test/python/expected/sql_validation_framework/expected_drop.out +++ b/test/python/expected/sql_validation_framework/expected_drop.out @@ -10,12 +10,6 @@ Unexpected drop found for cast in file babelfishpg_common--1.0.0--1.1.0.sql Unexpected drop found for cast in file babelfishpg_common--3.1.0--3.2.0.sql Unexpected drop found for function get_bbf_binary_ops_count in file babelfishpg_common--2.3.0--2.4.0.sql Unexpected drop found for function get_bbf_binary_ops_count in file babelfishpg_common--3.0.0--3.1.0.sql -Unexpected drop found for function sys.babelfishpg_common_get_babel_server_collation_oid in file babelfishpg_common--2.2.0--2.3.0.sql -Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.2.0--2.3.0.sql -Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.3.0--3.0.0.sql -Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.4.0--3.0.0.sql -Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.5.0--3.0.0.sql -Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.6.0--3.0.0.sql Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.0.0--2.1.0.sql Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.3.0--3.0.0.sql Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_common--2.4.0--3.0.0.sql @@ -39,11 +33,17 @@ Unexpected drop found for function sys.babelfish_update_server_collation_name in Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--3.7.0--4.0.0.sql Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--3.8.0--4.0.0.sql Unexpected drop found for function sys.babelfish_update_server_collation_name in file babelfishpg_tsql--3.9.0--4.0.0.sql +Unexpected drop found for function sys.babelfishpg_common_get_babel_server_collation_oid in file babelfishpg_common--2.2.0--2.3.0.sql +Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.2.0--2.3.0.sql +Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.3.0--3.0.0.sql +Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.4.0--3.0.0.sql +Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.5.0--3.0.0.sql +Unexpected drop found for function sys.babelfishpg_tsql_get_babel_server_collation_oid in file babelfishpg_tsql--2.6.0--3.0.0.sql Unexpected drop found for function sys.pg_extension_config_remove in file babelfishpg_tsql--3.1.0--3.2.0.sql +Unexpected drop found for operator sys.+ in file babelfishpg_common--1.1.0--1.2.0.sql Unexpected drop found for operator sys./ in file babelfishpg_common--1.1.0--1.2.0.sql Unexpected drop found for operator sys./ in file babelfishpg_common--1.1.0--1.2.0.sql Unexpected drop found for operator sys./ in file babelfishpg_common--1.1.0--1.2.0.sql -Unexpected drop found for operator sys.+ in file babelfishpg_common--1.1.0--1.2.0.sql Unexpected drop found for procedure babelfish_drop_deprecated_opclass in file babelfishpg_common--1.0.0--1.1.0.sql Unexpected drop found for procedure sys.babel_create_guest_schemas in file babelfishpg_tsql--2.3.0--2.4.0.sql Unexpected drop found for procedure sys.babel_create_guest_schemas in file babelfishpg_tsql--3.0.0--3.1.0.sql From 0c06909519e7ca9cb3ec0819724140fb3ca1a86e Mon Sep 17 00:00:00 2001 From: Harsh Lunagariya Date: Mon, 9 Dec 2024 18:25:24 +0000 Subject: [PATCH 4/6] Add test Signed-off-by: Harsh Lunagariya --- test/JDBC/input/init_privs-vu-cleanup.mix | 0 test/JDBC/input/init_privs-vu-prepare.mix | 0 test/JDBC/input/init_privs-vu-verify.mix | 77 +++++++++++++++++++++++ test/JDBC/upgrade/13_4/schedule | 1 + test/JDBC/upgrade/14_3/schedule | 1 + test/JDBC/upgrade/15_1/schedule | 1 + test/JDBC/upgrade/16_1/schedule | 1 + test/JDBC/upgrade/latest/schedule | 1 + 8 files changed, 82 insertions(+) create mode 100644 test/JDBC/input/init_privs-vu-cleanup.mix create mode 100644 test/JDBC/input/init_privs-vu-prepare.mix create mode 100644 test/JDBC/input/init_privs-vu-verify.mix diff --git a/test/JDBC/input/init_privs-vu-cleanup.mix b/test/JDBC/input/init_privs-vu-cleanup.mix new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/JDBC/input/init_privs-vu-prepare.mix b/test/JDBC/input/init_privs-vu-prepare.mix new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/JDBC/input/init_privs-vu-verify.mix b/test/JDBC/input/init_privs-vu-verify.mix new file mode 100644 index 00000000000..a0bc6959b8f --- /dev/null +++ b/test/JDBC/input/init_privs-vu-verify.mix @@ -0,0 +1,77 @@ +-- psql +WITH object_info AS ( + SELECT + ip.objoid, + ip.classoid, + ip.objsubid, + COALESCE( + d.datname, + n.nspname, + c.relname, + p.proname, + t.typname, + o.oprname, + am.amname, + ts.cfgname, + fd.fdwname, + fs.srvname, + e.extname + ) AS object_name, + CASE + WHEN d.datname IS NOT NULL THEN 'Database' + WHEN n.nspname IS NOT NULL THEN 'Schema' + WHEN c.relname IS NOT NULL THEN + CASE c.relkind + WHEN 'r' THEN 'Table' + WHEN 'i' THEN 'Index' + WHEN 'S' THEN 'Sequence' + WHEN 'v' THEN 'View' + WHEN 'm' THEN 'Materialized View' + WHEN 'c' THEN 'Composite Type' + WHEN 't' THEN 'TOAST Table' + WHEN 'f' THEN 'Foreign Table' + ELSE 'Other Relation' + END + WHEN p.proname IS NOT NULL THEN + CASE p.prokind + WHEN 'f' THEN 'Function' + WHEN 'p' THEN 'Procedure' + WHEN 'a' THEN 'Aggregate Function' + WHEN 'w' THEN 'Window Function' + ELSE 'Other Routine' + END + WHEN t.typname IS NOT NULL THEN 'Type' + WHEN o.oprname IS NOT NULL THEN 'Operator' + WHEN am.amname IS NOT NULL THEN 'Access Method' + WHEN ts.cfgname IS NOT NULL THEN 'Text Search Configuration' + WHEN fd.fdwname IS NOT NULL THEN 'Foreign Data Wrapper' + WHEN fs.srvname IS NOT NULL THEN 'Foreign Server' + WHEN e.extname IS NOT NULL THEN 'Extension' + ELSE 'Other' + END AS object_type, + CASE + WHEN d.datname IS NOT NULL THEN NULL + WHEN n.nspname IS NOT NULL THEN NULL + ELSE COALESCE(nc.nspname, np.nspname, nt.nspname, no.nspname, nts.nspname) + END AS schema_name + FROM pg_init_privs ip + LEFT JOIN pg_database d ON ip.objoid = d.oid AND ip.classoid = d.tableoid + LEFT JOIN pg_namespace n ON ip.objoid = n.oid AND ip.classoid = n.tableoid + LEFT JOIN pg_class c ON ip.objoid = c.oid AND ip.classoid = c.tableoid + LEFT JOIN pg_proc p ON ip.objoid = p.oid AND ip.classoid = p.tableoid + LEFT JOIN pg_type t ON ip.objoid = t.oid AND ip.classoid = t.tableoid + LEFT JOIN pg_operator o ON ip.objoid = o.oid AND ip.classoid = o.tableoid + LEFT JOIN pg_am am ON ip.objoid = am.oid AND ip.classoid = am.tableoid + LEFT JOIN pg_ts_config ts ON ip.objoid = ts.oid AND ip.classoid = ts.tableoid + LEFT JOIN pg_foreign_data_wrapper fd ON ip.objoid = fd.oid AND ip.classoid = fd.tableoid + LEFT JOIN pg_foreign_server fs ON ip.objoid = fs.oid AND ip.classoid = fs.tableoid + LEFT JOIN pg_extension e ON ip.objoid = e.oid AND ip.classoid = e.tableoid + LEFT JOIN pg_namespace nc ON c.relnamespace = nc.oid + LEFT JOIN pg_namespace np ON p.pronamespace = np.oid + LEFT JOIN pg_namespace nt ON t.typnamespace = nt.oid + LEFT JOIN pg_namespace no ON o.oprnamespace = no.oid + LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid + WHERE ip.privtype = 'e' +) +SELECT * FROM object_info +ORDER BY object_type, schema_name NULLS FIRST, object_name; diff --git a/test/JDBC/upgrade/13_4/schedule b/test/JDBC/upgrade/13_4/schedule index f8764560328..8e52fae449c 100644 --- a/test/JDBC/upgrade/13_4/schedule +++ b/test/JDBC/upgrade/13_4/schedule @@ -248,6 +248,7 @@ string_agg-before-14_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space +init_privs binary-datatype-operators BABEL-CASE_EXPR-before-16_5-or-15_9 BABEL-5059-before-14_7-or-15_2 diff --git a/test/JDBC/upgrade/14_3/schedule b/test/JDBC/upgrade/14_3/schedule index 6c6b52875b3..fac082a6943 100644 --- a/test/JDBC/upgrade/14_3/schedule +++ b/test/JDBC/upgrade/14_3/schedule @@ -381,6 +381,7 @@ getdate-before-15_9-or-16_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space +init_privs binary-datatype-operators BABEL-5059-before-14_7-or-15_2 cast-varchar-to-time diff --git a/test/JDBC/upgrade/15_1/schedule b/test/JDBC/upgrade/15_1/schedule index bff93795641..8d5f04f1cd8 100644 --- a/test/JDBC/upgrade/15_1/schedule +++ b/test/JDBC/upgrade/15_1/schedule @@ -429,6 +429,7 @@ string_agg-before-15_9-or-16_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space +init_privs binary-datatype-operators BABEL-5059-before-14_7-or-15_2 cast-varchar-to-time diff --git a/test/JDBC/upgrade/16_1/schedule b/test/JDBC/upgrade/16_1/schedule index 913b988ed25..ace30283fc9 100644 --- a/test/JDBC/upgrade/16_1/schedule +++ b/test/JDBC/upgrade/16_1/schedule @@ -536,6 +536,7 @@ getdate-before-15_9-or-16_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space +init_privs replace-before-15_8-or-16_4 binary-datatype-operators BABEL-5059_before_16_5 diff --git a/test/JDBC/upgrade/latest/schedule b/test/JDBC/upgrade/latest/schedule index f298d423020..dca3b7e0d71 100644 --- a/test/JDBC/upgrade/latest/schedule +++ b/test/JDBC/upgrade/latest/schedule @@ -569,6 +569,7 @@ concat_ws sys_sequences replicate space +init_privs SELECT_INTO_TEST binary-datatype-operators securityadmin_role From 108d9cea5f7737fb446c77f56ad3a0daf148456a Mon Sep 17 00:00:00 2001 From: Harsh Lunagariya Date: Mon, 9 Dec 2024 18:32:05 +0000 Subject: [PATCH 5/6] Add tests Signed-off-by: Harsh Lunagariya --- test/JDBC/input/init_privs-vu-prepare.mix | 75 +++++++++++++++++++ test/JDBC/input/init_privs-vu-verify.mix | 6 +- .../input/zzzz_init_privs_13_6-vu-prepare.mix | 75 +++++++++++++++++++ .../input/zzzz_init_privs_13_6-vu-verify.mix | 75 +++++++++++++++++++ test/JDBC/upgrade/13_6/schedule | 1 + .../13_6/aaaa_init_privs-vu-verify.mix | 75 +++++++++++++++++++ 6 files changed, 303 insertions(+), 4 deletions(-) create mode 100644 test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix create mode 100644 test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix create mode 100644 test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix diff --git a/test/JDBC/input/init_privs-vu-prepare.mix b/test/JDBC/input/init_privs-vu-prepare.mix index e69de29bb2d..ba7ee1bdf90 100644 --- a/test/JDBC/input/init_privs-vu-prepare.mix +++ b/test/JDBC/input/init_privs-vu-prepare.mix @@ -0,0 +1,75 @@ +-- psql +WITH object_info AS ( + SELECT + COALESCE( + d.datname, + n.nspname, + c.relname, + p.proname, + t.typname, + o.oprname, + am.amname, + ts.cfgname, + fd.fdwname, + fs.srvname, + e.extname + ) AS object_name, + CASE + WHEN d.datname IS NOT NULL THEN 'Database' + WHEN n.nspname IS NOT NULL THEN 'Schema' + WHEN c.relname IS NOT NULL THEN + CASE c.relkind + WHEN 'r' THEN 'Table' + WHEN 'i' THEN 'Index' + WHEN 'S' THEN 'Sequence' + WHEN 'v' THEN 'View' + WHEN 'm' THEN 'Materialized View' + WHEN 'c' THEN 'Composite Type' + WHEN 't' THEN 'TOAST Table' + WHEN 'f' THEN 'Foreign Table' + ELSE 'Other Relation' + END + WHEN p.proname IS NOT NULL THEN + CASE p.prokind + WHEN 'f' THEN 'Function' + WHEN 'p' THEN 'Procedure' + WHEN 'a' THEN 'Aggregate Function' + WHEN 'w' THEN 'Window Function' + ELSE 'Other Routine' + END + WHEN t.typname IS NOT NULL THEN 'Type' + WHEN o.oprname IS NOT NULL THEN 'Operator' + WHEN am.amname IS NOT NULL THEN 'Access Method' + WHEN ts.cfgname IS NOT NULL THEN 'Text Search Configuration' + WHEN fd.fdwname IS NOT NULL THEN 'Foreign Data Wrapper' + WHEN fs.srvname IS NOT NULL THEN 'Foreign Server' + WHEN e.extname IS NOT NULL THEN 'Extension' + ELSE 'Other' + END AS object_type, + CASE + WHEN d.datname IS NOT NULL THEN NULL + WHEN n.nspname IS NOT NULL THEN NULL + ELSE COALESCE(nc.nspname, np.nspname, nt.nspname, no.nspname, nts.nspname) + END AS schema_name + FROM pg_init_privs ip + LEFT JOIN pg_database d ON ip.objoid = d.oid AND ip.classoid = d.tableoid + LEFT JOIN pg_namespace n ON ip.objoid = n.oid AND ip.classoid = n.tableoid + LEFT JOIN pg_class c ON ip.objoid = c.oid AND ip.classoid = c.tableoid + LEFT JOIN pg_proc p ON ip.objoid = p.oid AND ip.classoid = p.tableoid + LEFT JOIN pg_type t ON ip.objoid = t.oid AND ip.classoid = t.tableoid + LEFT JOIN pg_operator o ON ip.objoid = o.oid AND ip.classoid = o.tableoid + LEFT JOIN pg_am am ON ip.objoid = am.oid AND ip.classoid = am.tableoid + LEFT JOIN pg_ts_config ts ON ip.objoid = ts.oid AND ip.classoid = ts.tableoid + LEFT JOIN pg_foreign_data_wrapper fd ON ip.objoid = fd.oid AND ip.classoid = fd.tableoid + LEFT JOIN pg_foreign_server fs ON ip.objoid = fs.oid AND ip.classoid = fs.tableoid + LEFT JOIN pg_extension e ON ip.objoid = e.oid AND ip.classoid = e.tableoid + LEFT JOIN pg_namespace nc ON c.relnamespace = nc.oid + LEFT JOIN pg_namespace np ON p.pronamespace = np.oid + LEFT JOIN pg_namespace nt ON t.typnamespace = nt.oid + LEFT JOIN pg_namespace no ON o.oprnamespace = no.oid + LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid + WHERE ip.privtype = 'e' +) +SELECT * FROM object_info WHERE schema_name != 'sys' +ORDER BY object_type, schema_name NULLS FIRST, object_name; +GO \ No newline at end of file diff --git a/test/JDBC/input/init_privs-vu-verify.mix b/test/JDBC/input/init_privs-vu-verify.mix index a0bc6959b8f..ba7ee1bdf90 100644 --- a/test/JDBC/input/init_privs-vu-verify.mix +++ b/test/JDBC/input/init_privs-vu-verify.mix @@ -1,9 +1,6 @@ -- psql WITH object_info AS ( SELECT - ip.objoid, - ip.classoid, - ip.objsubid, COALESCE( d.datname, n.nspname, @@ -73,5 +70,6 @@ WITH object_info AS ( LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid WHERE ip.privtype = 'e' ) -SELECT * FROM object_info +SELECT * FROM object_info WHERE schema_name != 'sys' ORDER BY object_type, schema_name NULLS FIRST, object_name; +GO \ No newline at end of file diff --git a/test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix b/test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix new file mode 100644 index 00000000000..ba7ee1bdf90 --- /dev/null +++ b/test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix @@ -0,0 +1,75 @@ +-- psql +WITH object_info AS ( + SELECT + COALESCE( + d.datname, + n.nspname, + c.relname, + p.proname, + t.typname, + o.oprname, + am.amname, + ts.cfgname, + fd.fdwname, + fs.srvname, + e.extname + ) AS object_name, + CASE + WHEN d.datname IS NOT NULL THEN 'Database' + WHEN n.nspname IS NOT NULL THEN 'Schema' + WHEN c.relname IS NOT NULL THEN + CASE c.relkind + WHEN 'r' THEN 'Table' + WHEN 'i' THEN 'Index' + WHEN 'S' THEN 'Sequence' + WHEN 'v' THEN 'View' + WHEN 'm' THEN 'Materialized View' + WHEN 'c' THEN 'Composite Type' + WHEN 't' THEN 'TOAST Table' + WHEN 'f' THEN 'Foreign Table' + ELSE 'Other Relation' + END + WHEN p.proname IS NOT NULL THEN + CASE p.prokind + WHEN 'f' THEN 'Function' + WHEN 'p' THEN 'Procedure' + WHEN 'a' THEN 'Aggregate Function' + WHEN 'w' THEN 'Window Function' + ELSE 'Other Routine' + END + WHEN t.typname IS NOT NULL THEN 'Type' + WHEN o.oprname IS NOT NULL THEN 'Operator' + WHEN am.amname IS NOT NULL THEN 'Access Method' + WHEN ts.cfgname IS NOT NULL THEN 'Text Search Configuration' + WHEN fd.fdwname IS NOT NULL THEN 'Foreign Data Wrapper' + WHEN fs.srvname IS NOT NULL THEN 'Foreign Server' + WHEN e.extname IS NOT NULL THEN 'Extension' + ELSE 'Other' + END AS object_type, + CASE + WHEN d.datname IS NOT NULL THEN NULL + WHEN n.nspname IS NOT NULL THEN NULL + ELSE COALESCE(nc.nspname, np.nspname, nt.nspname, no.nspname, nts.nspname) + END AS schema_name + FROM pg_init_privs ip + LEFT JOIN pg_database d ON ip.objoid = d.oid AND ip.classoid = d.tableoid + LEFT JOIN pg_namespace n ON ip.objoid = n.oid AND ip.classoid = n.tableoid + LEFT JOIN pg_class c ON ip.objoid = c.oid AND ip.classoid = c.tableoid + LEFT JOIN pg_proc p ON ip.objoid = p.oid AND ip.classoid = p.tableoid + LEFT JOIN pg_type t ON ip.objoid = t.oid AND ip.classoid = t.tableoid + LEFT JOIN pg_operator o ON ip.objoid = o.oid AND ip.classoid = o.tableoid + LEFT JOIN pg_am am ON ip.objoid = am.oid AND ip.classoid = am.tableoid + LEFT JOIN pg_ts_config ts ON ip.objoid = ts.oid AND ip.classoid = ts.tableoid + LEFT JOIN pg_foreign_data_wrapper fd ON ip.objoid = fd.oid AND ip.classoid = fd.tableoid + LEFT JOIN pg_foreign_server fs ON ip.objoid = fs.oid AND ip.classoid = fs.tableoid + LEFT JOIN pg_extension e ON ip.objoid = e.oid AND ip.classoid = e.tableoid + LEFT JOIN pg_namespace nc ON c.relnamespace = nc.oid + LEFT JOIN pg_namespace np ON p.pronamespace = np.oid + LEFT JOIN pg_namespace nt ON t.typnamespace = nt.oid + LEFT JOIN pg_namespace no ON o.oprnamespace = no.oid + LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid + WHERE ip.privtype = 'e' +) +SELECT * FROM object_info WHERE schema_name != 'sys' +ORDER BY object_type, schema_name NULLS FIRST, object_name; +GO \ No newline at end of file diff --git a/test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix b/test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix new file mode 100644 index 00000000000..ba7ee1bdf90 --- /dev/null +++ b/test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix @@ -0,0 +1,75 @@ +-- psql +WITH object_info AS ( + SELECT + COALESCE( + d.datname, + n.nspname, + c.relname, + p.proname, + t.typname, + o.oprname, + am.amname, + ts.cfgname, + fd.fdwname, + fs.srvname, + e.extname + ) AS object_name, + CASE + WHEN d.datname IS NOT NULL THEN 'Database' + WHEN n.nspname IS NOT NULL THEN 'Schema' + WHEN c.relname IS NOT NULL THEN + CASE c.relkind + WHEN 'r' THEN 'Table' + WHEN 'i' THEN 'Index' + WHEN 'S' THEN 'Sequence' + WHEN 'v' THEN 'View' + WHEN 'm' THEN 'Materialized View' + WHEN 'c' THEN 'Composite Type' + WHEN 't' THEN 'TOAST Table' + WHEN 'f' THEN 'Foreign Table' + ELSE 'Other Relation' + END + WHEN p.proname IS NOT NULL THEN + CASE p.prokind + WHEN 'f' THEN 'Function' + WHEN 'p' THEN 'Procedure' + WHEN 'a' THEN 'Aggregate Function' + WHEN 'w' THEN 'Window Function' + ELSE 'Other Routine' + END + WHEN t.typname IS NOT NULL THEN 'Type' + WHEN o.oprname IS NOT NULL THEN 'Operator' + WHEN am.amname IS NOT NULL THEN 'Access Method' + WHEN ts.cfgname IS NOT NULL THEN 'Text Search Configuration' + WHEN fd.fdwname IS NOT NULL THEN 'Foreign Data Wrapper' + WHEN fs.srvname IS NOT NULL THEN 'Foreign Server' + WHEN e.extname IS NOT NULL THEN 'Extension' + ELSE 'Other' + END AS object_type, + CASE + WHEN d.datname IS NOT NULL THEN NULL + WHEN n.nspname IS NOT NULL THEN NULL + ELSE COALESCE(nc.nspname, np.nspname, nt.nspname, no.nspname, nts.nspname) + END AS schema_name + FROM pg_init_privs ip + LEFT JOIN pg_database d ON ip.objoid = d.oid AND ip.classoid = d.tableoid + LEFT JOIN pg_namespace n ON ip.objoid = n.oid AND ip.classoid = n.tableoid + LEFT JOIN pg_class c ON ip.objoid = c.oid AND ip.classoid = c.tableoid + LEFT JOIN pg_proc p ON ip.objoid = p.oid AND ip.classoid = p.tableoid + LEFT JOIN pg_type t ON ip.objoid = t.oid AND ip.classoid = t.tableoid + LEFT JOIN pg_operator o ON ip.objoid = o.oid AND ip.classoid = o.tableoid + LEFT JOIN pg_am am ON ip.objoid = am.oid AND ip.classoid = am.tableoid + LEFT JOIN pg_ts_config ts ON ip.objoid = ts.oid AND ip.classoid = ts.tableoid + LEFT JOIN pg_foreign_data_wrapper fd ON ip.objoid = fd.oid AND ip.classoid = fd.tableoid + LEFT JOIN pg_foreign_server fs ON ip.objoid = fs.oid AND ip.classoid = fs.tableoid + LEFT JOIN pg_extension e ON ip.objoid = e.oid AND ip.classoid = e.tableoid + LEFT JOIN pg_namespace nc ON c.relnamespace = nc.oid + LEFT JOIN pg_namespace np ON p.pronamespace = np.oid + LEFT JOIN pg_namespace nt ON t.typnamespace = nt.oid + LEFT JOIN pg_namespace no ON o.oprnamespace = no.oid + LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid + WHERE ip.privtype = 'e' +) +SELECT * FROM object_info WHERE schema_name != 'sys' +ORDER BY object_type, schema_name NULLS FIRST, object_name; +GO \ No newline at end of file diff --git a/test/JDBC/upgrade/13_6/schedule b/test/JDBC/upgrade/13_6/schedule index b722c754329..6b5e8170d38 100644 --- a/test/JDBC/upgrade/13_6/schedule +++ b/test/JDBC/upgrade/13_6/schedule @@ -356,6 +356,7 @@ string_agg-before-14_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space +zzzz_init_privs_13_6 binary-datatype-operators BABEL-5059-before-14_7-or-15_2 replace-before-15_8-or-16_4 diff --git a/test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix b/test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix new file mode 100644 index 00000000000..ba7ee1bdf90 --- /dev/null +++ b/test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix @@ -0,0 +1,75 @@ +-- psql +WITH object_info AS ( + SELECT + COALESCE( + d.datname, + n.nspname, + c.relname, + p.proname, + t.typname, + o.oprname, + am.amname, + ts.cfgname, + fd.fdwname, + fs.srvname, + e.extname + ) AS object_name, + CASE + WHEN d.datname IS NOT NULL THEN 'Database' + WHEN n.nspname IS NOT NULL THEN 'Schema' + WHEN c.relname IS NOT NULL THEN + CASE c.relkind + WHEN 'r' THEN 'Table' + WHEN 'i' THEN 'Index' + WHEN 'S' THEN 'Sequence' + WHEN 'v' THEN 'View' + WHEN 'm' THEN 'Materialized View' + WHEN 'c' THEN 'Composite Type' + WHEN 't' THEN 'TOAST Table' + WHEN 'f' THEN 'Foreign Table' + ELSE 'Other Relation' + END + WHEN p.proname IS NOT NULL THEN + CASE p.prokind + WHEN 'f' THEN 'Function' + WHEN 'p' THEN 'Procedure' + WHEN 'a' THEN 'Aggregate Function' + WHEN 'w' THEN 'Window Function' + ELSE 'Other Routine' + END + WHEN t.typname IS NOT NULL THEN 'Type' + WHEN o.oprname IS NOT NULL THEN 'Operator' + WHEN am.amname IS NOT NULL THEN 'Access Method' + WHEN ts.cfgname IS NOT NULL THEN 'Text Search Configuration' + WHEN fd.fdwname IS NOT NULL THEN 'Foreign Data Wrapper' + WHEN fs.srvname IS NOT NULL THEN 'Foreign Server' + WHEN e.extname IS NOT NULL THEN 'Extension' + ELSE 'Other' + END AS object_type, + CASE + WHEN d.datname IS NOT NULL THEN NULL + WHEN n.nspname IS NOT NULL THEN NULL + ELSE COALESCE(nc.nspname, np.nspname, nt.nspname, no.nspname, nts.nspname) + END AS schema_name + FROM pg_init_privs ip + LEFT JOIN pg_database d ON ip.objoid = d.oid AND ip.classoid = d.tableoid + LEFT JOIN pg_namespace n ON ip.objoid = n.oid AND ip.classoid = n.tableoid + LEFT JOIN pg_class c ON ip.objoid = c.oid AND ip.classoid = c.tableoid + LEFT JOIN pg_proc p ON ip.objoid = p.oid AND ip.classoid = p.tableoid + LEFT JOIN pg_type t ON ip.objoid = t.oid AND ip.classoid = t.tableoid + LEFT JOIN pg_operator o ON ip.objoid = o.oid AND ip.classoid = o.tableoid + LEFT JOIN pg_am am ON ip.objoid = am.oid AND ip.classoid = am.tableoid + LEFT JOIN pg_ts_config ts ON ip.objoid = ts.oid AND ip.classoid = ts.tableoid + LEFT JOIN pg_foreign_data_wrapper fd ON ip.objoid = fd.oid AND ip.classoid = fd.tableoid + LEFT JOIN pg_foreign_server fs ON ip.objoid = fs.oid AND ip.classoid = fs.tableoid + LEFT JOIN pg_extension e ON ip.objoid = e.oid AND ip.classoid = e.tableoid + LEFT JOIN pg_namespace nc ON c.relnamespace = nc.oid + LEFT JOIN pg_namespace np ON p.pronamespace = np.oid + LEFT JOIN pg_namespace nt ON t.typnamespace = nt.oid + LEFT JOIN pg_namespace no ON o.oprnamespace = no.oid + LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid + WHERE ip.privtype = 'e' +) +SELECT * FROM object_info WHERE schema_name != 'sys' +ORDER BY object_type, schema_name NULLS FIRST, object_name; +GO \ No newline at end of file From bac069245f2daaadf45bfc71389512834d3fe438 Mon Sep 17 00:00:00 2001 From: Harsh Lunagariya Date: Thu, 12 Dec 2024 03:46:30 +0000 Subject: [PATCH 6/6] Update expected output Signed-off-by: Harsh Lunagariya --- ..._13_6__aaaa_init_privs-vu-verify copy.out} | 8 +- ...anup__13_6__aaaa_init_privs-vu-verify.out} | 8 +- .../zzzz_init_privs_13_6-vu-prepare.out | 79 +++++++++++++++++++ test/JDBC/input/init_privs-vu-cleanup.mix | 0 .../input/zzzz_init_privs_13_6-vu-prepare.mix | 2 +- .../input/zzzz_init_privs_13_6-vu-verify.mix | 2 +- test/JDBC/jdbc_schedule | 2 + test/JDBC/upgrade/13_4/schedule | 1 - test/JDBC/upgrade/14_3/schedule | 1 - test/JDBC/upgrade/15_1/schedule | 1 - test/JDBC/upgrade/16_1/schedule | 1 - test/JDBC/upgrade/latest/schedule | 1 - .../13_6/aaaa_init_privs-vu-verify.mix | 2 +- 13 files changed, 96 insertions(+), 12 deletions(-) rename test/JDBC/{input/init_privs-vu-prepare.mix => expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify copy.out} (96%) rename test/JDBC/{input/init_privs-vu-verify.mix => expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify.out} (96%) create mode 100644 test/JDBC/expected/zzzz_init_privs_13_6-vu-prepare.out delete mode 100644 test/JDBC/input/init_privs-vu-cleanup.mix diff --git a/test/JDBC/input/init_privs-vu-prepare.mix b/test/JDBC/expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify copy.out similarity index 96% rename from test/JDBC/input/init_privs-vu-prepare.mix rename to test/JDBC/expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify copy.out index ba7ee1bdf90..542267a775b 100644 --- a/test/JDBC/input/init_privs-vu-prepare.mix +++ b/test/JDBC/expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify copy.out @@ -70,6 +70,10 @@ WITH object_info AS ( LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid WHERE ip.privtype = 'e' ) -SELECT * FROM object_info WHERE schema_name != 'sys' +SELECT * FROM object_info WHERE schema_name NOT IN ('sys', 'information_schema_tsql') ORDER BY object_type, schema_name NULLS FIRST, object_name; -GO \ No newline at end of file +GO +~~START~~ +name#!#text#!#name +~~END~~ + diff --git a/test/JDBC/input/init_privs-vu-verify.mix b/test/JDBC/expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify.out similarity index 96% rename from test/JDBC/input/init_privs-vu-verify.mix rename to test/JDBC/expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify.out index ba7ee1bdf90..542267a775b 100644 --- a/test/JDBC/input/init_privs-vu-verify.mix +++ b/test/JDBC/expected/latest__verification_cleanup__13_6__aaaa_init_privs-vu-verify.out @@ -70,6 +70,10 @@ WITH object_info AS ( LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid WHERE ip.privtype = 'e' ) -SELECT * FROM object_info WHERE schema_name != 'sys' +SELECT * FROM object_info WHERE schema_name NOT IN ('sys', 'information_schema_tsql') ORDER BY object_type, schema_name NULLS FIRST, object_name; -GO \ No newline at end of file +GO +~~START~~ +name#!#text#!#name +~~END~~ + diff --git a/test/JDBC/expected/zzzz_init_privs_13_6-vu-prepare.out b/test/JDBC/expected/zzzz_init_privs_13_6-vu-prepare.out new file mode 100644 index 00000000000..542267a775b --- /dev/null +++ b/test/JDBC/expected/zzzz_init_privs_13_6-vu-prepare.out @@ -0,0 +1,79 @@ +-- psql +WITH object_info AS ( + SELECT + COALESCE( + d.datname, + n.nspname, + c.relname, + p.proname, + t.typname, + o.oprname, + am.amname, + ts.cfgname, + fd.fdwname, + fs.srvname, + e.extname + ) AS object_name, + CASE + WHEN d.datname IS NOT NULL THEN 'Database' + WHEN n.nspname IS NOT NULL THEN 'Schema' + WHEN c.relname IS NOT NULL THEN + CASE c.relkind + WHEN 'r' THEN 'Table' + WHEN 'i' THEN 'Index' + WHEN 'S' THEN 'Sequence' + WHEN 'v' THEN 'View' + WHEN 'm' THEN 'Materialized View' + WHEN 'c' THEN 'Composite Type' + WHEN 't' THEN 'TOAST Table' + WHEN 'f' THEN 'Foreign Table' + ELSE 'Other Relation' + END + WHEN p.proname IS NOT NULL THEN + CASE p.prokind + WHEN 'f' THEN 'Function' + WHEN 'p' THEN 'Procedure' + WHEN 'a' THEN 'Aggregate Function' + WHEN 'w' THEN 'Window Function' + ELSE 'Other Routine' + END + WHEN t.typname IS NOT NULL THEN 'Type' + WHEN o.oprname IS NOT NULL THEN 'Operator' + WHEN am.amname IS NOT NULL THEN 'Access Method' + WHEN ts.cfgname IS NOT NULL THEN 'Text Search Configuration' + WHEN fd.fdwname IS NOT NULL THEN 'Foreign Data Wrapper' + WHEN fs.srvname IS NOT NULL THEN 'Foreign Server' + WHEN e.extname IS NOT NULL THEN 'Extension' + ELSE 'Other' + END AS object_type, + CASE + WHEN d.datname IS NOT NULL THEN NULL + WHEN n.nspname IS NOT NULL THEN NULL + ELSE COALESCE(nc.nspname, np.nspname, nt.nspname, no.nspname, nts.nspname) + END AS schema_name + FROM pg_init_privs ip + LEFT JOIN pg_database d ON ip.objoid = d.oid AND ip.classoid = d.tableoid + LEFT JOIN pg_namespace n ON ip.objoid = n.oid AND ip.classoid = n.tableoid + LEFT JOIN pg_class c ON ip.objoid = c.oid AND ip.classoid = c.tableoid + LEFT JOIN pg_proc p ON ip.objoid = p.oid AND ip.classoid = p.tableoid + LEFT JOIN pg_type t ON ip.objoid = t.oid AND ip.classoid = t.tableoid + LEFT JOIN pg_operator o ON ip.objoid = o.oid AND ip.classoid = o.tableoid + LEFT JOIN pg_am am ON ip.objoid = am.oid AND ip.classoid = am.tableoid + LEFT JOIN pg_ts_config ts ON ip.objoid = ts.oid AND ip.classoid = ts.tableoid + LEFT JOIN pg_foreign_data_wrapper fd ON ip.objoid = fd.oid AND ip.classoid = fd.tableoid + LEFT JOIN pg_foreign_server fs ON ip.objoid = fs.oid AND ip.classoid = fs.tableoid + LEFT JOIN pg_extension e ON ip.objoid = e.oid AND ip.classoid = e.tableoid + LEFT JOIN pg_namespace nc ON c.relnamespace = nc.oid + LEFT JOIN pg_namespace np ON p.pronamespace = np.oid + LEFT JOIN pg_namespace nt ON t.typnamespace = nt.oid + LEFT JOIN pg_namespace no ON o.oprnamespace = no.oid + LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid + WHERE ip.privtype = 'e' +) +SELECT * FROM object_info WHERE schema_name NOT IN ('sys', 'information_schema_tsql') +ORDER BY object_type, schema_name NULLS FIRST, object_name; +GO +~~START~~ +name#!#text#!#name +~~END~~ + diff --git a/test/JDBC/input/init_privs-vu-cleanup.mix b/test/JDBC/input/init_privs-vu-cleanup.mix deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix b/test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix index ba7ee1bdf90..5966a7f6e97 100644 --- a/test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix +++ b/test/JDBC/input/zzzz_init_privs_13_6-vu-prepare.mix @@ -70,6 +70,6 @@ WITH object_info AS ( LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid WHERE ip.privtype = 'e' ) -SELECT * FROM object_info WHERE schema_name != 'sys' +SELECT * FROM object_info WHERE schema_name NOT IN ('sys', 'information_schema_tsql') ORDER BY object_type, schema_name NULLS FIRST, object_name; GO \ No newline at end of file diff --git a/test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix b/test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix index ba7ee1bdf90..5966a7f6e97 100644 --- a/test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix +++ b/test/JDBC/input/zzzz_init_privs_13_6-vu-verify.mix @@ -70,6 +70,6 @@ WITH object_info AS ( LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid WHERE ip.privtype = 'e' ) -SELECT * FROM object_info WHERE schema_name != 'sys' +SELECT * FROM object_info WHERE schema_name NOT IN ('sys', 'information_schema_tsql') ORDER BY object_type, schema_name NULLS FIRST, object_name; GO \ No newline at end of file diff --git a/test/JDBC/jdbc_schedule b/test/JDBC/jdbc_schedule index 9e8898b895e..54c0f48c44a 100644 --- a/test/JDBC/jdbc_schedule +++ b/test/JDBC/jdbc_schedule @@ -244,6 +244,8 @@ ignore#!#sys-all_sql_modules-before-15_7-or-16_2-dep-vu-cleanup ignore#!#sys-sql_modules-before-15_7-or-16_2-dep-vu-prepare ignore#!#sys-sql_modules-before-15_7-or-16_2-dep-vu-verify ignore#!#sys-sql_modules-before-15_7-or-16_2-dep-vu-cleanup +ignore#!#zzzz_init_privs_13_6-vu-prepare +ignore#!#zzzz_init_privs_13_6-vu-verify # These tests are meant for upgrade scenario prior to (potential) 14_8 or 15_3 release ignore#!#BABEL-4078-before-14_8-or-15_3-vu-prepare diff --git a/test/JDBC/upgrade/13_4/schedule b/test/JDBC/upgrade/13_4/schedule index a48c9cb00b8..b2afdc43203 100644 --- a/test/JDBC/upgrade/13_4/schedule +++ b/test/JDBC/upgrade/13_4/schedule @@ -248,7 +248,6 @@ string_agg-before-14_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space -init_privs binary-datatype-operators BABEL-CASE_EXPR-before-16_5-or-15_9 BABEL-5059-before-14_7-or-15_2 diff --git a/test/JDBC/upgrade/14_3/schedule b/test/JDBC/upgrade/14_3/schedule index 4c660ee923b..3aa501ef172 100644 --- a/test/JDBC/upgrade/14_3/schedule +++ b/test/JDBC/upgrade/14_3/schedule @@ -381,7 +381,6 @@ getdate-before-15_9-or-16_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space -init_privs binary-datatype-operators BABEL-5059-before-14_7-or-15_2 cast-varchar-to-time diff --git a/test/JDBC/upgrade/15_1/schedule b/test/JDBC/upgrade/15_1/schedule index ea02fc25f71..4ff597b28ec 100644 --- a/test/JDBC/upgrade/15_1/schedule +++ b/test/JDBC/upgrade/15_1/schedule @@ -429,7 +429,6 @@ string_agg-before-15_9-or-16_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space -init_privs binary-datatype-operators BABEL-5059-before-14_7-or-15_2 cast-varchar-to-time diff --git a/test/JDBC/upgrade/16_1/schedule b/test/JDBC/upgrade/16_1/schedule index 652ba44aedb..c7b658f7a63 100644 --- a/test/JDBC/upgrade/16_1/schedule +++ b/test/JDBC/upgrade/16_1/schedule @@ -536,7 +536,6 @@ getdate-before-15_9-or-16_5 concat-before-15_9-or-16_5 concat_ws-before-15_9-or-16_5 space -init_privs replace-before-15_8-or-16_4 binary-datatype-operators BABEL-5059_before_16_5 diff --git a/test/JDBC/upgrade/latest/schedule b/test/JDBC/upgrade/latest/schedule index ab72be27cec..5d54b6103f0 100644 --- a/test/JDBC/upgrade/latest/schedule +++ b/test/JDBC/upgrade/latest/schedule @@ -570,7 +570,6 @@ concat_ws sys_sequences replicate space -init_privs SELECT_INTO_TEST binary-datatype-operators securityadmin_role diff --git a/test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix b/test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix index ba7ee1bdf90..5966a7f6e97 100644 --- a/test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix +++ b/test/JDBC/upgrade/latest/verification_cleanup/13_6/aaaa_init_privs-vu-verify.mix @@ -70,6 +70,6 @@ WITH object_info AS ( LEFT JOIN pg_namespace nts ON ts.cfgnamespace = nts.oid WHERE ip.privtype = 'e' ) -SELECT * FROM object_info WHERE schema_name != 'sys' +SELECT * FROM object_info WHERE schema_name NOT IN ('sys', 'information_schema_tsql') ORDER BY object_type, schema_name NULLS FIRST, object_name; GO \ No newline at end of file