COMPRESS VALUES feature request

Started by Erez Segalover 8 years ago2 messages
#1Erez Segal
erezsegal@gmail.com

Hi,

Following a discussion in the IRC channel, I'd like to suggest a feature
request to the ToDo WIKI page <https://wiki.postgresql.org/wiki/Todo&gt;.

The use case is having a column with strings/floats, where some values are
very common and can be compressed, while many other values are unique,
making a lookup table not efficient.

It can be part of a column definition, set in CREATE TABLE/ALTER TABLE
e.g. field VARCHAR(255) COMPRESS (NULL, 'EREZ', 'SEGAL')

The feature exists in TeraData:
https://community.teradata.com/t5/Database/how-does-compress-work-in-tables/td-p/13950

In the IRC channel - johto suggested an implementation:

<johto> if you want to get really fancy you could have two columns where
only one of set; one would be the value (if reasonably unique) and the
other the id (if not)
I'd like to add that an ENUM can be used instead of the id+lookup table in
the 2nd column for non unique values.

#2Marko Tiikkaja
marko@joh.to
In reply to: Erez Segal (#1)
Re: COMPRESS VALUES feature request

On Tue, May 9, 2017 at 8:18 PM, Erez Segal <erezsegal@gmail.com> wrote:

In the IRC channel - johto suggested an implementation:

<johto> if you want to get really fancy you could have two columns where
only one of set; one would be the value (if reasonably unique) and the
other the id (if not)

I only suggested how to do this in an application if one really wants the
feature so badly. I don't think this would fly as a native implementation.

I'd like to add that an ENUM can be used instead of the id+lookup table in
the 2nd column for non unique values.

An ENUM in postgres *is* an id + lookup table..

.m