Thread: [HACKERS] Logical replication failing when foreign key present
Hi, There's an issue which I haven't seen documented as expected behaviour, where replicating data to a table which has a foreign key results in a replication failure. This produces the following log entries: LOG: starting logical replication worker for subscription "contacts_sub" LOG: logical replication apply for subscription "contacts_sub" has started ERROR: AfterTriggerSaveEvent() called outside of query LOG: worker process: logical replication worker for subscription 16408 (PID 19201) exited with exit code 1 Reproducible test case: On both instances: CREATE TABLE b (bid int PRIMARY KEY); CREATE TABLE a (id int PRIMARY KEY, bid int REFERENCES b (bid)); INSERT INTO b (bid)VALUES (1); First instance: CREATE PUBLICATION a_pub FOR TABLE a; Second instance: CREATE SUBSCRIPTION a_sub CONNECTION 'host=127.0.0.1 port=5530 user=thom dbname=postgres' PUBLICATION a_pub; First instance:INSERT INTO a (id, bid) VALUES (1,1); Regards Thom
On 22/01/17 18:50, Thom Brown wrote: > Hi, > > There's an issue which I haven't seen documented as expected > behaviour, where replicating data to a table which has a foreign key > results in a replication failure. This produces the following log > entries: > > LOG: starting logical replication worker for subscription "contacts_sub" > LOG: logical replication apply for subscription "contacts_sub" has started > ERROR: AfterTriggerSaveEvent() called outside of query > LOG: worker process: logical replication worker for subscription > 16408 (PID 19201) exited with exit code 1 > > Hi, thanks for report. Looks like I missed AfterTriggerBeginQuery/AfterTriggerEndQuery when moving the executor stuff around. Attached should fix it. -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Attachment
On 1/22/17 18:07, Petr Jelinek wrote: > On 22/01/17 18:50, Thom Brown wrote: >> There's an issue which I haven't seen documented as expected >> behaviour, where replicating data to a table which has a foreign key >> results in a replication failure. This produces the following log >> entries: > Hi, thanks for report. > > Looks like I missed AfterTriggerBeginQuery/AfterTriggerEndQuery when > moving the executor stuff around. Attached should fix it. This has been fixed. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services