The following patch truncates trailing null attributes from heap rows to reduce 
the size of the row bitmap. 


Applications often have wide rows in which many of the trailing column values 
are null. On an insert/update, all of the trailing null columns are tracked in 
the row bitmap. This can add a substantial overhead for very wide rows. This 
change truncates heap rows such that the trailing nulls are elided. 

The intuition for this change is that ALTER TABLE t ADD COLUMN c type NULL is a 
metadata only change. Postgres works fine when a row's metadata (tuple 
descriptor) is inconsistent with the actual row data: extra columns are assumed 
to be null. This change just adjusts the number of attributes for a row and the 
row bitmap to only track up to the last non-null attribute.

Thanks.

-Jamie Martin

Attachment: 0001-Truncate-trailing-null-attributes-from-heap-rows-to-.patch
Description: Binary data

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to