On 01/29/2018 03:17 PM, Simon Riggs wrote: > On 29 January 2018 at 14:13, Tomas Vondra <tomas.von...@2ndquadrant.com> > wrote: > >> 4) inspect the new row (which we still have in reorderbuffer) >> >> 5) Kabooom! The row has column "c" which we don't see in the catalog. > > We don't use caches? Why does a cache miss cause it to explode? >
We do use caches (and we invalidate them), of course. But the problem is that by the time we get to lookup the row, it may be either removed by VACUUM (because the catalog cleanup is more aggressive) or not reachable using an index (which is the HOT issue pointed out by Robert earlier in this thread). regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services