> On Aug 19, 2021, at 10:17 AM, Andrey Borodin <x4...@yandex-team.ru> wrote:
> 
> It would be great to see relation, block, offset, xmin\xmax and, probably, 
> flags whenever ERRCODE_DATA_CORRUPTED\ERRCODE_INDEX_CORRUPTED is used. Iif 
> it's possible to extract this information, of cause. This is needed 
> especially in amcheck functions.

blockno, offnum and attnum are already included in every result for amcheck 
functions over heap relations, though attnum may be null if the corruption is 
not specific to any particular column.

xmin, xmax and various flags may occur in the corruption message if they are 
relevant, but they are not always present.

There was some disagreement during the development of verify_heapam on this 
point.  We went with the idea that the user could find and inspect the corrupt 
data with another tool if they had the (blockno, offnum, attnum) information.  
As such, it wasn't necessary to include all the data in the output.

It shouldn't be too complicated to have a second interface that returns all of 
the 23 byte main table tuple header information and also the 23 byte toast 
tuple header (when relevant) along with the corruption message.  The guts of 
the corruption check would be shared between the two interfaces.  I haven't 
tried writing a patch yet, but it seems the patch shouldn't be terribly 
complicated.

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company





Reply via email to