Re: Fast AT ADD COLUMN with DEFAULTs - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: Fast AT ADD COLUMN with DEFAULTs
Date
Msg-id 6353c1c3-2e96-5b7e-d601-be432312c805@BlueTreble.com
Whole thread Raw
In response to Re: Fast AT ADD COLUMN with DEFAULTs  (Corey Huinker <corey.huinker@gmail.com>)
Responses Re: Fast AT ADD COLUMN with DEFAULTs
List pgsql-hackers
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



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Password identifiers, protocol aging and SCRAM protocol
Next
From: Serge Rielau
Date:
Subject: Re: Fast AT ADD COLUMN with DEFAULTs