Skip to content

Commit ae30786

Browse files
committed
Test that event triggers work in functions and procedures
This ensures that we have coverage of all the ProcessUtilityContext variants.
1 parent f8c10f6 commit ae30786

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

src/test/regress/expected/event_trigger.out

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,45 @@ create table event_trigger_fire5 (a int);
112112
NOTICE: test_event_trigger: ddl_command_start CREATE TABLE
113113
NOTICE: test_event_trigger: ddl_command_start CREATE TABLE
114114
NOTICE: test_event_trigger: ddl_command_end CREATE TABLE
115+
-- non-top-level command
116+
create function f1() returns int
117+
language plpgsql
118+
as $$
119+
begin
120+
create table event_trigger_fire6 (a int);
121+
return 0;
122+
end $$;
123+
NOTICE: test_event_trigger: ddl_command_start CREATE FUNCTION
124+
NOTICE: test_event_trigger: ddl_command_start CREATE FUNCTION
125+
NOTICE: test_event_trigger: ddl_command_end CREATE FUNCTION
126+
select f1();
127+
NOTICE: test_event_trigger: ddl_command_start CREATE TABLE
128+
NOTICE: test_event_trigger: ddl_command_start CREATE TABLE
129+
NOTICE: test_event_trigger: ddl_command_end CREATE TABLE
130+
f1
131+
----
132+
0
133+
(1 row)
134+
135+
-- non-top-level command
136+
create procedure p1()
137+
language plpgsql
138+
as $$
139+
begin
140+
create table event_trigger_fire7 (a int);
141+
end $$;
142+
NOTICE: test_event_trigger: ddl_command_start CREATE PROCEDURE
143+
NOTICE: test_event_trigger: ddl_command_end CREATE PROCEDURE
144+
call p1();
145+
NOTICE: test_event_trigger: ddl_command_start CREATE TABLE
146+
NOTICE: test_event_trigger: ddl_command_start CREATE TABLE
147+
NOTICE: test_event_trigger: ddl_command_end CREATE TABLE
115148
-- clean up
116149
alter event trigger regress_event_trigger disable;
117-
drop table event_trigger_fire2, event_trigger_fire3, event_trigger_fire4, event_trigger_fire5;
150+
drop table event_trigger_fire2, event_trigger_fire3, event_trigger_fire4, event_trigger_fire5, event_trigger_fire6, event_trigger_fire7;
118151
NOTICE: test_event_trigger: ddl_command_end DROP TABLE
152+
drop routine f1(), p1();
153+
NOTICE: test_event_trigger: ddl_command_end DROP ROUTINE
119154
-- regress_event_trigger_end should fire on these commands
120155
grant all on table event_trigger_fire1 to public;
121156
NOTICE: test_event_trigger: ddl_command_end GRANT

src/test/regress/sql/event_trigger.sql

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,28 @@ create table event_trigger_fire4 (a int);
106106
reset session_replication_role;
107107
-- fires all three
108108
create table event_trigger_fire5 (a int);
109+
-- non-top-level command
110+
create function f1() returns int
111+
language plpgsql
112+
as $$
113+
begin
114+
create table event_trigger_fire6 (a int);
115+
return 0;
116+
end $$;
117+
select f1();
118+
-- non-top-level command
119+
create procedure p1()
120+
language plpgsql
121+
as $$
122+
begin
123+
create table event_trigger_fire7 (a int);
124+
end $$;
125+
call p1();
126+
109127
-- clean up
110128
alter event trigger regress_event_trigger disable;
111-
drop table event_trigger_fire2, event_trigger_fire3, event_trigger_fire4, event_trigger_fire5;
129+
drop table event_trigger_fire2, event_trigger_fire3, event_trigger_fire4, event_trigger_fire5, event_trigger_fire6, event_trigger_fire7;
130+
drop routine f1(), p1();
112131

113132
-- regress_event_trigger_end should fire on these commands
114133
grant all on table event_trigger_fire1 to public;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy