On 10/9/16 11:02 PM, Corey Huinker wrote:

    There's actually another use case here that's potentially extremely
    valuable for warehousing and other "big data": compact
    representation of a default value.

I too would benefit from tables having either a default value in the
event of a NOT-NULL column being flagged null, or a flat-out constant.

This would be a big win in partitioned tables where the partition can
only hold one value of the partitioning column.

I hadn't thought of that use case... with rowcounts in the billions becoming pretty common even the cost of a 4 byte enum starts to add up.

I guess a constant would be a pg_type where the sole value is encoded,
and the column itself is stored like an empty string.

Not empty string; the storage would look like NULL does today; the difference being that we'd know that attribute wasn't NULL-able so if it's marked as being "NULL" it actually means it has the default value. Though obviously this would only work if the default was a Const, and you wouldn't be able to change the default without ensuring no rows in the table were using this trick. But I suspect there's still plenty of scenarios where the advantage is worth it.
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)   mobile: 512-569-9461

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

Reply via email to