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: http://www.postgresql.org/mailpref/pgsql-hackers