[BUG]Update Toast data failure in logical replication
От | tanghy.fnst@fujitsu.com |
---|---|
Тема | [BUG]Update Toast data failure in logical replication |
Дата | |
Msg-id | OS0PR01MB611342D0A92D4F4BF26C0F47FB229@OS0PR01MB6113.jpnprd01.prod.outlook.com обсуждение исходный текст |
Ответы |
RE: [BUG]Update Toast data failure in logical replication
|
Список | pgsql-hackers |
Hi I think I just found a bug in logical replication. Data couldn't be synchronized while updating toast data. Could anyonetake a look at it? Here is the steps to proceduce the BUG: ------publisher------ CREATE TABLE toasted_key ( id serial, toasted_key text PRIMARY KEY, toasted_col1 text, toasted_col2 text ); CREATE PUBLICATION pub FOR TABLE toasted_key; ------subscriber------ CREATE TABLE toasted_key ( id serial, toasted_key text PRIMARY KEY, toasted_col1 text, toasted_col2 text ); CREATE SUBSCRIPTION sub CONNECTION 'dbname=postgres' PUBLICATION pub; ------publisher------ ALTER TABLE toasted_key ALTER COLUMN toasted_key SET STORAGE EXTERNAL; ALTER TABLE toasted_key ALTER COLUMN toasted_col1 SET STORAGE EXTERNAL; INSERT INTO toasted_key(toasted_key, toasted_col1) VALUES(repeat('1234567890', 200), repeat('9876543210', 200)); UPDATE toasted_key SET toasted_col2 = toasted_col1; ------subscriber------ SELECT count(*) FROM toasted_key WHERE toasted_col2 = toasted_col1; The above command is supposed to output "count = 1" but in fact it outputs "count = 0" which means UPDATE operation failedat the subscriber. Right? I debugged and found the subscriber could receive message from publisher, and in apply_handle_update_internal function, itinvoked FindReplTupleInLocalRel function but failed to find a tuple. FYI, I also tested DELETE operation(DELETE FROM toasted_key;), which also invoked FindReplTupleInLocalRel function, and theresult is ok. Regards Tang
В списке pgsql-hackers по дате отправления: