Robert Haas wrote:
> On Wed, Dec 22, 2010 at 8:45 PM, Bruce Momjian <br...@momjian.us> wrote:
> > Tom Lane wrote:
> >> "Grant Hutchins and Peter Jaros" <gr...@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.
> >
> > So, should we change unaccent() from VOLATILE to STABLE?
> 
> Sounds like it, but it doesn't sound like it will help much.  :-(

OK, done, with attached, applied patch.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/contrib/unaccent/unaccent.sql.in b/contrib/unaccent/unaccent.sql.in
index 7e397cc..6d712e7 100644
*** /tmp/l3zFae_unaccent.sql.in	Mon Dec 27 15:33:55 2010
--- contrib/unaccent/unaccent.sql.in	Mon Dec 27 15:24:16 2010
*************** SET search_path = public;
*** 6,17 ****
  CREATE OR REPLACE FUNCTION unaccent(regdictionary, text)
  	RETURNS text
  	AS 'MODULE_PATHNAME', 'unaccent_dict'
! 	LANGUAGE C STRICT;
  
  CREATE OR REPLACE FUNCTION unaccent(text)
  	RETURNS text
  	AS 'MODULE_PATHNAME', 'unaccent_dict'
! 	LANGUAGE C STRICT;
  
  CREATE OR REPLACE FUNCTION unaccent_init(internal)
  	RETURNS internal
--- 6,17 ----
  CREATE OR REPLACE FUNCTION unaccent(regdictionary, text)
  	RETURNS text
  	AS 'MODULE_PATHNAME', 'unaccent_dict'
! 	LANGUAGE C STABLE STRICT;
  
  CREATE OR REPLACE FUNCTION unaccent(text)
  	RETURNS text
  	AS 'MODULE_PATHNAME', 'unaccent_dict'
! 	LANGUAGE C STABLE STRICT;
  
  CREATE OR REPLACE FUNCTION unaccent_init(internal)
  	RETURNS internal
-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to