On 01/19/2018 08:33 PM, Robert Haas wrote: > On Fri, Jan 19, 2018 at 2:16 PM, Tomas Vondra > <tomas.von...@2ndquadrant.com> wrote: >> I think an important piece of this puzzle is that we only really care >> about catalog changes made in a transaction that aborts after doing some >> additional changes, with that catalog tuple in place. Because only then >> we actually need that catalog tuple in order to interpret the changes. >> >> AFAICS that guarantees the catalog changes were not interrupted half-way >> through, leaving some of the catalogs in inconsistent state. > > Yeah, that may be true, and I alluded to it in the part you didn't > quote. However, it doesn't help with the second problem I mentioned, > which looks to me to be a fatal problem. >
Ah, OK - I didn't realize "using a command ID value that was reached prior to the error" refers to this scenario. Regarding the HOT issue - I have to admit I don't quite see why A2 wouldn't be reachable through the index, but that's likely due to my limited knowledge of the HOT internals. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services