]> granicus.if.org Git - postgresql/commitdiff
Fix citext's upgrade-from-unpackaged script to set its collation correctly.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Mar 2011 18:22:18 +0000 (13:22 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Mar 2011 18:22:18 +0000 (13:22 -0500)
Although there remains some debate about how CREATE TYPE should represent
the collation property, this doesn't really affect what we need to do in
citext's script, so go ahead and fix that.

contrib/citext/citext--unpackaged--1.0.sql

index 7dcdc39413a3cdcdd73c393116378efb8a8d067f..a59df36797cba6768a617a2c750c9f14cb4db523 100644 (file)
@@ -74,3 +74,15 @@ ALTER EXTENSION citext ADD function strpos(citext,citext);
 ALTER EXTENSION citext ADD function replace(citext,citext,citext);
 ALTER EXTENSION citext ADD function split_part(citext,citext,integer);
 ALTER EXTENSION citext ADD function translate(citext,citext,text);
+
+--
+-- As of 9.1, type citext should be marked collatable.  There is no ALTER TYPE
+-- command for this, so we have to do it by poking the pg_type entry directly.
+-- Notes: 100 is the OID of the "pg_catalog.default" collation --- it seems
+-- easier and more reliable to hard-wire that here than to pull it out of
+-- pg_collation.  Also, we don't need a pg_depend entry since the default
+-- collation is pinned.
+--
+
+UPDATE pg_catalog.pg_type SET typcollation = 100
+WHERE oid = 'citext'::pg_catalog.regtype;