On 2018-05-25 15:05:31 -0700, Andres Freund wrote: > On 2018-05-25 17:47:37 -0400, Tom Lane wrote: > > For nailed indexes, we allow updating of some additional fields, and I > > guess what has to happen here is that we teach the code to update some > > additional fields for nailed tables too. > > Yea, it seems like we could just get a new version of the pg_class tuple > if in the right state, and memcpy() it into place. Not sure if there's > any other issues...
That part isn't too hard. I've a patch that appears to address the issue, and isn't *too* ugly. We don't really have a way to force .init file removal / update for shared relations however. Otherwise we'll just continue to read old data from .init files at startup. And there'll commonly not be any outstanding invalidation. Thus it appears to me that we need to extend RelcacheInitFileInval to also support the shared file. That's WAL logged, but it looks like we can just add flag like XACT_COMPLETION_UPDATE_RELCACHE_FILE without breaking the WAL format. Does anybody see a way to not have to remove the .init file? Greetings, Andres Freund