On Tue, Feb 19, 2013 at 08:30:29AM +0100, Pavel Stehule wrote:
> Hello
>
> There was a proposal to change flag of function to immutable - should
> be used in indexes
>
> CREATE FUNCTION unaccent(regdictionary, text)
> RETURNS text
> AS 'MODULE_PATHNAME', 'unaccent_dict'
> LANGUAGE C STABLE STRICT;
>
>
> is there any progress?
I have developed the attached patch based on your suggestion. I did not
see anything in the code that would make it STABLE, except a lookup of a
dictionary library:
dictOid = get_ts_dict_oid(stringToQualifiedNameList("unaccent"), false);
--
Bruce Momjian <[email protected]> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
diff --git a/contrib/unaccent/unaccent--1.0.sql b/contrib/unaccent/unaccent--1.0.sql
new file mode 100644
index 9085ca4..072b749
*** a/contrib/unaccent/unaccent--1.0.sql
--- b/contrib/unaccent/unaccent--1.0.sql
***************
*** 6,17 ****
CREATE FUNCTION unaccent(regdictionary, text)
RETURNS text
AS 'MODULE_PATHNAME', 'unaccent_dict'
! LANGUAGE C STABLE STRICT;
CREATE FUNCTION unaccent(text)
RETURNS text
AS 'MODULE_PATHNAME', 'unaccent_dict'
! LANGUAGE C STABLE STRICT;
CREATE FUNCTION unaccent_init(internal)
RETURNS internal
--- 6,17 ----
CREATE FUNCTION unaccent(regdictionary, text)
RETURNS text
AS 'MODULE_PATHNAME', 'unaccent_dict'
! LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION unaccent(text)
RETURNS text
AS 'MODULE_PATHNAME', 'unaccent_dict'
! LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION unaccent_init(internal)
RETURNS internal
diff --git a/contrib/unaccent/unaccent--unpackaged--1.0.sql b/contrib/unaccent/unaccent--unpackaged--1.0.sql
new file mode 100644
index abd0698..5bff74e
*** a/contrib/unaccent/unaccent--unpackaged--1.0.sql
--- b/contrib/unaccent/unaccent--unpackaged--1.0.sql
*************** ALTER EXTENSION unaccent ADD function un
*** 10,16 ****
ALTER EXTENSION unaccent ADD text search template unaccent;
ALTER EXTENSION unaccent ADD text search dictionary unaccent;
! -- These functions are marked as stable in 9.1, were not before:
! ALTER FUNCTION unaccent(regdictionary, text) STABLE;
! ALTER FUNCTION unaccent(text) STABLE;
--- 10,16 ----
ALTER EXTENSION unaccent ADD text search template unaccent;
ALTER EXTENSION unaccent ADD text search dictionary unaccent;
! -- These functions were marked as stable in 9.1; they were now marked as immutable
! ALTER FUNCTION unaccent(regdictionary, text) IMMUTABLE;
! ALTER FUNCTION unaccent(text) IMMUTABLE;
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers