From 2af07e8a705e723dce87f0615243f6d5ac61f297 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Thu, 27 Aug 2009 11:45:55 +0300 Subject: [PATCH] londiste.local_add_table: use information_schema to get trigger info This allows to filter out only AFTER triggers without depending on low-level details of pg_catalog. --- .../functions/londiste.local_add_table.sql | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sql/londiste/functions/londiste.local_add_table.sql b/sql/londiste/functions/londiste.local_add_table.sql index 250bf6a3..630ab676 100644 --- a/sql/londiste/functions/londiste.local_add_table.sql +++ b/sql/londiste/functions/londiste.local_add_table.sql @@ -112,13 +112,16 @@ begin -- Don't report all the trigger names, 8.3 does not have array_accum -- available - select max(tgname) + select max(trigger_name) into logtrg_previous - from pg_catalog.pg_trigger - where tgrelid = londiste.find_table_oid(fq_table_name) - and not tgisconstraint - and substring(tgname from 1 for 10) != '_londiste_' - and tgname < logtrg_name; + from information_schema.triggers, + londiste.split_fqname(fq_table_name) + where event_object_schema = schema_part + and event_object_table = name_part + and condition_timing = 'AFTER' + and substring(trigger_name from 1 for 10) != '_londiste_' + and substring(trigger_name from char_length(trigger_name) - 6) != '_logger' + and trigger_name < logtrg_name; if logtrg_previous then select 301, -- 2.39.5