Re: compress method for spgist - 2 - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: compress method for spgist - 2
Date
Msg-id 5481B1E4.60606@vmware.com
Whole thread Raw
In response to compress method for spgist - 2  (Teodor Sigaev <teodor@sigaev.ru>)
List pgsql-hackers
On 12/01/2014 02:44 PM, Teodor Sigaev wrote:
>
> Initial message:
> http://www.postgresql.org/message-id/5447B3FF.2080406@sigaev.ru
>
> Second version fixes a forgotten changes in pg_am.

> +        /* Get the information we need about each relevant datatypes */
> +
> +        if (OidIsValid(cache->config.leafType) && cache->config.leafType != atttype)
> +        {
> +            if (!OidIsValid(index_getprocid(index, 1, SPGIST_COMPRESS_PROC)))
> +                ereport(ERROR,
> +                        (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
> +                         errmsg("compress method is not defined although input and leaf types are differ")));
> +
> +            fillTypeDesc(&cache->attType, cache->config.leafType);
> +        }
> +        else
> +        {
> +            fillTypeDesc(&cache->attType, atttype);
> +        }
> +

For some datatypes, the compress method might be useful even if the leaf 
type is the same as the column type. For example, you could allow 
indexing text datums larger than the page size, with a compress function 
that just truncates the input.

Could you find some use for this in one of the built-in or contrib 
types? Just to have something that exercises it as part of the 
regression suite. How about creating an opclass for the built-in polygon 
type that stores the bounding box, like the PostGIS guys are doing?

The documentation needs to be updated.

- Heikki




pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: superuser() shortcuts
Next
From: Rahila Syed
Date:
Subject: Re: [REVIEW] Re: Compression of full-page-writes