diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index adc6eabc0f4..4edc83cdf7d 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -2288,6 +2288,8 @@ stringify_grant_objtype(ObjectType objtype) return "PARAMETER"; case OBJECT_PROCEDURE: return "PROCEDURE"; + case OBJECT_PROPGRAPH: + return "PROPERTY GRAPH"; case OBJECT_ROUTINE: return "ROUTINE"; case OBJECT_TABLESPACE: @@ -2315,7 +2317,6 @@ stringify_grant_objtype(ObjectType objtype) case OBJECT_OPERATOR: case OBJECT_OPFAMILY: case OBJECT_POLICY: - case OBJECT_PROPGRAPH: case OBJECT_PUBLICATION: case OBJECT_PUBLICATION_NAMESPACE: case OBJECT_PUBLICATION_REL: diff --git a/src/test/regress/expected/event_trigger.out b/src/test/regress/expected/event_trigger.out index 86ae50ce531..2fb925fc0ff 100644 --- a/src/test/regress/expected/event_trigger.out +++ b/src/test/regress/expected/event_trigger.out @@ -173,7 +173,8 @@ NOTICE: test_event_trigger: ddl_command_end CREATE USER MAPPING alter default privileges for role regress_evt_user revoke delete on tables from regress_evt_user; NOTICE: test_event_trigger: ddl_command_end ALTER DEFAULT PRIVILEGES --- DROP PROPERTY GRAPH should work with event trigger in place +-- property graph DDL should work with event trigger in place; these +-- objects are dropped further down, under the sql_drop trigger CREATE TABLE tv1 (a int PRIMARY KEY, b text); NOTICE: test_event_trigger: ddl_command_start CREATE TABLE NOTICE: test_event_trigger: ddl_command_end CREATE TABLE @@ -191,10 +192,6 @@ CREATE PROPERTY GRAPH gx NOTICE: test_event_trigger: ddl_command_end CREATE PROPERTY GRAPH ALTER PROPERTY GRAPH gx ALTER EDGE TABLE te1 ALTER LABEL e1 DROP PROPERTIES (p1); NOTICE: test_event_trigger: ddl_command_end ALTER PROPERTY GRAPH -DROP PROPERTY GRAPH gx; -NOTICE: test_event_trigger: ddl_command_end DROP PROPERTY GRAPH -DROP TABLE tv1, tv2, te1; -NOTICE: test_event_trigger: ddl_command_end DROP TABLE -- alter owner to non-superuser should fail alter event trigger regress_event_trigger owner to regress_evt_user; ERROR: permission denied to change owner of event trigger "regress_event_trigger" @@ -434,6 +431,20 @@ BEGIN END; $$; CREATE EVENT TRIGGER regress_event_trigger_report_end ON ddl_command_end EXECUTE PROCEDURE event_trigger_report_end(); +-- GRANT/REVOKE ON PROPERTY GRAPH with pg_event_trigger_ddl_commands() +GRANT SELECT ON PROPERTY GRAPH gx TO public; +NOTICE: END: command_tag=GRANT type=PROPERTY GRAPH identity= +REVOKE SELECT ON PROPERTY GRAPH gx FROM public; +NOTICE: END: command_tag=REVOKE type=PROPERTY GRAPH identity= +DROP PROPERTY GRAPH gx; +NOTICE: NORMAL: orig=t normal=f istemp=f type=property graph identity=public.gx schema=public name=gx addr={public,gx} args={} +NOTICE: NORMAL: orig=f normal=t istemp=f type=property graph element identity=te1 of property graph public.gx schema= name= addr={public,gx,te1} args={} +DROP TABLE tv1, tv2, te1; +NOTICE: NORMAL: orig=t normal=f istemp=f type=table identity=public.te1 schema=public name=te1 addr={public,te1} args={} +NOTICE: NORMAL: orig=t normal=f istemp=f type=table identity=public.tv2 schema=public name=tv2 addr={public,tv2} args={} +NOTICE: NORMAL: orig=f normal=t istemp=f type=table constraint identity=te1_b_fkey on public.te1 schema=public name= addr={public,te1,te1_b_fkey} args={} +NOTICE: NORMAL: orig=t normal=f istemp=f type=table identity=public.tv1 schema=public name=tv1 addr={public,tv1} args={} +NOTICE: NORMAL: orig=f normal=t istemp=f type=table constraint identity=te1_a_fkey on public.te1 schema=public name= addr={public,te1,te1_a_fkey} args={} CREATE SCHEMA evttrig CREATE TABLE one (col_a SERIAL PRIMARY KEY, col_b text DEFAULT 'forty two', col_c SERIAL) CREATE INDEX one_idx ON one (col_b) diff --git a/src/test/regress/sql/event_trigger.sql b/src/test/regress/sql/event_trigger.sql index d0e6ba295fe..c1deac2d628 100644 --- a/src/test/regress/sql/event_trigger.sql +++ b/src/test/regress/sql/event_trigger.sql @@ -143,7 +143,8 @@ create user mapping for regress_evt_user server useless_server; alter default privileges for role regress_evt_user revoke delete on tables from regress_evt_user; --- DROP PROPERTY GRAPH should work with event trigger in place +-- property graph DDL should work with event trigger in place; these +-- objects are dropped further down, under the sql_drop trigger CREATE TABLE tv1 (a int PRIMARY KEY, b text); CREATE TABLE tv2 (i int PRIMARY KEY, j text); CREATE TABLE te1 (p int PRIMARY KEY, a int REFERENCES tv1(a), b int REFERENCES tv2(i), q text); @@ -155,8 +156,6 @@ CREATE PROPERTY GRAPH gx EDGE TABLES (te1 SOURCE tv1 DESTINATION tv2 LABEL e1 PROPERTIES (q as p1)); ALTER PROPERTY GRAPH gx ALTER EDGE TABLE te1 ALTER LABEL e1 DROP PROPERTIES (p1); -DROP PROPERTY GRAPH gx; -DROP TABLE tv1, tv2, te1; -- alter owner to non-superuser should fail alter event trigger regress_event_trigger owner to regress_evt_user; @@ -335,6 +334,12 @@ END; $$; CREATE EVENT TRIGGER regress_event_trigger_report_end ON ddl_command_end EXECUTE PROCEDURE event_trigger_report_end(); +-- GRANT/REVOKE ON PROPERTY GRAPH with pg_event_trigger_ddl_commands() +GRANT SELECT ON PROPERTY GRAPH gx TO public; +REVOKE SELECT ON PROPERTY GRAPH gx FROM public; +DROP PROPERTY GRAPH gx; +DROP TABLE tv1, tv2, te1; + CREATE SCHEMA evttrig CREATE TABLE one (col_a SERIAL PRIMARY KEY, col_b text DEFAULT 'forty two', col_c SERIAL) CREATE INDEX one_idx ON one (col_b)