|
9 | 9 | RAISE NOTICE 'test_event_trigger: % %', tg_event, tg_tag;
|
10 | 10 | END
|
11 | 11 | $$ language plpgsql;
|
| 12 | +-- should fail, event triggers cannot have declared arguments |
| 13 | +create function test_event_trigger_arg(name text) |
| 14 | +returns event_trigger as $$ BEGIN RETURN 1; END $$ language plpgsql; |
| 15 | +ERROR: event trigger functions cannot have declared arguments |
| 16 | +CONTEXT: compilation of PL/pgSQL function "test_event_trigger_arg" near line 1 |
| 17 | +-- should fail, SQL functions cannot be event triggers |
| 18 | +create function test_event_trigger_sql() returns event_trigger as $$ |
| 19 | +SELECT 1 $$ language sql; |
| 20 | +ERROR: SQL functions cannot return type event_trigger |
12 | 21 | -- should fail, no elephant_bootstrap entry point
|
13 | 22 | create event trigger regress_event_trigger on elephant_bootstrap
|
14 | 23 | execute procedure test_event_trigger();
|
@@ -39,11 +48,32 @@ create event trigger regress_event_trigger2 on ddl_command_start
|
39 | 48 | when tag in ('DROP EVENT TRIGGER')
|
40 | 49 | execute procedure test_event_trigger();
|
41 | 50 | ERROR: event triggers are not supported for DROP EVENT TRIGGER
|
| 51 | +-- should fail, can't have event triggers on global objects |
| 52 | +create event trigger regress_event_trigger2 on ddl_command_start |
| 53 | + when tag in ('CREATE ROLE') |
| 54 | + execute procedure test_event_trigger(); |
| 55 | +ERROR: event triggers are not supported for CREATE ROLE |
| 56 | +-- should fail, can't have event triggers on global objects |
| 57 | +create event trigger regress_event_trigger2 on ddl_command_start |
| 58 | + when tag in ('CREATE DATABASE') |
| 59 | + execute procedure test_event_trigger(); |
| 60 | +ERROR: event triggers are not supported for CREATE DATABASE |
| 61 | +-- should fail, can't have event triggers on global objects |
| 62 | +create event trigger regress_event_trigger2 on ddl_command_start |
| 63 | + when tag in ('CREATE TABLESPACE') |
| 64 | + execute procedure test_event_trigger(); |
| 65 | +ERROR: event triggers are not supported for CREATE TABLESPACE |
42 | 66 | -- should fail, can't have same filter variable twice
|
43 | 67 | create event trigger regress_event_trigger2 on ddl_command_start
|
44 | 68 | when tag in ('create table') and tag in ('CREATE FUNCTION')
|
45 | 69 | execute procedure test_event_trigger();
|
46 | 70 | ERROR: filter variable "tag" specified more than once
|
| 71 | +-- should fail, can't have arguments |
| 72 | +create event trigger regress_event_trigger2 on ddl_command_start |
| 73 | + execute procedure test_event_trigger('argument not allowed'); |
| 74 | +ERROR: syntax error at or near "'argument not allowed'" |
| 75 | +LINE 2: execute procedure test_event_trigger('argument not allowe... |
| 76 | + ^ |
47 | 77 | -- OK
|
48 | 78 | create event trigger regress_event_trigger2 on ddl_command_start
|
49 | 79 | when tag in ('create table', 'CREATE FUNCTION')
|
@@ -71,7 +101,13 @@ alter event trigger regress_event_trigger disable;
|
71 | 101 | create table event_trigger_fire1 (a int);
|
72 | 102 | NOTICE: test_event_trigger: ddl_command_start CREATE TABLE
|
73 | 103 | NOTICE: test_event_trigger: ddl_command_end CREATE TABLE
|
74 |
| --- regress_event_trigger_end should fire here |
| 104 | +-- regress_event_trigger_end should fire on these commands |
| 105 | +grant all on table event_trigger_fire1 to public; |
| 106 | +NOTICE: test_event_trigger: ddl_command_end GRANT |
| 107 | +comment on table event_trigger_fire1 is 'here is a comment'; |
| 108 | +NOTICE: test_event_trigger: ddl_command_end COMMENT |
| 109 | +revoke all on table event_trigger_fire1 from public; |
| 110 | +NOTICE: test_event_trigger: ddl_command_end REVOKE |
75 | 111 | drop table event_trigger_fire1;
|
76 | 112 | NOTICE: test_event_trigger: ddl_command_end DROP TABLE
|
77 | 113 | -- alter owner to non-superuser should fail
|
|
0 commit comments