Pocket tool LSN to WAL file

WAL file
0000000100000016000000B3the timeline, then the segment number in two halves
Offset in it
7657544bytes, 0x74D848
Segment
5,81116 MB, from 16/B3000000 to 16/B3FFFFFF

Worked out as pg_walfile_name_offset() works it out in PostgreSQL 18.3, and tested against what it prints. With JavaScript off, this is the example the build worked out.

Pocket tool Infomask decoder

raw_flags
  • HEAP_HASVARWIDTH 0x0002: some attribute is variable-width
  • HEAP_XMIN_COMMITTED 0x0100: hint: xmin is known to have committed
  • HEAP_XMAX_INVALID 0x0800: hint: xmax is invalid or aborted, so no delete, update or lock holds
combined_flags
none
Attributes
3t_infomask2 & 0x07FF: how many the tuple stores

Worked out as heap_tuple_infomask_flags() works it out in PostgreSQL 18.3, and tested against what it prints. With JavaScript off, this is the example the build worked out.

For an agent in the browser, where it has WebMCP, every page of the site offers the same tools, as lsn_to_wal_file and decode_infomask. Both only read. Each tool’s page has a markdown twin with its arithmetic.

↑↓ move · ↵ open · esc close