This is an automated email from the ASF dual-hosted git repository.
chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/cbdb-postgres-merge by this
push:
new 015d032cf11 Dispatch oids on GrantRole
015d032cf11 is described below
commit 015d032cf112a150a0c464dfbcd87d938bde35f6
Author: Jinbao Chen <[email protected]>
AuthorDate: Sun Nov 23 12:27:27 2025 +0800
Dispatch oids on GrantRole
---
src/backend/commands/user.c | 2 +-
src/test/regress/expected/privileges.out | 51 ++++++++++----------------------
2 files changed, 16 insertions(+), 37 deletions(-)
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index ae5f86b4c0c..2b7b16d9d95 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -2650,7 +2650,7 @@ GrantRole(ParseState *pstate, GrantRoleStmt *stmt)
DF_CANCEL_ON_ERROR|
DF_WITH_SNAPSHOT|
DF_NEED_TWO_PHASE,
- NIL,
+
GetAssignedOidsForDispatch(),
NULL);
}
diff --git a/src/test/regress/expected/privileges.out
b/src/test/regress/expected/privileges.out
index 2e461f362e4..eb8655c3b43 100644
--- a/src/test/regress/expected/privileges.out
+++ b/src/test/regress/expected/privileges.out
@@ -42,9 +42,7 @@ CREATE USER regress_priv_user5; -- duplicate
ERROR: role "regress_priv_user5" already exists
CREATE USER regress_priv_user6;
CREATE USER regress_priv_user7;
-<<<<<<< HEAD
CREATE ROLE regress_priv_role;
-=======
CREATE USER regress_priv_user8;
CREATE USER regress_priv_user9;
CREATE USER regress_priv_user10;
@@ -129,7 +127,6 @@ CREATE USER regress_priv_user2;
CREATE USER regress_priv_user3;
CREATE USER regress_priv_user4;
CREATE USER regress_priv_user5;
->>>>>>> REL_16_9
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;
@@ -259,11 +256,6 @@ CREATE FUNCTION leak(integer,integer) RETURNS boolean
LANGUAGE internal IMMUTABLE STRICT; -- but deliberately not LEAKPROOF
ALTER FUNCTION leak(integer,integer) OWNER TO regress_priv_user1;
-- test owner privileges
-<<<<<<< HEAD
-GRANT regress_priv_role TO regress_priv_user1 WITH ADMIN OPTION GRANTED BY
CURRENT_ROLE;
-REVOKE ADMIN OPTION FOR regress_priv_role FROM regress_priv_user1 GRANTED BY
foo; -- error
-REVOKE ADMIN OPTION FOR regress_priv_role FROM regress_priv_user1 GRANTED BY
regress_priv_user2; -- error
-=======
GRANT regress_priv_role TO regress_priv_user1 WITH ADMIN OPTION GRANTED BY
regress_priv_role; -- error, doesn't have ADMIN OPTION
ERROR: permission denied to grant privileges as role "regress_priv_role"
DETAIL: The grantor must have the ADMIN option on role "regress_priv_role".
@@ -272,7 +264,6 @@ REVOKE ADMIN OPTION FOR regress_priv_role FROM
regress_priv_user1 GRANTED BY foo
ERROR: role "foo" does not exist
REVOKE ADMIN OPTION FOR regress_priv_role FROM regress_priv_user1 GRANTED BY
regress_priv_user2; -- warning, noop
WARNING: role "regress_priv_user1" has not been granted membership in role
"regress_priv_role" by role "regress_priv_user2"
->>>>>>> REL_16_9
REVOKE ADMIN OPTION FOR regress_priv_role FROM regress_priv_user1 GRANTED BY
CURRENT_USER;
REVOKE regress_priv_role FROM regress_priv_user1 GRANTED BY CURRENT_ROLE;
DROP ROLE regress_priv_role;
@@ -1877,20 +1868,12 @@ CREATE INDEX sro_idx ON sro_tab ((sro_ifun(a) +
sro_ifun(0)))
WHERE sro_ifun(a + 10) > sro_ifun(10);
DROP INDEX sro_idx;
-- Do the same concurrently
-<<<<<<< HEAD
CREATE INDEX sro_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0)))
-=======
-CREATE INDEX CONCURRENTLY sro_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0)))
->>>>>>> REL_16_9
WHERE sro_ifun(a + 10) > sro_ifun(10);
-- REINDEX
REINDEX TABLE sro_tab;
REINDEX INDEX sro_idx;
-<<<<<<< HEAD
REINDEX TABLE sro_tab;
-=======
-REINDEX TABLE CONCURRENTLY sro_tab;
->>>>>>> REL_16_9
DROP INDEX sro_idx;
-- CLUSTER
CREATE INDEX sro_cluster_idx ON sro_tab ((sro_ifun(a) + sro_ifun(0)));
@@ -1907,11 +1890,7 @@ SELECT brin_desummarize_range('sro_brin', 0);
SELECT brin_summarize_range('sro_brin', 0);
brin_summarize_range
----------------------
-<<<<<<< HEAD
0
-=======
- 1
->>>>>>> REL_16_9
(1 row)
DROP TABLE sro_tab;
@@ -1924,11 +1903,7 @@ INSERT INTO sro_ptab VALUES (1), (2), (3);
CREATE INDEX sro_pidx ON sro_ptab ((sro_ifun(a) + sro_ifun(0)))
WHERE sro_ifun(a + 10) > sro_ifun(10);
REINDEX TABLE sro_ptab;
-<<<<<<< HEAD
REINDEX INDEX sro_pidx;
-=======
-REINDEX INDEX CONCURRENTLY sro_pidx;
->>>>>>> REL_16_9
SET SESSION AUTHORIZATION regress_sro_user;
CREATE FUNCTION unwanted_grant() RETURNS void LANGUAGE sql AS
'GRANT regress_priv_group2 TO regress_sro_user';
@@ -1958,13 +1933,6 @@ ERROR: cannot fire deferred trigger within
security-restricted operation
\c -
REFRESH MATERIALIZED VIEW sro_mv;
ERROR: cannot fire deferred trigger within security-restricted operation
-<<<<<<< HEAD
-BEGIN; SET allow_segment_DML = ON; SET CONSTRAINTS ALL IMMEDIATE; REFRESH
MATERIALIZED VIEW sro_mv; COMMIT;
-ERROR: must have admin option on role "regress_priv_group2"
-CONTEXT: SQL function "unwanted_grant" statement 1
-SQL statement "SELECT unwanted_grant()"
-PL/pgSQL function sro_trojan() line 1 at PERFORM
-=======
CONTEXT: SQL function "mv_action" statement 1
BEGIN; SET CONSTRAINTS ALL IMMEDIATE; REFRESH MATERIALIZED VIEW sro_mv; COMMIT;
ERROR: permission denied to grant role "regress_priv_group2"
@@ -1973,7 +1941,6 @@ CONTEXT: SQL function "unwanted_grant" statement 1
SQL statement "SELECT unwanted_grant()"
PL/pgSQL function sro_trojan() line 1 at PERFORM
SQL function "mv_action" statement 1
->>>>>>> REL_16_9
-- REFRESH MATERIALIZED VIEW CONCURRENTLY use of eval_const_expressions()
SET SESSION AUTHORIZATION regress_sro_user;
CREATE FUNCTION unwanted_grant_nofail(int) RETURNS int
@@ -1986,7 +1953,6 @@ EXCEPTION WHEN OTHERS THEN
RETURN 2;
END$$;
CREATE MATERIALIZED VIEW sro_index_mv AS SELECT 1 AS c;
-<<<<<<< HEAD
-- start_ignore
-- GPDB_14_MERGE_FIXME: the following command will abort the sub-transaction
-- in a DDL. The problem is that aborting the sub-transaction will also erase
@@ -1997,11 +1963,24 @@ ERROR: no pre-assigned OID for pg_class tuple
"sro_index_mv_c_idx" (namespace:2
-- end_ignore
\c -
-- REFRESH MATERIALIZED VIEW CONCURRENTLY sro_index_mv;
-=======
+REFRESH MATERIALIZED VIEW sro_index_mv;
+-- REFRESH MATERIALIZED VIEW CONCURRENTLY use of eval_const_expressions()
+SET SESSION AUTHORIZATION regress_sro_user;
+CREATE FUNCTION unwanted_grant_nofail(int) RETURNS int
+ IMMUTABLE LANGUAGE plpgsql AS $$
+BEGIN
+ PERFORM unwanted_grant();
+ RAISE WARNING 'owned';
+ RETURN 1;
+EXCEPTION WHEN OTHERS THEN
+ RETURN 2;
+END$$;
+ERROR: function "unwanted_grant_nofail" already exists with same argument
types
+CREATE MATERIALIZED VIEW sro_index_mv AS SELECT 1 AS c;
+ERROR: relation "sro_index_mv" already exists
CREATE UNIQUE INDEX ON sro_index_mv (c) WHERE unwanted_grant_nofail(1) > 0;
\c -
REFRESH MATERIALIZED VIEW CONCURRENTLY sro_index_mv;
->>>>>>> REL_16_9
REFRESH MATERIALIZED VIEW sro_index_mv;
DROP OWNED BY regress_sro_user;
DROP ROLE regress_sro_user;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]