200 | Table added: public.testdata
(1 row)
+select tgname from pg_trigger where tgrelid = 'public.testdata'::regclass;
+ tgname
+----------------
+ _londiste_aset
+(1 row)
+
insert into testdata (txt) values ('test-data');
select * from londiste.get_table_list('aset');
table_name | local | merge_state | custom_snapshot | table_attrs | dropped_ddl | copy_role
400 | Table not found: public.testdata
(1 row)
+select tgname from pg_trigger where tgrelid = 'public.testdata'::regclass;
+ tgname
+--------
+(0 rows)
+
select * from londiste.get_table_list('aset');
table_name | local | merge_state | custom_snapshot | table_attrs | dropped_ddl | copy_role
------------+-------+-------------+-----------------+-------------+-------------+-----------
fq_table_name text;
logtrg_name text;
tbl record;
+ b_queue_name bytea;
begin
fq_table_name := londiste.make_fqname(i_table_name);
end if;
if tbl.local then
- -- drop trigger if exists
- logtrg_name := i_queue_name || '_logtrigger';
- execute 'drop trigger if exists ' || quote_ident(logtrg_name)
- || ' on ' || londiste.quote_fqname(fq_table_name);
+ -- cast to bytea
+ b_queue_name := replace(i_queue_name, E'\\', E'\\\\')::bytea;
+
+ -- drop all replication triggers that target our queue.
+ -- by checking trigger func and queue name there is not
+ -- dependency on naming standard or side-storage.
+ for logtrg_name in
+ select tgname from pg_catalog.pg_trigger
+ where tgrelid = londiste.find_table_oid(fq_table_name)
+ and tgfoid in ('pgq.sqltriga'::regproc::oid, 'pgq.logutriga'::regproc::oid)
+ and substring(tgargs for (position(E'\\000'::bytea in tgargs) - 1)) = b_queue_name
+ loop
+ execute 'drop trigger ' || quote_ident(logtrg_name)
+ || ' on ' || londiste.quote_fqname(fq_table_name);
+ end loop;
+
-- reset data
update londiste.table_info
set local = false,
select * from londiste.local_add_table('aset', 'public.testdata_nopk');
select * from londiste.local_add_table('aset', 'public.testdata');
+select tgname from pg_trigger where tgrelid = 'public.testdata'::regclass;
insert into testdata (txt) values ('test-data');
select * from londiste.get_table_list('aset');
select * from londiste.local_show_missing('aset');
select * from londiste.local_remove_table('aset', 'public.testdata');
select * from londiste.local_remove_table('aset', 'public.testdata');
+select tgname from pg_trigger where tgrelid = 'public.testdata'::regclass;
select * from londiste.get_table_list('aset');
select ev_id, ev_type, ev_data, ev_extra1 from pgq.event_template;