Re: [BUG]Update Toast data failure in logical replication
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Dilip Kumar <dilipbalaut@gmail.com>,
Petr Jelinek <petr.jelinek@enterprisedb.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Tomas Vondra <tomas.vondra@enterprisedb.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>, Andres Freund <andres@anarazel.de>,
Kuntal Ghosh <kuntalghosh.2007@gmail.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-01-24T20:10:05Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
WAL log unchanged toasted replica identity key attributes.
- 5e01001ffb38 15.0 landed
- b5e060473273 10.21 landed
- 1cd5802ac69a 11.16 landed
- ce349cf176e2 12.11 landed
- caa231be97df 13.7 landed
- 04645bbcae72 14.3 landed
-
Add new wal_level, logical, sufficient for logical decoding.
- e55704d8b2fe 9.4.0 cited
-
Add the notion of REPLICA IDENTITY for a table.
- 07cacba983ef 9.4.0 cited
On Tue, Aug 10, 2021 at 1:20 AM Amit Kapila <amit.kapila16@gmail.com> wrote: > It seems to me this problem exists from the time we introduced > wal_level = logical in the commit e55704d8b2 [1], or another > possibility is that logical replication commit didn't consider > something to make it work. Andres, Robert, Petr, can you guys please > comment because otherwise, we might miss something here. I'm belatedly getting around to looking at this thread. My recollection of this is: I think we realized when we were working on the logical decoding stuff that the key columns of the old tuple would have to be detoasted in order for the mechanism to work, because I remember worrying about whether it would potentially be a problem that the WAL record would end up huge. However, I think we believed that the new tuple wouldn't need to have the detoasted values, because logical decoding is designed to notice all the TOAST insertions for the new tuple and reassemble those separate chunks to get the original value back. And off-hand I'm not sure why that logic doesn't apply just as much to the key columns as any others. But the evidence does suggest that there's some kind of bug here, so evidently there's some flaw in that line of thinking. I'm not sure off-hand what it is, though. -- Robert Haas EDB: http://www.enterprisedb.com