Repair damage done by citext--1.1--1.2.sql.

That script is incorrect in that it sets the combine function for
max(citext) twice instead of setting the combine function for
max(citext) once and the combine functon for min(citext) once.  The
consequence is that if you install 1.0 or 1.1 and then update to 1.2,
you end up with min(citext) not having a combine function, contrary to
what was intended.  If you install 1.2 directly, you're OK.

Fix things up by defining a new 1.3 version.  Upgrading from 1.2 to
1.3 won't change anything for people who first installed the 1.2
version, but people upgrading from 1.0 or 1.1 will get the right
catalog contents once they reach 1.3.

Report and patch by David Rowley, reviewed by Andreas Karlsson.
This commit is contained in:
Robert Haas 2016-07-26 15:32:57 -04:00
parent 4452000f31
commit fe5e3fce79
4 changed files with 10 additions and 3 deletions

View File

@ -3,8 +3,8 @@
MODULES = citext
EXTENSION = citext
DATA = citext--1.2.sql citext--1.1--1.2.sql citext--1.0--1.1.sql \
citext--unpackaged--1.0.sql
DATA = citext--1.3.sql citext--1.2--1.3.sql citext--1.1--1.2.sql \
citext--1.0--1.1.sql citext--unpackaged--1.0.sql
PGFILEDESC = "citext - case-insensitive character string data type"
REGRESS = citext

View File

@ -0,0 +1,7 @@
/* contrib/citext/citext--1.2--1.3.sql */
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION citext UPDATE TO '1.3'" to load this file. \quit
UPDATE pg_aggregate SET aggcombinefn = 'citext_smaller'
WHERE aggfnoid = 'min(citext)'::pg_catalog.regprocedure;

View File

@ -1,5 +1,5 @@
# citext extension
comment = 'data type for case-insensitive character strings'
default_version = '1.2'
default_version = '1.3'
module_pathname = '$libdir/citext'
relocatable = true