Thread: BUG #4187: function to_tsvector not immutable

BUG #4187: function to_tsvector not immutable

From
"Martin Sullivan"
Date:
The following bug has been logged online:

Bug reference:      4187
Logged by:          Martin Sullivan
Email address:      ms08@zois.co.uk
PostgreSQL version: 8.3
Operating system:   Fedora Core 9
Description:        function to_tsvector not immutable
Details:

Postgres 8.3 now supports tsearch2 as standard and it's built into the
distribution. So, to_tsvector, tsvector, the '@@' operator &al are readily
available. The only wrinkle being that to_tsvector needs to be ALTERed
to IMMUTABLE using the following (as user postgres):
 alter function to_tsvector(regconfig,text) immutable
 alter function to_tsvector(text) immutable

This is needed to allow CREATE INDEX to work with these functions and
the access methods GIN and GIST, else you get an error message about
indexes requiring immutable functions.

It should be added that the to_tsvector are declared immutable in the
8.2 contrib distribution.

Re: BUG #4187: function to_tsvector not immutable

From
Tom Lane
Date:
"Martin Sullivan" <ms08@zois.co.uk> writes:
> The only wrinkle being that to_tsvector needs to be ALTERed
> to IMMUTABLE using the following (as user postgres):
>  alter function to_tsvector(regconfig,text) immutable
>  alter function to_tsvector(text) immutable

The current settings are intentional: the one-parameter form of
to_tsvector depends on a GUC parameter, so claiming it is immutable
is simply wrong.  Please read the documentation concerning how to
use these functions with an index.

            regards, tom lane