Re: Proposal: custom compression methods - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: Proposal: custom compression methods
Date
Msg-id 56723298.8000403@BlueTreble.com
Whole thread Raw
In response to Re: Proposal: custom compression methods  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
List pgsql-hackers
On 12/16/15 7:03 AM, Tomas Vondra wrote:
>
> While versioning or increasing the 1GB limit are interesting, they have
> nothing to do with this particular patch. (BTW I don't see how the
> versioning would work at varlena level - that's something that needs to
> be handled at data type level).

Right, but that's often going to be very hard to do and still support 
pg_upgrade. It's not like most types have spare bits laying around. 
Granted, this still means non-varlena types are screwed.

> I think the only question we need to ask here is whether we want to
> allow mixed compression for a column. If no, we're OK with the current
> header. This is what the patch does, as it requires a rewrite after
> changing the compression method.

I think that is related to the other items though: none of those other 
items (except maybe the 1G limit) seem to warrant dorking with varlena, 
but if there were 3 separate features that could make use of support for 
8 byte varlena then perhaps it's time to invest in that effort. 
Especially since IIRC we're currently out of bits, so if we wanted to 
change this we'd need to do it at least a release in advance so there 
was a version that would expand 4 byte varlena to 8 byte as needed.

> And we're not painting ourselves in the corner - if we decide to
> increase the varlena header size in the future, this patch does not make
> it any more complicated.

True.
-- 
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



pgsql-hackers by date:

Previous
From: Jim Nasby
Date:
Subject: Re: Remove array_nulls?
Next
From: Jim Nasby
Date:
Subject: Re: Disabling an index temporarily