create database event_trigger_db dbcompatibility 'PG';
\c event_trigger_db;
create or replace function test_event_trigger() returns event_trigger as $$
BEGIN
    RAISE NOTICE 'test_event_trigger: % %', tg_event, tg_tag;
END
$$ language plpgsql;
create event trigger regress_event_trigger1 on ddl_command_start
  WHEN TAG IN ('CREATE TABLE') execute procedure test_event_trigger();
alter event trigger regress_event_trigger1 DISABLE;
create event trigger regress_event_trigger2 on ddl_command_start
  WHEN TAG IN ('CREATE TABLE') execute procedure test_event_trigger();
alter event trigger regress_event_trigger2 ENABLE ALWAYS;
create event trigger regress_event_trigger3 on ddl_command_start
  WHEN TAG IN ('CREATE TABLE') execute procedure test_event_trigger();
alter event trigger regress_event_trigger3 ENABLE REPLICA;
select evtname,evtevent,evtenabled from pg_event_trigger;
        evtname         |     evtevent      | evtenabled 
------------------------+-------------------+------------
 regress_event_trigger1 | ddl_command_start | D
 regress_event_trigger2 | ddl_command_start | A
 regress_event_trigger3 | ddl_command_start | R
(3 rows)

-- dump data
\! @abs_bindir@/gs_dump event_trigger_db -p @portstring@ -f @abs_bindir@/event_trigger_backup.sql --disable-progress
--?gs_dump[port='@portstring@'][event_trigger_db].*
--?gs_dump[port='@portstring@'][event_trigger_db].*
--?gs_dump[port='@portstring@'][event_trigger_db].*
--?gs_dump[port='@portstring@'][event_trigger_db].*
--?gs_dump[port='@portstring@'][event_trigger_db].*
--?gs_dump[port='@portstring@'][event_trigger_db].*
drop event trigger regress_event_trigger1;
drop event trigger regress_event_trigger2;
drop event trigger regress_event_trigger3;
drop function test_event_trigger;
-- restore data
\! @abs_bindir@/gsql -p @portstring@ -d event_trigger_db -f @abs_bindir@/event_trigger_backup.sql
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
CREATE FUNCTION
ALTER FUNCTION
CREATE EVENT TRIGGER
ALTER EVENT TRIGGER
CREATE EVENT TRIGGER
ALTER EVENT TRIGGER
CREATE EVENT TRIGGER
ALTER EVENT TRIGGER
REVOKE
REVOKE
GRANT
GRANT
--?total time: .*  ms
select evtname,evtevent,evtenabled from pg_event_trigger;
        evtname         |     evtevent      | evtenabled 
------------------------+-------------------+------------
 regress_event_trigger1 | ddl_command_start | D
 regress_event_trigger2 | ddl_command_start | A
 regress_event_trigger3 | ddl_command_start | R
(3 rows)

drop event trigger regress_event_trigger1;
drop event trigger regress_event_trigger2;
drop event trigger regress_event_trigger3;
drop function test_event_trigger;
\c regression
drop database event_trigger_db;