Tom Lane wrote:
> > If there was corrupt data in a table, how would one go about finding it?
>
> The brute-force way is to do a SELECT * or COPY TO and see if the
> backend survives ;-). If not, narrowing down which record is bad
> is left as an exercise for the student...
One RDBMS I used had a utility called 'dbcheck' which did some sort of
examination of indices, tables, etc., and issued an 'OK' or 'CORRUPT' for
each examined object. Such a utility for pgsql might simply do some
combination of SELECT * or COPY TO as you suggest above.
Would it be reasonable to put such a tool make its way onto the todo list, in
the absence of better alternatives? I'd argue it's important for pgsql's
future popular prospects to be able to be _operated_ (i.e., live dbs backed
up, diagnosed as corrupted, and restored) by folks who may know very little
about the internals or the design of the schema/code. Quick and correct
diagnosis of the problem is the key for them. Such a tool would seem to go a
long way toward that end.
Cheers,
Ed Loehr