diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/citext/citext--unpackaged--1.0.sql | 33 | ||||
-rw-r--r-- | contrib/earthdistance/earthdistance--1.0.sql | 2 | ||||
-rw-r--r-- | contrib/hstore/hstore--1.1--1.2.sql | 9 | ||||
-rw-r--r-- | contrib/intarray/intarray--unpackaged--1.0.sql | 20 | ||||
-rw-r--r-- | contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql | 17 | ||||
-rw-r--r-- | contrib/tsearch2/tsearch2--unpackaged--1.0.sql | 20 |
6 files changed, 80 insertions, 21 deletions
diff --git a/contrib/citext/citext--unpackaged--1.0.sql b/contrib/citext/citext--unpackaged--1.0.sql index ef6d6b06396..4061a0aeff2 100644 --- a/contrib/citext/citext--unpackaged--1.0.sql +++ b/contrib/citext/citext--unpackaged--1.0.sql @@ -89,8 +89,17 @@ ALTER EXTENSION citext ADD function translate(citext,citext,text); -- default collation is pinned. -- +DO LANGUAGE plpgsql +$$ +DECLARE + my_schema pg_catalog.text := pg_catalog.quote_ident(pg_catalog.current_schema()); + old_path pg_catalog.text := pg_catalog.current_setting('search_path'); +BEGIN +-- for safety, transiently set search_path to just pg_catalog+pg_temp +PERFORM pg_catalog.set_config('search_path', 'pg_catalog, pg_temp', true); + WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) UPDATE pg_catalog.pg_type SET typcollation = 100 @@ -98,7 +107,7 @@ FROM typeoids WHERE oid = typeoids.typoid; WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) UPDATE pg_catalog.pg_attribute SET attcollation = 100 @@ -113,7 +122,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, '^0', '100')::pg_catalog.oidvector WHERE indclass[0] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -124,7 +133,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, E'^(\\d+) 0', E'\\1 100')::pg_catalog.oidvector WHERE indclass[1] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -135,7 +144,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, E'^(\\d+ \\d+) 0', E'\\1 100')::pg_catalog.oidvector WHERE indclass[2] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -146,7 +155,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, E'^(\\d+ \\d+ \\d+) 0', E'\\1 100')::pg_catalog.oidvector WHERE indclass[3] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -157,7 +166,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, E'^(\\d+ \\d+ \\d+ \\d+) 0', E'\\1 100')::pg_catalog.oidvector WHERE indclass[4] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -168,7 +177,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, E'^(\\d+ \\d+ \\d+ \\d+ \\d+) 0', E'\\1 100')::pg_catalog.oidvector WHERE indclass[5] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -179,7 +188,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, E'^(\\d+ \\d+ \\d+ \\d+ \\d+ \\d+) 0', E'\\1 100')::pg_catalog.oidvector WHERE indclass[6] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -190,7 +199,7 @@ UPDATE pg_catalog.pg_index SET indcollation = pg_catalog.regexp_replace(indcollation::pg_catalog.text, E'^(\\d+ \\d+ \\d+ \\d+ \\d+ \\d+ \\d+) 0', E'\\1 100')::pg_catalog.oidvector WHERE indclass[7] IN ( WITH RECURSIVE typeoids(typoid) AS - ( SELECT 'citext'::pg_catalog.regtype UNION + ( SELECT (my_schema || '.citext')::pg_catalog.regtype UNION SELECT oid FROM pg_catalog.pg_type, typeoids WHERE typelem = typoid OR typbasetype = typoid ) SELECT oid FROM pg_catalog.pg_opclass, typeoids @@ -198,3 +207,7 @@ WHERE indclass[7] IN ( ); -- somewhat arbitrarily, we assume no citext indexes have more than 8 columns + +PERFORM pg_catalog.set_config('search_path', old_path, true); +END +$$; diff --git a/contrib/earthdistance/earthdistance--1.0.sql b/contrib/earthdistance/earthdistance--1.0.sql index c7e9429b614..901b2b0610c 100644 --- a/contrib/earthdistance/earthdistance--1.0.sql +++ b/contrib/earthdistance/earthdistance--1.0.sql @@ -31,7 +31,7 @@ CREATE DOMAIN earth AS cube CONSTRAINT not_point check(cube_is_point(value)) CONSTRAINT not_3d check(cube_dim(value) <= 3) CONSTRAINT on_surface check(abs(cube_distance(value, '(0)'::cube) / - earth() - 1) < '10e-7'::float8); + earth() - '1'::float8) < '10e-7'::float8); CREATE FUNCTION sec_to_gc(float8) RETURNS float8 diff --git a/contrib/hstore/hstore--1.1--1.2.sql b/contrib/hstore/hstore--1.1--1.2.sql index a868ffe48e1..cc69fc7f802 100644 --- a/contrib/hstore/hstore--1.1--1.2.sql +++ b/contrib/hstore/hstore--1.1--1.2.sql @@ -9,10 +9,13 @@ -- dependent on the extension. DO LANGUAGE plpgsql - $$ - +DECLARE + my_schema pg_catalog.text := pg_catalog.quote_ident(pg_catalog.current_schema()); + old_path pg_catalog.text := pg_catalog.current_setting('search_path'); BEGIN +-- for safety, transiently set search_path to just pg_catalog+pg_temp +PERFORM pg_catalog.set_config('search_path', 'pg_catalog, pg_temp', true); PERFORM 1 FROM pg_proc p @@ -27,6 +30,7 @@ BEGIN IF NOT FOUND THEN + PERFORM pg_catalog.set_config('search_path', old_path, true); CREATE FUNCTION hstore_to_json(hstore) RETURNS json @@ -43,6 +47,7 @@ BEGIN END IF; +PERFORM pg_catalog.set_config('search_path', old_path, true); END; $$; diff --git a/contrib/intarray/intarray--unpackaged--1.0.sql b/contrib/intarray/intarray--unpackaged--1.0.sql index 63814cef980..7f1bef60b1d 100644 --- a/contrib/intarray/intarray--unpackaged--1.0.sql +++ b/contrib/intarray/intarray--unpackaged--1.0.sql @@ -84,13 +84,23 @@ ALTER EXTENSION intarray ADD function ginint4_consistent(internal,smallint,inter -- entries. This is ugly as can be, but there's no other way to do it -- while preserving the identities (OIDs) of the functions. +DO LANGUAGE plpgsql +$$ +DECLARE + my_schema_unquoted pg_catalog.text := pg_catalog.current_schema(); + my_schema pg_catalog.text := pg_catalog.quote_ident(pg_catalog.current_schema()); + old_path pg_catalog.text := pg_catalog.current_setting('search_path'); +BEGIN +-- for safety, transiently set search_path to just pg_catalog+pg_temp +PERFORM pg_catalog.set_config('search_path', 'pg_catalog, pg_temp', true); + UPDATE pg_catalog.pg_proc SET pronargs = 7, proargtypes = '2281 2281 21 2281 2281 2281 2281' -WHERE oid = 'ginint4_queryextract(internal,internal,smallint,internal,internal)'::pg_catalog.regprocedure; +WHERE oid = (my_schema || '.ginint4_queryextract(internal,internal,smallint,internal,internal)')::pg_catalog.regprocedure; UPDATE pg_catalog.pg_proc SET pronargs = 8, proargtypes = '2281 21 2281 23 2281 2281 2281 2281' -WHERE oid = 'ginint4_consistent(internal,smallint,internal,integer,internal,internal)'::pg_catalog.regprocedure; +WHERE oid = (my_schema || '.ginint4_consistent(internal,smallint,internal,integer,internal,internal)')::pg_catalog.regprocedure; -- intarray also relies on the core function ginarrayextract, which changed -- signature in 9.1. To support upgrading, pg_catalog contains entries @@ -104,8 +114,12 @@ SET amproc = 'pg_catalog.ginarrayextract(anyarray,internal,internal)'::pg_catalo WHERE amprocfamily = (SELECT oid FROM pg_catalog.pg_opfamily WHERE opfname = 'gin__int_ops' AND opfnamespace = (SELECT oid FROM pg_catalog.pg_namespace - WHERE nspname = pg_catalog.current_schema())) + WHERE nspname = my_schema_unquoted)) AND amproclefttype = 'integer[]'::pg_catalog.regtype AND amprocrighttype = 'integer[]'::pg_catalog.regtype AND amprocnum = 2 AND amproc = 'pg_catalog.ginarrayextract(anyarray,internal)'::pg_catalog.regprocedure; + +PERFORM pg_catalog.set_config('search_path', old_path, true); +END +$$; diff --git a/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql b/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql index d3eab97d419..99444d37c38 100644 --- a/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql +++ b/contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql @@ -57,13 +57,26 @@ LANGUAGE C IMMUTABLE STRICT; -- entries. This is ugly as can be, but there's no other way to do it -- while preserving the identities (OIDs) of the functions. +DO LANGUAGE plpgsql +$$ +DECLARE + my_schema pg_catalog.text := pg_catalog.quote_ident(pg_catalog.current_schema()); + old_path pg_catalog.text := pg_catalog.current_setting('search_path'); +BEGIN +-- for safety, transiently set search_path to just pg_catalog+pg_temp +PERFORM pg_catalog.set_config('search_path', 'pg_catalog, pg_temp', true); + UPDATE pg_catalog.pg_proc SET pronargs = 7, proargtypes = '25 2281 21 2281 2281 2281 2281' -WHERE oid = 'gin_extract_query_trgm(text,internal,int2,internal,internal)'::pg_catalog.regprocedure; +WHERE oid = (my_schema || '.gin_extract_query_trgm(text,internal,int2,internal,internal)')::pg_catalog.regprocedure; UPDATE pg_catalog.pg_proc SET pronargs = 8, proargtypes = '2281 21 25 23 2281 2281 2281 2281' -WHERE oid = 'gin_trgm_consistent(internal,smallint,text,integer,internal,internal)'::pg_catalog.regprocedure; +WHERE oid = (my_schema || '.gin_trgm_consistent(internal,smallint,text,integer,internal,internal)')::pg_catalog.regprocedure; + +PERFORM pg_catalog.set_config('search_path', old_path, true); +END +$$; -- These were not in 9.0: diff --git a/contrib/tsearch2/tsearch2--unpackaged--1.0.sql b/contrib/tsearch2/tsearch2--unpackaged--1.0.sql index e1232971325..7a66d5982f4 100644 --- a/contrib/tsearch2/tsearch2--unpackaged--1.0.sql +++ b/contrib/tsearch2/tsearch2--unpackaged--1.0.sql @@ -110,12 +110,22 @@ ALTER EXTENSION tsearch2 ADD operator class @extschema@.tsquery_ops using btree; -- Avert your eyes while we hack the pg_amproc entries to make them link to -- the new forms ... +DO LANGUAGE plpgsql +$$ +DECLARE + my_schema_unquoted pg_catalog.text := pg_catalog.current_schema(); + my_schema pg_catalog.text := pg_catalog.quote_ident(pg_catalog.current_schema()); + old_path pg_catalog.text := pg_catalog.current_setting('search_path'); +BEGIN +-- for safety, transiently set search_path to just pg_catalog+pg_temp +PERFORM pg_catalog.set_config('search_path', 'pg_catalog, pg_temp', true); + UPDATE pg_catalog.pg_amproc SET amproc = 'pg_catalog.gin_extract_tsvector(pg_catalog.tsvector,internal,internal)'::pg_catalog.regprocedure WHERE amprocfamily = (SELECT oid FROM pg_catalog.pg_opfamily WHERE opfname = 'gin_tsvector_ops' AND opfnamespace = (SELECT oid FROM pg_catalog.pg_namespace - WHERE nspname = '@extschema@')) + WHERE nspname = my_schema_unquoted)) AND amproclefttype = 'pg_catalog.tsvector'::pg_catalog.regtype AND amprocrighttype = 'pg_catalog.tsvector'::pg_catalog.regtype AND amprocnum = 2 @@ -126,7 +136,7 @@ SET amproc = 'pg_catalog.gin_extract_tsquery(pg_catalog.tsquery,internal,smallin WHERE amprocfamily = (SELECT oid FROM pg_catalog.pg_opfamily WHERE opfname = 'gin_tsvector_ops' AND opfnamespace = (SELECT oid FROM pg_catalog.pg_namespace - WHERE nspname = '@extschema@')) + WHERE nspname = my_schema_unquoted)) AND amproclefttype = 'pg_catalog.tsvector'::pg_catalog.regtype AND amprocrighttype = 'pg_catalog.tsvector'::pg_catalog.regtype AND amprocnum = 3 @@ -137,8 +147,12 @@ SET amproc = 'pg_catalog.gin_tsquery_consistent(internal,smallint,pg_catalog.tsq WHERE amprocfamily = (SELECT oid FROM pg_catalog.pg_opfamily WHERE opfname = 'gin_tsvector_ops' AND opfnamespace = (SELECT oid FROM pg_catalog.pg_namespace - WHERE nspname = '@extschema@')) + WHERE nspname = my_schema_unquoted)) AND amproclefttype = 'pg_catalog.tsvector'::pg_catalog.regtype AND amprocrighttype = 'pg_catalog.tsvector'::pg_catalog.regtype AND amprocnum = 4 AND amproc = 'pg_catalog.gin_tsquery_consistent(internal,smallint,pg_catalog.tsquery,integer,internal,internal)'::pg_catalog.regprocedure; + +PERFORM pg_catalog.set_config('search_path', old_path, true); +END +$$; |