Re: pgsql: Fix "base" snapshot handling in logical decoding
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Arseny Sher <a.sher@postgrespro.ru>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2018-07-05T18:22:32Z
Lists: pgsql-hackers
Hi Arseny. I'm writing a commit message to push this test change, and I can't explain this bit: On 2018-Jul-02, Arseny Sher wrote: > 3) As a side note, answer to my question 'why do we get different errors > with VACUUM and VACUUM FULL' is the following. With VACUUM FULL, not > only old pg_attribute entry is pruned, but also xmin of new entry > with attisdropped=true is reset to frozen xid. This means that > decoding session (RelationBuildTupleDesc) actually sees 3 attributes, > and the fact that one of them is dropped doesn't embarrass this > function (apparently relnatts in pg_class is never decremented) -- > we just go ahead and decode only live attributes. I just don't see it that VACUUM FULL would change the xmin of anything to FrozenXid, and in my experiments it doesn't. Did you mean VACUUM FREEZE? PS - sorry about the broken CC I added :-( -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Reduce cost of test_decoding's new oldest_xmin test
- 7acbb481c808 10.5 landed
- 301b2a1aad77 9.6.10 landed
- eedbbff504e4 9.5.14 landed
- aba2184bed64 11.0 landed
- 8d1c1ca70b01 12.0 landed
-
Fix "base" snapshot handling in logical decoding
- f49a80c481f7 11.0 cited