@@ -366,6 +366,7 @@ SELECT * FROM dropped_objects WHERE type = 'schema';
366
366
DROP ROLE regress_evt_user;
367
367
DROP EVENT TRIGGER regress_event_trigger_drop_objects;
368
368
DROP EVENT TRIGGER undroppable;
369
+ -- Event triggers on relations.
369
370
CREATE OR REPLACE FUNCTION event_trigger_report_dropped()
370
371
RETURNS event_trigger
371
372
LANGUAGE plpgsql
@@ -384,41 +385,90 @@ BEGIN
384
385
END; $$;
385
386
CREATE EVENT TRIGGER regress_event_trigger_report_dropped ON sql_drop
386
387
EXECUTE PROCEDURE event_trigger_report_dropped();
388
+ CREATE OR REPLACE FUNCTION event_trigger_report_end()
389
+ RETURNS event_trigger
390
+ LANGUAGE plpgsql
391
+ AS $$
392
+ DECLARE r RECORD;
393
+ BEGIN
394
+ FOR r IN SELECT * FROM pg_event_trigger_ddl_commands()
395
+ LOOP
396
+ RAISE NOTICE 'END: command_tag=% type=% identity=%',
397
+ r.command_tag, r.object_type, r.object_identity;
398
+ END LOOP;
399
+ END; $$;
400
+ CREATE EVENT TRIGGER regress_event_trigger_report_end ON ddl_command_end
401
+ EXECUTE PROCEDURE event_trigger_report_end();
387
402
CREATE SCHEMA evttrig
388
- CREATE TABLE one (col_a SERIAL PRIMARY KEY, col_b text DEFAULT 'forty two')
403
+ CREATE TABLE one (col_a SERIAL PRIMARY KEY, col_b text DEFAULT 'forty two', col_c SERIAL )
389
404
CREATE INDEX one_idx ON one (col_b)
390
- CREATE TABLE two (col_c INTEGER CHECK (col_c > 0) REFERENCES one DEFAULT 42);
405
+ CREATE TABLE two (col_c INTEGER CHECK (col_c > 0) REFERENCES one DEFAULT 42)
406
+ CREATE TABLE id (col_d int NOT NULL GENERATED ALWAYS AS IDENTITY);
407
+ NOTICE: END: command_tag=CREATE SCHEMA type=schema identity=evttrig
408
+ NOTICE: END: command_tag=CREATE SEQUENCE type=sequence identity=evttrig.one_col_a_seq
409
+ NOTICE: END: command_tag=CREATE SEQUENCE type=sequence identity=evttrig.one_col_c_seq
410
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.one
411
+ NOTICE: END: command_tag=CREATE INDEX type=index identity=evttrig.one_pkey
412
+ NOTICE: END: command_tag=ALTER SEQUENCE type=sequence identity=evttrig.one_col_a_seq
413
+ NOTICE: END: command_tag=ALTER SEQUENCE type=sequence identity=evttrig.one_col_c_seq
414
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.two
415
+ NOTICE: END: command_tag=ALTER TABLE type=table identity=evttrig.two
416
+ NOTICE: END: command_tag=CREATE SEQUENCE type=sequence identity=evttrig.id_col_d_seq
417
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.id
418
+ NOTICE: END: command_tag=ALTER SEQUENCE type=sequence identity=evttrig.id_col_d_seq
419
+ NOTICE: END: command_tag=CREATE INDEX type=index identity=evttrig.one_idx
391
420
-- Partitioned tables with a partitioned index
392
421
CREATE TABLE evttrig.parted (
393
422
id int PRIMARY KEY)
394
423
PARTITION BY RANGE (id);
424
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.parted
425
+ NOTICE: END: command_tag=CREATE INDEX type=index identity=evttrig.parted_pkey
395
426
CREATE TABLE evttrig.part_1_10 PARTITION OF evttrig.parted (id)
396
427
FOR VALUES FROM (1) TO (10);
428
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.part_1_10
397
429
CREATE TABLE evttrig.part_10_20 PARTITION OF evttrig.parted (id)
398
430
FOR VALUES FROM (10) TO (20) PARTITION BY RANGE (id);
431
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.part_10_20
399
432
CREATE TABLE evttrig.part_10_15 PARTITION OF evttrig.part_10_20 (id)
400
433
FOR VALUES FROM (10) TO (15);
434
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.part_10_15
401
435
CREATE TABLE evttrig.part_15_20 PARTITION OF evttrig.part_10_20 (id)
402
436
FOR VALUES FROM (15) TO (20);
437
+ NOTICE: END: command_tag=CREATE TABLE type=table identity=evttrig.part_15_20
403
438
ALTER TABLE evttrig.two DROP COLUMN col_c;
404
439
NOTICE: NORMAL: orig=t normal=f istemp=f type=table column identity=evttrig.two.col_c name={evttrig,two,col_c} args={}
405
440
NOTICE: NORMAL: orig=f normal=t istemp=f type=table constraint identity=two_col_c_check on evttrig.two name={evttrig,two,two_col_c_check} args={}
441
+ NOTICE: END: command_tag=ALTER TABLE type=table identity=evttrig.two
406
442
ALTER TABLE evttrig.one ALTER COLUMN col_b DROP DEFAULT;
407
443
NOTICE: NORMAL: orig=t normal=f istemp=f type=default value identity=for evttrig.one.col_b name={evttrig,one,col_b} args={}
444
+ NOTICE: END: command_tag=ALTER TABLE type=table identity=evttrig.one
408
445
ALTER TABLE evttrig.one DROP CONSTRAINT one_pkey;
409
446
NOTICE: NORMAL: orig=t normal=f istemp=f type=table constraint identity=one_pkey on evttrig.one name={evttrig,one,one_pkey} args={}
447
+ NOTICE: END: command_tag=ALTER TABLE type=table identity=evttrig.one
448
+ ALTER TABLE evttrig.one DROP COLUMN col_c;
449
+ NOTICE: NORMAL: orig=t normal=f istemp=f type=table column identity=evttrig.one.col_c name={evttrig,one,col_c} args={}
450
+ NOTICE: NORMAL: orig=f normal=t istemp=f type=default value identity=for evttrig.one.col_c name={evttrig,one,col_c} args={}
451
+ NOTICE: END: command_tag=ALTER TABLE type=table identity=evttrig.one
452
+ ALTER TABLE evttrig.id ALTER COLUMN col_d SET DATA TYPE bigint;
453
+ NOTICE: END: command_tag=ALTER SEQUENCE type=sequence identity=evttrig.id_col_d_seq
454
+ NOTICE: END: command_tag=ALTER TABLE type=table identity=evttrig.id
455
+ ALTER TABLE evttrig.id ALTER COLUMN col_d DROP IDENTITY,
456
+ ALTER COLUMN col_d SET DATA TYPE int;
457
+ NOTICE: END: command_tag=ALTER TABLE type=table identity=evttrig.id
410
458
DROP INDEX evttrig.one_idx;
411
459
NOTICE: NORMAL: orig=t normal=f istemp=f type=index identity=evttrig.one_idx name={evttrig,one_idx} args={}
412
460
DROP SCHEMA evttrig CASCADE;
413
- NOTICE: drop cascades to 3 other objects
461
+ NOTICE: drop cascades to 4 other objects
414
462
DETAIL: drop cascades to table evttrig.one
415
463
drop cascades to table evttrig.two
464
+ drop cascades to table evttrig.id
416
465
drop cascades to table evttrig.parted
417
466
NOTICE: NORMAL: orig=t normal=f istemp=f type=schema identity=evttrig name={evttrig} args={}
418
467
NOTICE: NORMAL: orig=f normal=t istemp=f type=table identity=evttrig.one name={evttrig,one} args={}
419
468
NOTICE: NORMAL: orig=f normal=t istemp=f type=sequence identity=evttrig.one_col_a_seq name={evttrig,one_col_a_seq} args={}
420
469
NOTICE: NORMAL: orig=f normal=t istemp=f type=default value identity=for evttrig.one.col_a name={evttrig,one,col_a} args={}
421
470
NOTICE: NORMAL: orig=f normal=t istemp=f type=table identity=evttrig.two name={evttrig,two} args={}
471
+ NOTICE: NORMAL: orig=f normal=t istemp=f type=table identity=evttrig.id name={evttrig,id} args={}
422
472
NOTICE: NORMAL: orig=f normal=t istemp=f type=table identity=evttrig.parted name={evttrig,parted} args={}
423
473
NOTICE: NORMAL: orig=f normal=t istemp=f type=table identity=evttrig.part_1_10 name={evttrig,part_1_10} args={}
424
474
NOTICE: NORMAL: orig=f normal=t istemp=f type=table identity=evttrig.part_10_20 name={evttrig,part_10_20} args={}
@@ -427,6 +477,7 @@ NOTICE: NORMAL: orig=f normal=t istemp=f type=table identity=evttrig.part_15_20
427
477
DROP TABLE a_temp_tbl;
428
478
NOTICE: NORMAL: orig=t normal=f istemp=t type=table identity=pg_temp.a_temp_tbl name={pg_temp,a_temp_tbl} args={}
429
479
DROP EVENT TRIGGER regress_event_trigger_report_dropped;
480
+ DROP EVENT TRIGGER regress_event_trigger_report_end;
430
481
-- only allowed from within an event trigger function, should fail
431
482
select pg_event_trigger_table_rewrite_oid();
432
483
ERROR: pg_event_trigger_table_rewrite_oid() can only be called in a table_rewrite event trigger function
0 commit comments