summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/londiste/expected/londiste_provider.out9
-rw-r--r--sql/londiste/functions/londiste.create_trigger.sql2
-rw-r--r--sql/londiste/sql/londiste_provider.sql3
3 files changed, 13 insertions, 1 deletions
diff --git a/sql/londiste/expected/londiste_provider.out b/sql/londiste/expected/londiste_provider.out
index 7ee31983..126f2b91 100644
--- a/sql/londiste/expected/londiste_provider.out
+++ b/sql/londiste/expected/londiste_provider.out
@@ -185,3 +185,12 @@ select ev_id, ev_type, ev_data, ev_extra1, ev_extra4 from pgq.event_template whe
11 | R | | public.hdlr_test |
(4 rows)
+-- test proper trigger creation with add-table specific args
+select * from londiste.local_add_table('aset', 'public.trg_test', array['ev_extra4=''test='' || txt', 'expect_sync', 'skip']);
+ ret_code | ret_note
+----------+------------------------------
+ 200 | Table added: public.trg_test
+(1 row)
+
+insert into trg_test values (2, 'data2');
+ERROR: SKIP does not work in AFTER trigger.
diff --git a/sql/londiste/functions/londiste.create_trigger.sql b/sql/londiste/functions/londiste.create_trigger.sql
index affa69c7..9dbf4cab 100644
--- a/sql/londiste/functions/londiste.create_trigger.sql
+++ b/sql/londiste/functions/londiste.create_trigger.sql
@@ -86,7 +86,7 @@ begin
_skip := true;
elsif arg = 'virtual_table' then
_no_triggers := true; -- do not create triggers
- else
+ elsif arg not in ('expect_sync', 'skip_truncate', 'merge_all', 'no_merge') then -- ignore add-table args
if arg like 'ev_extra1=%' then
_got_extra1 := true;
end if;
diff --git a/sql/londiste/sql/londiste_provider.sql b/sql/londiste/sql/londiste_provider.sql
index cfd300ee..1f501556 100644
--- a/sql/londiste/sql/londiste_provider.sql
+++ b/sql/londiste/sql/londiste_provider.sql
@@ -69,3 +69,6 @@ truncate hdlr_test;
select ev_id, ev_type, ev_data, ev_extra1, ev_extra4 from pgq.event_template where ev_extra1 = 'public.hdlr_test';
+-- test proper trigger creation with add-table specific args
+select * from londiste.local_add_table('aset', 'public.trg_test', array['ev_extra4=''test='' || txt', 'expect_sync', 'skip']);
+insert into trg_test values (2, 'data2');