create database dump_with_trigger;
\c dump_with_trigger
create database dump_with_trigger2;
\c dump_with_trigger2
\c dump_with_trigger
CREATE TABLE test_trigger_src_tbl(id1 INT, id2 INT, id3 INT);
CREATE TABLE test_trigger_des_tbl(id1 INT, id2 INT, id3 INT);
CREATE OR REPLACE FUNCTION tri_insert_func() RETURNS TRIGGER AS
           $$
           DECLARE
           BEGIN
                   INSERT INTO test_trigger_des_tbl VALUES(NEW.id1, NEW.id2, NEW.id3);
                   RETURN NEW;
           END
           $$ LANGUAGE PLPGSQL;
CREATE TRIGGER insert_trigger
           BEFORE INSERT ON test_trigger_src_tbl
           FOR EACH ROW
           EXECUTE PROCEDURE tri_insert_func();
CREATE TABLE test_trigger_src_tbl2(id1 INT, id2 INT, id3 INT);
CREATE TABLE test_trigger_des_tbl2(id1 INT, id2 INT, id3 INT);
CREATE OR REPLACE FUNCTION tri_insert_func2() RETURNS TRIGGER AS
$$
    DECLARE
    BEGIN
        INSERT INTO test_trigger_des_tbl2 VALUES(NEW.id1, NEW.id2, NEW.id3);
        RETURN NEW;
    END
$$ LANGUAGE PLPGSQL;
CREATE TRIGGER insert_trigger2
    BEFORE INSERT ON test_trigger_src_tbl2
    FOR EACH ROW
    EXECUTE PROCEDURE tri_insert_func2();
		   
CREATE TABLE test_trigger_src_tbl3(id1 INT, id2 INT, id3 INT);
CREATE TABLE test_trigger_des_tbl3(id1 INT, id2 INT, id3 INT);
CREATE OR REPLACE FUNCTION tri_insert_func3() RETURNS TRIGGER AS
$$
    DECLARE
    BEGIN
        INSERT INTO test_trigger_des_tbl3 VALUES(NEW.id1, NEW.id2, NEW.id3);
        RETURN NEW;
    END
$$ LANGUAGE PLPGSQL;
CREATE TRIGGER insert_trigger3
    BEFORE INSERT ON test_trigger_src_tbl3
    FOR EACH ROW
    EXECUTE PROCEDURE tri_insert_func3();
\! @abs_bindir@/gs_dump dump_with_trigger -p @portstring@ -f @abs_bindir@/dump_with_trigger.sql -w -c -t test_trigger_src_tbl >/dev/null 2>&1; echo $?
0
drop table test_trigger_src_tbl;
\! @abs_bindir@/gsql -ddump_with_trigger -p @portstring@ -f "@abs_bindir@/dump_with_trigger.sql";
SET
SET
SET
SET
SET
SET
SET
SET
SET
DROP TRIGGER
DROP TABLE
DROP FUNCTION
SET
SET
SET
CREATE FUNCTION
ALTER FUNCTION
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TRIGGER
--?.*
-- dump_with_trigger check
SELECT tgname AS trigger_name,
       tgisinternal AS internal,
       tgtype::varchar AS trigger_type,
       tgrelid::regclass AS table_name,
       tgfoid::regproc AS function_name,
       tgattr AS trigger_columns,
       tgqual AS qualifier
FROM pg_trigger order by 1;
  trigger_name   | internal | trigger_type |      table_name       |  function_name   | trigger_columns | qualifier 
-----------------+----------+--------------+-----------------------+------------------+-----------------+-----------
 insert_trigger  | f        | 7            | test_trigger_src_tbl  | tri_insert_func  |                 | 
 insert_trigger2 | f        | 7            | test_trigger_src_tbl2 | tri_insert_func2 |                 | 
 insert_trigger3 | f        | 7            | test_trigger_src_tbl3 | tri_insert_func3 |                 | 
(3 rows)

\! @abs_bindir@/gs_dump -p @portstring@ -v -f @abs_bindir@/dump_with_trigger2.csv -b dump_with_trigger -c  -t "test_trigger_src_tbl*" >/dev/null 2>&1; echo $?
0
\! @abs_bindir@/gsql -d dump_with_trigger2 -p @portstring@ -f "@abs_bindir@/dump_with_trigger2.csv";
SET
SET
SET
SET
SET
SET
SET
SET
SET
DROP TRIGGER
DROP TRIGGER
DROP TRIGGER
DROP TABLE
DROP TABLE
DROP TABLE
DROP FUNCTION
DROP FUNCTION
DROP FUNCTION
SET
SET
SET
CREATE FUNCTION
ALTER FUNCTION
CREATE FUNCTION
ALTER FUNCTION
CREATE FUNCTION
ALTER FUNCTION
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TRIGGER
CREATE TRIGGER
CREATE TRIGGER
--?.*
\! @abs_bindir@/gsql -d dump_with_trigger -p @portstring@ -f "@abs_bindir@/dump_with_trigger2.csv";
SET
SET
SET
SET
SET
SET
SET
SET
SET
DROP TRIGGER
DROP TRIGGER
DROP TRIGGER
DROP TABLE
DROP TABLE
DROP TABLE
DROP FUNCTION
DROP FUNCTION
DROP FUNCTION
SET
SET
SET
CREATE FUNCTION
ALTER FUNCTION
CREATE FUNCTION
ALTER FUNCTION
CREATE FUNCTION
ALTER FUNCTION
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TRIGGER
CREATE TRIGGER
CREATE TRIGGER
--?.*
\c postgres
drop database dump_with_trigger;
drop database dump_with_trigger2;