Re: BUG #5781: unaccent() function should be marked IMMUTABLE - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #5781: unaccent() function should be marked IMMUTABLE
Date
Msg-id 16472.1291351806@sss.pgh.pa.us
Whole thread Raw
In response to BUG #5781: unaccent() function should be marked IMMUTABLE  ("Grant Hutchins and Peter Jaros" <grant@pivotallabs.com>)
Responses Re: BUG #5781: unaccent() function should be marked IMMUTABLE  (Greg Stark <gsstark@mit.edu>)
Re: BUG #5781: unaccent() function should be marked IMMUTABLE  (Bruce Momjian <bruce@momjian.us>)
List pgsql-bugs
"Grant Hutchins and Peter Jaros" <grant@pivotallabs.com> writes:
> The unaccent(text) function supplied by contrib/unaccent is marked VOLATILE.
> This prevents it from being used in indexes. We believe that the function
> meets the requirements to be marked IMMUTABLE.

No, it most certainly doesn't.  It depends on the behavior of a
dictionary that it has no hard-wired connection to, so the specific
behavior of the dictionary is uncertain.  Even if you're willing to
assume that the dictionary being used is the one defined by this
module, that dictionary depends on external configuration files
which are easily changeable.

Arguably it'd be reasonable to change the function's marking from
volatile to stable, but that's not going to be enough to allow use in
indexes.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Bug: table inheritance. Trigger before DELETE for each statement is ignored
Next
From: Konstantin Nikiforov
Date:
Subject: Re: Bug: table inheritance. Trigger before DELETE for each statement is ignored