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 $?
drop table test_trigger_src_tbl;
\! @abs_bindir@/gsql -ddump_with_trigger -p @portstring@ -f "@abs_bindir@/dump_with_trigger.sql";
-- 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;
\! @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 $?
\! @abs_bindir@/gsql -d dump_with_trigger2 -p @portstring@ -f "@abs_bindir@/dump_with_trigger2.csv";
\! @abs_bindir@/gsql -d dump_with_trigger -p @portstring@ -f "@abs_bindir@/dump_with_trigger2.csv";
\c postgres
drop database dump_with_trigger;
drop database dump_with_trigger2;