BUG #4187: function to_tsvector not immutable

Started by Martin Sullivanalmost 18 years ago2 messagesbugs
Jump to latest
#1Martin Sullivan
ms08@zois.co.uk

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.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Martin Sullivan (#1)
Re: BUG #4187: function to_tsvector not immutable

"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