You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
* attach before and after insertion triggers to partitioned table
16
+
*/
17
+
/* prepare trigger functions*/
18
+
CREATE OR REPLACEFUNCTIONtest_inserts.print_cols_before_change() RETURNS TRIGGERAS $$
19
+
BEGIN
20
+
RAISE NOTICE'BEFORE INSERTION TRIGGER ON TABLE % HAS EXPIRED. INSERTED ROW: %', tg_table_name, new;
21
+
RETURN new;
22
+
END;
23
+
$$ LANGUAGE plpgsql;
24
+
CREATE OR REPLACEFUNCTIONtest_inserts.print_cols_after_change() RETURNS TRIGGERAS $$
25
+
BEGIN
26
+
RAISE NOTICE'AFTER INSERTION TRIGGER ON TABLE % HAS EXPIRED. INSERTED ROW: %', tg_table_name, new;
27
+
RETURN new;
28
+
END;
29
+
$$ LANGUAGE plpgsql;
30
+
/* set triggers on existing first partition and new generated partitions*/
31
+
CREATETRIGGERprint_new_row_before_insert BEFORE INSERTONtest_inserts.storage_1
32
+
FOR EACH ROW EXECUTE PROCEDUREtest_inserts.print_cols_before_change();
33
+
CREATETRIGGERprint_new_row_after_insert AFTER INSERTONtest_inserts.storage_1
34
+
FOR EACH ROW EXECUTE PROCEDUREtest_inserts.print_cols_after_change();
35
+
CREATE OR REPLACEFUNCTIONtest_inserts.set_triggers(args jsonb) RETURNS VOIDAS $$
36
+
BEGIN
37
+
EXECUTE format('create trigger print_new_row_before_insert before insert on %s.%s for each row execute procedure test_inserts.print_cols_before_change();', args->>'partition_schema', args->>'partition');
38
+
EXECUTE format('create trigger print_new_row_after_insert after insert on %s.%s for each row execute procedure test_inserts.print_cols_after_change();', args->>'partition_schema', args->>'partition');