PostgreSQL Stores a Row: Headers, Line Pointers, and TOAST
A row is a 23-byte header plus a payload, reached through a 4-byte line pointer on a slotted 8 kB page — the indirection that makes VACUUM, HOT updates, and TOAST possible.
All posts published on this site.
Everything published here, newest first.
A row is a 23-byte header plus a payload, reached through a 4-byte line pointer on a slotted 8 kB page — the indirection that makes VACUUM, HOT updates, and TOAST possible.
ClickHouse’s sumKahan carries a compensation term and reconstructs the lost low bits on every add; sum over Decimal widens the accumulator to Decimal128.
ColumnCompressed wraps a column in an LZ4 buffer and throws on every accessor until decompress() is called.
The QBit column stores a float vector bit-transposed into bit-plane subcolumns, and an analyzer pass makes a distance query read only the planes its precision needs.
ColumnReplicated keeps the source column once and stores one row index per output row, so a fan-out JOIN copies an index instead of the data.