On Tue, Jun 7, 2016 at 11:19 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: > On Tue, Jun 7, 2016 at 2:52 AM, Robert Haas <robertmh...@gmail.com> wrote: >> >> On Mon, Jun 6, 2016 at 5:06 PM, Andres Freund <and...@anarazel.de> wrote: >> >> >> > I'd also be ok with adding & documenting (beta release notes) >> > CREATE EXTENSION pg_visibility; >> > SELECT relname FROM pg_class WHERE relkind IN ('r', 'm') AND NOT >> > pg_check_visibility(oid); >> > or something olong those lines. >> >> That wouldn't be too useful as-written in my book, because it gives >> you no detail on what exactly the problem was. Maybe it could be >> "pg_check_visibility(regclass) RETURNS SETOF tid", where the returned >> TIDs are non-frozen TIDs on frozen pages. Then I think something like >> this would work: >> >> SELECT c.oid, pg_check_visibility(c.oid) FROM pg_class WHERE relkind >> IN ('r', 't', 'm'); >> > > I have implemented the above function in attached patch. Currently, it > returns SETOF tupleids, but if we want some variant of same, that should > also be possible. > > > With Regards, > Amit Kapila. > EnterpriseDB: http://www.enterprisedb.com
Thank you for implementing the patch. I've not test it deeply but here are some comments. This check tool only checks if the frozen page has live-unfrozen tuple. That is, it doesn't care in case where the all-frozen page mistakenly has dead-frozen tuple. I think this tool should check such case, otherwise the function name would need to be changed. + /* Clean up. */ + if (vmbuffer != InvalidBuffer) + ReleaseBuffer(vmbuffer); I think that we should use BufferIsValid() here. Regards, -- Masahiko Sawada -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers