Remove support for upgrading extensions from "unpackaged" state.

Andres Freund pointed out that allowing non-superusers to run
"CREATE EXTENSION ... FROM unpackaged" has security risks, since
the unpackaged-to-1.0 scripts don't try to verify that the existing
objects they're modifying are what they expect.  Just attaching such
objects to an extension doesn't seem too dangerous, but some of them
do more than that.

We could have resolved this, perhaps, by still requiring superuser
privilege to use the FROM option.  However, it's fair to ask just what
we're accomplishing by continuing to lug the unpackaged-to-1.0 scripts
forward.  None of them have received any real testing since 9.1 days,
so they may not even work anymore (even assuming that one could still
load the previous "loose" object definitions into a v13 database).
And an installation that's trying to go from pre-9.1 to v13 or later
in one jump is going to have worse compatibility problems than whether
there's a trivial way to convert their contrib modules into extension
style.

Hence, let's just drop both those scripts and the core-code support
for "CREATE EXTENSION ... FROM".

Discussion: https://postgr.es/m/20200213233015.r6rnubcvl4egdh5r@alap3.anarazel.de
This commit is contained in:
Tom Lane 2020-02-19 16:59:14 -05:00
parent 2f9c46a32b
commit 70a7732007
84 changed files with 55 additions and 2428 deletions

View File

@ -7,7 +7,7 @@ OBJS = \
EXTENSION = btree_gin
DATA = btree_gin--1.0.sql btree_gin--1.0--1.1.sql btree_gin--1.1--1.2.sql \
btree_gin--1.2--1.3.sql btree_gin--unpackaged--1.0.sql
btree_gin--1.2--1.3.sql
PGFILEDESC = "btree_gin - B-tree equivalent GIN operator classes"
REGRESS = install_btree_gin int2 int4 int8 float4 float8 money oid \

View File

@ -1,119 +0,0 @@
/* contrib/btree_gin/btree_gin--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION btree_gin FROM unpackaged" to load this file. \quit
ALTER EXTENSION btree_gin ADD function gin_btree_consistent(internal,smallint,anyelement,integer,internal,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_value_int2(smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_int2(smallint,smallint,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_int2(smallint,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family int2_ops using gin;
ALTER EXTENSION btree_gin ADD operator class int2_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_int4(integer,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_int4(integer,integer,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_int4(integer,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family int4_ops using gin;
ALTER EXTENSION btree_gin ADD operator class int4_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_int8(bigint,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_int8(bigint,bigint,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_int8(bigint,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family int8_ops using gin;
ALTER EXTENSION btree_gin ADD operator class int8_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_float4(real,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_float4(real,real,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_float4(real,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family float4_ops using gin;
ALTER EXTENSION btree_gin ADD operator class float4_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_float8(double precision,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_float8(double precision,double precision,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_float8(double precision,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family float8_ops using gin;
ALTER EXTENSION btree_gin ADD operator class float8_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_money(money,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_money(money,money,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_money(money,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family money_ops using gin;
ALTER EXTENSION btree_gin ADD operator class money_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_oid(oid,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_oid(oid,oid,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_oid(oid,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family oid_ops using gin;
ALTER EXTENSION btree_gin ADD operator class oid_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_timestamp(timestamp without time zone,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_timestamp(timestamp without time zone,timestamp without time zone,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_timestamp(timestamp without time zone,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family timestamp_ops using gin;
ALTER EXTENSION btree_gin ADD operator class timestamp_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_timestamptz(timestamp with time zone,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_timestamptz(timestamp with time zone,timestamp with time zone,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_timestamptz(timestamp with time zone,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family timestamptz_ops using gin;
ALTER EXTENSION btree_gin ADD operator class timestamptz_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_time(time without time zone,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_time(time without time zone,time without time zone,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_time(time without time zone,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family time_ops using gin;
ALTER EXTENSION btree_gin ADD operator class time_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_timetz(time with time zone,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_timetz(time with time zone,time with time zone,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_timetz(time with time zone,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family timetz_ops using gin;
ALTER EXTENSION btree_gin ADD operator class timetz_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_date(date,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_date(date,date,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_date(date,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family date_ops using gin;
ALTER EXTENSION btree_gin ADD operator class date_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_interval(interval,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_interval(interval,interval,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_interval(interval,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family interval_ops using gin;
ALTER EXTENSION btree_gin ADD operator class interval_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_macaddr(macaddr,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_macaddr(macaddr,macaddr,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_macaddr(macaddr,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family macaddr_ops using gin;
ALTER EXTENSION btree_gin ADD operator class macaddr_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_inet(inet,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_inet(inet,inet,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_inet(inet,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family inet_ops using gin;
ALTER EXTENSION btree_gin ADD operator class inet_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_cidr(cidr,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_cidr(cidr,cidr,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_cidr(cidr,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family cidr_ops using gin;
ALTER EXTENSION btree_gin ADD operator class cidr_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_text(text,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_text(text,text,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_text(text,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family text_ops using gin;
ALTER EXTENSION btree_gin ADD operator class text_ops using gin;
ALTER EXTENSION btree_gin ADD operator family varchar_ops using gin;
ALTER EXTENSION btree_gin ADD operator class varchar_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_char("char",internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_char("char","char",smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_char("char",internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family char_ops using gin;
ALTER EXTENSION btree_gin ADD operator class char_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_bytea(bytea,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_bytea(bytea,bytea,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_bytea(bytea,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family bytea_ops using gin;
ALTER EXTENSION btree_gin ADD operator class bytea_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_bit(bit,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_bit(bit,bit,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_bit(bit,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family bit_ops using gin;
ALTER EXTENSION btree_gin ADD operator class bit_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_varbit(bit varying,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_varbit(bit varying,bit varying,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_varbit(bit varying,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD operator family varbit_ops using gin;
ALTER EXTENSION btree_gin ADD operator class varbit_ops using gin;
ALTER EXTENSION btree_gin ADD function gin_extract_value_numeric(numeric,internal);
ALTER EXTENSION btree_gin ADD function gin_compare_prefix_numeric(numeric,numeric,smallint,internal);
ALTER EXTENSION btree_gin ADD function gin_extract_query_numeric(numeric,internal,smallint,internal,internal);
ALTER EXTENSION btree_gin ADD function gin_numeric_cmp(numeric,numeric);
ALTER EXTENSION btree_gin ADD operator family numeric_ops using gin;
ALTER EXTENSION btree_gin ADD operator class numeric_ops using gin;

View File

@ -29,7 +29,7 @@ OBJS = \
btree_uuid.o
EXTENSION = btree_gist
DATA = btree_gist--unpackaged--1.0.sql btree_gist--1.0--1.1.sql \
DATA = btree_gist--1.0--1.1.sql \
btree_gist--1.1--1.2.sql btree_gist--1.2.sql btree_gist--1.2--1.3.sql \
btree_gist--1.3--1.4.sql btree_gist--1.4--1.5.sql
PGFILEDESC = "btree_gist - B-tree equivalent GiST operator classes"

View File

@ -1,479 +0,0 @@
/* contrib/btree_gist/btree_gist--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION btree_gist FROM unpackaged" to load this file. \quit
ALTER EXTENSION btree_gist ADD type gbtreekey4;
ALTER EXTENSION btree_gist ADD function gbtreekey4_in(cstring);
ALTER EXTENSION btree_gist ADD function gbtreekey4_out(gbtreekey4);
ALTER EXTENSION btree_gist ADD type gbtreekey8;
ALTER EXTENSION btree_gist ADD function gbtreekey8_in(cstring);
ALTER EXTENSION btree_gist ADD function gbtreekey8_out(gbtreekey8);
ALTER EXTENSION btree_gist ADD type gbtreekey16;
ALTER EXTENSION btree_gist ADD function gbtreekey16_in(cstring);
ALTER EXTENSION btree_gist ADD function gbtreekey16_out(gbtreekey16);
ALTER EXTENSION btree_gist ADD type gbtreekey32;
ALTER EXTENSION btree_gist ADD function gbtreekey32_in(cstring);
ALTER EXTENSION btree_gist ADD function gbtreekey32_out(gbtreekey32);
ALTER EXTENSION btree_gist ADD type gbtreekey_var;
ALTER EXTENSION btree_gist ADD function gbtreekey_var_in(cstring);
ALTER EXTENSION btree_gist ADD function gbtreekey_var_out(gbtreekey_var);
ALTER EXTENSION btree_gist ADD function gbt_oid_consistent(internal,oid,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_oid_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_decompress(internal);
ALTER EXTENSION btree_gist ADD function gbt_var_decompress(internal);
ALTER EXTENSION btree_gist ADD function gbt_oid_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_oid_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_oid_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_oid_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_oid_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_oid_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_int2_consistent(internal,smallint,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_int2_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_int2_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_int2_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_int2_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_int2_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_int2_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_int2_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_int4_consistent(internal,integer,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_int4_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_int4_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_int4_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_int4_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_int4_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_int4_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_int4_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_int8_consistent(internal,bigint,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_int8_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_int8_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_int8_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_int8_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_int8_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_int8_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_int8_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_float4_consistent(internal,real,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_float4_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_float4_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_float4_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_float4_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_float4_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_float4_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_float4_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_float8_consistent(internal,double precision,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_float8_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_float8_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_float8_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_float8_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_float8_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_float8_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_float8_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_ts_consistent(internal,timestamp without time zone,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_tstz_consistent(internal,timestamp with time zone,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_ts_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_tstz_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_ts_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_ts_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_ts_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_ts_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_timestamp_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_timestamp_ops using gist;
ALTER EXTENSION btree_gist ADD operator family gist_timestamptz_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_timestamptz_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_time_consistent(internal,time without time zone,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_timetz_consistent(internal,time with time zone,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_time_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_timetz_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_time_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_time_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_time_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_time_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_time_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_time_ops using gist;
ALTER EXTENSION btree_gist ADD operator family gist_timetz_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_timetz_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_date_consistent(internal,date,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_date_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_date_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_date_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_date_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_date_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_date_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_date_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_intv_consistent(internal,interval,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_intv_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_intv_decompress(internal);
ALTER EXTENSION btree_gist ADD function gbt_intv_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_intv_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_intv_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_intv_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_interval_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_interval_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_cash_consistent(internal,money,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_cash_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_cash_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_cash_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_cash_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_cash_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_cash_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_cash_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_macad_consistent(internal,macaddr,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_macad_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_macad_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_macad_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_macad_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_macad_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_macaddr_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_macaddr_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_text_consistent(internal,text,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_bpchar_consistent(internal,character,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_text_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_bpchar_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_text_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_text_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_text_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_text_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_text_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_text_ops using gist;
ALTER EXTENSION btree_gist ADD operator family gist_bpchar_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_bpchar_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_bytea_consistent(internal,bytea,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_bytea_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_bytea_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_bytea_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_bytea_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_bytea_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_bytea_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_bytea_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_numeric_consistent(internal,numeric,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_numeric_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_numeric_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_numeric_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_numeric_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_numeric_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_numeric_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_numeric_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_bit_consistent(internal,bit,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_bit_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_bit_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_bit_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_bit_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_bit_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_bit_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_bit_ops using gist;
ALTER EXTENSION btree_gist ADD operator family gist_vbit_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_vbit_ops using gist;
ALTER EXTENSION btree_gist ADD function gbt_inet_consistent(internal,inet,smallint,oid,internal);
ALTER EXTENSION btree_gist ADD function gbt_inet_compress(internal);
ALTER EXTENSION btree_gist ADD function gbt_inet_penalty(internal,internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_inet_picksplit(internal,internal);
ALTER EXTENSION btree_gist ADD function gbt_inet_union(bytea,internal);
ALTER EXTENSION btree_gist ADD function gbt_inet_same(internal,internal,internal);
ALTER EXTENSION btree_gist ADD operator family gist_inet_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_inet_ops using gist;
ALTER EXTENSION btree_gist ADD operator family gist_cidr_ops using gist;
ALTER EXTENSION btree_gist ADD operator class gist_cidr_ops using gist;
-- Add functions and operators that are new in 9.1
--distance operators
CREATE FUNCTION cash_dist(money, money)
RETURNS money
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = money,
RIGHTARG = money,
PROCEDURE = cash_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION date_dist(date, date)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = date,
RIGHTARG = date,
PROCEDURE = date_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION float4_dist(float4, float4)
RETURNS float4
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = float4,
RIGHTARG = float4,
PROCEDURE = float4_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION float8_dist(float8, float8)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = float8,
RIGHTARG = float8,
PROCEDURE = float8_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION int2_dist(int2, int2)
RETURNS int2
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = int2,
RIGHTARG = int2,
PROCEDURE = int2_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION int4_dist(int4, int4)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = int4,
RIGHTARG = int4,
PROCEDURE = int4_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION int8_dist(int8, int8)
RETURNS int8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = int8,
RIGHTARG = int8,
PROCEDURE = int8_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION interval_dist(interval, interval)
RETURNS interval
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = interval,
RIGHTARG = interval,
PROCEDURE = interval_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION oid_dist(oid, oid)
RETURNS oid
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = oid,
RIGHTARG = oid,
PROCEDURE = oid_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION time_dist(time, time)
RETURNS interval
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = time,
RIGHTARG = time,
PROCEDURE = time_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION ts_dist(timestamp, timestamp)
RETURNS interval
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = timestamp,
RIGHTARG = timestamp,
PROCEDURE = ts_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION tstz_dist(timestamptz, timestamptz)
RETURNS interval
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE OPERATOR <-> (
LEFTARG = timestamptz,
RIGHTARG = timestamptz,
PROCEDURE = tstz_dist,
COMMUTATOR = '<->'
);
-- Support functions for distance operators
CREATE FUNCTION gbt_oid_distance(internal,oid,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_int2_distance(internal,int2,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_int4_distance(internal,int4,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_int8_distance(internal,int8,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_float4_distance(internal,float4,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_float8_distance(internal,float8,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_ts_distance(internal,timestamp,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_tstz_distance(internal,timestamptz,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_time_distance(internal,time,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_date_distance(internal,date,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_intv_distance(internal,interval,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION gbt_cash_distance(internal,money,int2,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
-- Add new-in-9.1 stuff to the operator classes.
ALTER OPERATOR FAMILY gist_oid_ops USING gist ADD
OPERATOR 6 <> (oid, oid) ,
OPERATOR 15 <-> (oid, oid) FOR ORDER BY pg_catalog.oid_ops ,
FUNCTION 8 (oid, oid) gbt_oid_distance (internal, oid, int2, oid) ;
ALTER OPERATOR FAMILY gist_int2_ops USING gist ADD
OPERATOR 6 <> (int2, int2) ,
OPERATOR 15 <-> (int2, int2) FOR ORDER BY pg_catalog.integer_ops ,
FUNCTION 8 (int2, int2) gbt_int2_distance (internal, int2, int2, oid) ;
ALTER OPERATOR FAMILY gist_int4_ops USING gist ADD
OPERATOR 6 <> (int4, int4) ,
OPERATOR 15 <-> (int4, int4) FOR ORDER BY pg_catalog.integer_ops ,
FUNCTION 8 (int4, int4) gbt_int4_distance (internal, int4, int2, oid) ;
ALTER OPERATOR FAMILY gist_int8_ops USING gist ADD
OPERATOR 6 <> (int8, int8) ,
OPERATOR 15 <-> (int8, int8) FOR ORDER BY pg_catalog.integer_ops ,
FUNCTION 8 (int8, int8) gbt_int8_distance (internal, int8, int2, oid) ;
ALTER OPERATOR FAMILY gist_float4_ops USING gist ADD
OPERATOR 6 <> (float4, float4) ,
OPERATOR 15 <-> (float4, float4) FOR ORDER BY pg_catalog.float_ops ,
FUNCTION 8 (float4, float4) gbt_float4_distance (internal, float4, int2, oid) ;
ALTER OPERATOR FAMILY gist_float8_ops USING gist ADD
OPERATOR 6 <> (float8, float8) ,
OPERATOR 15 <-> (float8, float8) FOR ORDER BY pg_catalog.float_ops ,
FUNCTION 8 (float8, float8) gbt_float8_distance (internal, float8, int2, oid) ;
ALTER OPERATOR FAMILY gist_timestamp_ops USING gist ADD
OPERATOR 6 <> (timestamp, timestamp) ,
OPERATOR 15 <-> (timestamp, timestamp) FOR ORDER BY pg_catalog.interval_ops ,
FUNCTION 8 (timestamp, timestamp) gbt_ts_distance (internal, timestamp, int2, oid) ;
ALTER OPERATOR FAMILY gist_timestamptz_ops USING gist ADD
OPERATOR 6 <> (timestamptz, timestamptz) ,
OPERATOR 15 <-> (timestamptz, timestamptz) FOR ORDER BY pg_catalog.interval_ops ,
FUNCTION 8 (timestamptz, timestamptz) gbt_tstz_distance (internal, timestamptz, int2, oid) ;
ALTER OPERATOR FAMILY gist_time_ops USING gist ADD
OPERATOR 6 <> (time, time) ,
OPERATOR 15 <-> (time, time) FOR ORDER BY pg_catalog.interval_ops ,
FUNCTION 8 (time, time) gbt_time_distance (internal, time, int2, oid) ;
ALTER OPERATOR FAMILY gist_timetz_ops USING gist ADD
OPERATOR 6 <> (timetz, timetz) ;
ALTER OPERATOR FAMILY gist_date_ops USING gist ADD
OPERATOR 6 <> (date, date) ,
OPERATOR 15 <-> (date, date) FOR ORDER BY pg_catalog.integer_ops ,
FUNCTION 8 (date, date) gbt_date_distance (internal, date, int2, oid) ;
ALTER OPERATOR FAMILY gist_interval_ops USING gist ADD
OPERATOR 6 <> (interval, interval) ,
OPERATOR 15 <-> (interval, interval) FOR ORDER BY pg_catalog.interval_ops ,
FUNCTION 8 (interval, interval) gbt_intv_distance (internal, interval, int2, oid) ;
ALTER OPERATOR FAMILY gist_cash_ops USING gist ADD
OPERATOR 6 <> (money, money) ,
OPERATOR 15 <-> (money, money) FOR ORDER BY pg_catalog.money_ops ,
FUNCTION 8 (money, money) gbt_cash_distance (internal, money, int2, oid) ;
ALTER OPERATOR FAMILY gist_macaddr_ops USING gist ADD
OPERATOR 6 <> (macaddr, macaddr) ;
ALTER OPERATOR FAMILY gist_text_ops USING gist ADD
OPERATOR 6 <> (text, text) ;
ALTER OPERATOR FAMILY gist_bpchar_ops USING gist ADD
OPERATOR 6 <> (bpchar, bpchar) ;
ALTER OPERATOR FAMILY gist_bytea_ops USING gist ADD
OPERATOR 6 <> (bytea, bytea) ;
ALTER OPERATOR FAMILY gist_numeric_ops USING gist ADD
OPERATOR 6 <> (numeric, numeric) ;
ALTER OPERATOR FAMILY gist_bit_ops USING gist ADD
OPERATOR 6 <> (bit, bit) ;
ALTER OPERATOR FAMILY gist_vbit_ops USING gist ADD
OPERATOR 6 <> (varbit, varbit) ;
ALTER OPERATOR FAMILY gist_inet_ops USING gist ADD
OPERATOR 6 <> (inet, inet) ;
ALTER OPERATOR FAMILY gist_cidr_ops USING gist ADD
OPERATOR 6 <> (inet, inet) ;

View File

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

View File

@ -1,200 +0,0 @@
/* contrib/citext/citext--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION citext FROM unpackaged" to load this file. \quit
ALTER EXTENSION citext ADD type citext;
ALTER EXTENSION citext ADD function citextin(cstring);
ALTER EXTENSION citext ADD function citextout(citext);
ALTER EXTENSION citext ADD function citextrecv(internal);
ALTER EXTENSION citext ADD function citextsend(citext);
ALTER EXTENSION citext ADD function citext(character);
ALTER EXTENSION citext ADD function citext(boolean);
ALTER EXTENSION citext ADD function citext(inet);
ALTER EXTENSION citext ADD cast (citext as text);
ALTER EXTENSION citext ADD cast (citext as character varying);
ALTER EXTENSION citext ADD cast (citext as character);
ALTER EXTENSION citext ADD cast (text as citext);
ALTER EXTENSION citext ADD cast (character varying as citext);
ALTER EXTENSION citext ADD cast (character as citext);
ALTER EXTENSION citext ADD cast (boolean as citext);
ALTER EXTENSION citext ADD cast (inet as citext);
ALTER EXTENSION citext ADD function citext_eq(citext,citext);
ALTER EXTENSION citext ADD function citext_ne(citext,citext);
ALTER EXTENSION citext ADD function citext_lt(citext,citext);
ALTER EXTENSION citext ADD function citext_le(citext,citext);
ALTER EXTENSION citext ADD function citext_gt(citext,citext);
ALTER EXTENSION citext ADD function citext_ge(citext,citext);
ALTER EXTENSION citext ADD operator <>(citext,citext);
ALTER EXTENSION citext ADD operator =(citext,citext);
ALTER EXTENSION citext ADD operator >(citext,citext);
ALTER EXTENSION citext ADD operator >=(citext,citext);
ALTER EXTENSION citext ADD operator <(citext,citext);
ALTER EXTENSION citext ADD operator <=(citext,citext);
ALTER EXTENSION citext ADD function citext_cmp(citext,citext);
ALTER EXTENSION citext ADD function citext_hash(citext);
ALTER EXTENSION citext ADD operator family citext_ops using btree;
ALTER EXTENSION citext ADD operator class citext_ops using btree;
ALTER EXTENSION citext ADD operator family citext_ops using hash;
ALTER EXTENSION citext ADD operator class citext_ops using hash;
ALTER EXTENSION citext ADD function citext_smaller(citext,citext);
ALTER EXTENSION citext ADD function citext_larger(citext,citext);
ALTER EXTENSION citext ADD function min(citext);
ALTER EXTENSION citext ADD function max(citext);
ALTER EXTENSION citext ADD function texticlike(citext,citext);
ALTER EXTENSION citext ADD function texticnlike(citext,citext);
ALTER EXTENSION citext ADD function texticregexeq(citext,citext);
ALTER EXTENSION citext ADD function texticregexne(citext,citext);
ALTER EXTENSION citext ADD operator !~(citext,citext);
ALTER EXTENSION citext ADD operator ~(citext,citext);
ALTER EXTENSION citext ADD operator !~*(citext,citext);
ALTER EXTENSION citext ADD operator ~*(citext,citext);
ALTER EXTENSION citext ADD operator !~~(citext,citext);
ALTER EXTENSION citext ADD operator ~~(citext,citext);
ALTER EXTENSION citext ADD operator !~~*(citext,citext);
ALTER EXTENSION citext ADD operator ~~*(citext,citext);
ALTER EXTENSION citext ADD function texticlike(citext,text);
ALTER EXTENSION citext ADD function texticnlike(citext,text);
ALTER EXTENSION citext ADD function texticregexeq(citext,text);
ALTER EXTENSION citext ADD function texticregexne(citext,text);
ALTER EXTENSION citext ADD operator !~(citext,text);
ALTER EXTENSION citext ADD operator ~(citext,text);
ALTER EXTENSION citext ADD operator !~*(citext,text);
ALTER EXTENSION citext ADD operator ~*(citext,text);
ALTER EXTENSION citext ADD operator !~~(citext,text);
ALTER EXTENSION citext ADD operator ~~(citext,text);
ALTER EXTENSION citext ADD operator !~~*(citext,text);
ALTER EXTENSION citext ADD operator ~~*(citext,text);
ALTER EXTENSION citext ADD function regexp_matches(citext,citext);
ALTER EXTENSION citext ADD function regexp_matches(citext,citext,text);
ALTER EXTENSION citext ADD function regexp_replace(citext,citext,text);
ALTER EXTENSION citext ADD function regexp_replace(citext,citext,text,text);
ALTER EXTENSION citext ADD function regexp_split_to_array(citext,citext);
ALTER EXTENSION citext ADD function regexp_split_to_array(citext,citext,text);
ALTER EXTENSION citext ADD function regexp_split_to_table(citext,citext);
ALTER EXTENSION citext ADD function regexp_split_to_table(citext,citext,text);
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.
-- We have to poke any derived copies in pg_attribute or pg_index as well,
-- as well as those for arrays/domains based directly or indirectly on citext.
-- 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 to make pg_depend entries since the
-- default collation is pinned.
--
WITH RECURSIVE typeoids(typoid) AS
( SELECT '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
FROM typeoids
WHERE oid = typeoids.typoid;
WITH RECURSIVE typeoids(typoid) AS
( SELECT '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
FROM typeoids
WHERE atttypid = typeoids.typoid;
-- Updating the index indcollations is particularly tedious, but since we
-- don't currently allow SQL assignment to individual elements of oidvectors,
-- there's little choice.
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
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 oid FROM pg_catalog.pg_type, typeoids
WHERE typelem = typoid OR typbasetype = typoid )
SELECT oid FROM pg_catalog.pg_opclass, typeoids
WHERE opcintype = typeoids.typoid
);
-- somewhat arbitrarily, we assume no citext indexes have more than 8 columns

View File

@ -8,8 +8,7 @@ OBJS = \
EXTENSION = cube
DATA = cube--1.2.sql cube--1.2--1.3.sql cube--1.3--1.4.sql \
cube--1.1--1.2.sql cube--1.0--1.1.sql \
cube--unpackaged--1.0.sql
cube--1.1--1.2.sql cube--1.0--1.1.sql
PGFILEDESC = "cube - multidimensional cube data type"
HEADERS = cubedata.h

View File

@ -1,56 +0,0 @@
/* contrib/cube/cube--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cube FROM unpackaged" to load this file. \quit
ALTER EXTENSION cube ADD type cube;
ALTER EXTENSION cube ADD function cube_in(cstring);
ALTER EXTENSION cube ADD function cube(double precision[],double precision[]);
ALTER EXTENSION cube ADD function cube(double precision[]);
ALTER EXTENSION cube ADD function cube_out(cube);
ALTER EXTENSION cube ADD function cube_eq(cube,cube);
ALTER EXTENSION cube ADD function cube_ne(cube,cube);
ALTER EXTENSION cube ADD function cube_lt(cube,cube);
ALTER EXTENSION cube ADD function cube_gt(cube,cube);
ALTER EXTENSION cube ADD function cube_le(cube,cube);
ALTER EXTENSION cube ADD function cube_ge(cube,cube);
ALTER EXTENSION cube ADD function cube_cmp(cube,cube);
ALTER EXTENSION cube ADD function cube_contains(cube,cube);
ALTER EXTENSION cube ADD function cube_contained(cube,cube);
ALTER EXTENSION cube ADD function cube_overlap(cube,cube);
ALTER EXTENSION cube ADD function cube_union(cube,cube);
ALTER EXTENSION cube ADD function cube_inter(cube,cube);
ALTER EXTENSION cube ADD function cube_size(cube);
ALTER EXTENSION cube ADD function cube_subset(cube,integer[]);
ALTER EXTENSION cube ADD function cube_distance(cube,cube);
ALTER EXTENSION cube ADD function cube_dim(cube);
ALTER EXTENSION cube ADD function cube_ll_coord(cube,integer);
ALTER EXTENSION cube ADD function cube_ur_coord(cube,integer);
ALTER EXTENSION cube ADD function cube(double precision);
ALTER EXTENSION cube ADD function cube(double precision,double precision);
ALTER EXTENSION cube ADD function cube(cube,double precision);
ALTER EXTENSION cube ADD function cube(cube,double precision,double precision);
ALTER EXTENSION cube ADD function cube_is_point(cube);
ALTER EXTENSION cube ADD function cube_enlarge(cube,double precision,integer);
ALTER EXTENSION cube ADD operator >(cube,cube);
ALTER EXTENSION cube ADD operator >=(cube,cube);
ALTER EXTENSION cube ADD operator <(cube,cube);
ALTER EXTENSION cube ADD operator <=(cube,cube);
ALTER EXTENSION cube ADD operator &&(cube,cube);
ALTER EXTENSION cube ADD operator <>(cube,cube);
ALTER EXTENSION cube ADD operator =(cube,cube);
ALTER EXTENSION cube ADD operator <@(cube,cube);
ALTER EXTENSION cube ADD operator @>(cube,cube);
ALTER EXTENSION cube ADD operator ~(cube,cube);
ALTER EXTENSION cube ADD operator @(cube,cube);
ALTER EXTENSION cube ADD function g_cube_consistent(internal,cube,integer,oid,internal);
ALTER EXTENSION cube ADD function g_cube_compress(internal);
ALTER EXTENSION cube ADD function g_cube_decompress(internal);
ALTER EXTENSION cube ADD function g_cube_penalty(internal,internal,internal);
ALTER EXTENSION cube ADD function g_cube_picksplit(internal,internal);
ALTER EXTENSION cube ADD function g_cube_union(internal,internal);
ALTER EXTENSION cube ADD function g_cube_same(cube,cube,internal);
ALTER EXTENSION cube ADD operator family cube_ops using btree;
ALTER EXTENSION cube ADD operator class cube_ops using btree;
ALTER EXTENSION cube ADD operator family gist_cube_ops using gist;
ALTER EXTENSION cube ADD operator class gist_cube_ops using gist;

View File

@ -8,8 +8,7 @@ PG_CPPFLAGS = -I$(libpq_srcdir)
SHLIB_LINK_INTERNAL = $(libpq)
EXTENSION = dblink
DATA = dblink--1.2.sql dblink--1.1--1.2.sql dblink--1.0--1.1.sql \
dblink--unpackaged--1.0.sql
DATA = dblink--1.2.sql dblink--1.1--1.2.sql dblink--1.0--1.1.sql
PGFILEDESC = "dblink - connect to other PostgreSQL databases"
REGRESS = paths dblink

View File

@ -1,46 +0,0 @@
/* contrib/dblink/dblink--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION dblink FROM unpackaged" to load this file. \quit
ALTER EXTENSION dblink ADD function dblink_connect(text);
ALTER EXTENSION dblink ADD function dblink_connect(text,text);
ALTER EXTENSION dblink ADD function dblink_connect_u(text);
ALTER EXTENSION dblink ADD function dblink_connect_u(text,text);
ALTER EXTENSION dblink ADD function dblink_disconnect();
ALTER EXTENSION dblink ADD function dblink_disconnect(text);
ALTER EXTENSION dblink ADD function dblink_open(text,text);
ALTER EXTENSION dblink ADD function dblink_open(text,text,boolean);
ALTER EXTENSION dblink ADD function dblink_open(text,text,text);
ALTER EXTENSION dblink ADD function dblink_open(text,text,text,boolean);
ALTER EXTENSION dblink ADD function dblink_fetch(text,integer);
ALTER EXTENSION dblink ADD function dblink_fetch(text,integer,boolean);
ALTER EXTENSION dblink ADD function dblink_fetch(text,text,integer);
ALTER EXTENSION dblink ADD function dblink_fetch(text,text,integer,boolean);
ALTER EXTENSION dblink ADD function dblink_close(text);
ALTER EXTENSION dblink ADD function dblink_close(text,boolean);
ALTER EXTENSION dblink ADD function dblink_close(text,text);
ALTER EXTENSION dblink ADD function dblink_close(text,text,boolean);
ALTER EXTENSION dblink ADD function dblink(text,text);
ALTER EXTENSION dblink ADD function dblink(text,text,boolean);
ALTER EXTENSION dblink ADD function dblink(text);
ALTER EXTENSION dblink ADD function dblink(text,boolean);
ALTER EXTENSION dblink ADD function dblink_exec(text,text);
ALTER EXTENSION dblink ADD function dblink_exec(text,text,boolean);
ALTER EXTENSION dblink ADD function dblink_exec(text);
ALTER EXTENSION dblink ADD function dblink_exec(text,boolean);
ALTER EXTENSION dblink ADD type dblink_pkey_results;
ALTER EXTENSION dblink ADD function dblink_get_pkey(text);
ALTER EXTENSION dblink ADD function dblink_build_sql_insert(text,int2vector,integer,text[],text[]);
ALTER EXTENSION dblink ADD function dblink_build_sql_delete(text,int2vector,integer,text[]);
ALTER EXTENSION dblink ADD function dblink_build_sql_update(text,int2vector,integer,text[],text[]);
ALTER EXTENSION dblink ADD function dblink_current_query();
ALTER EXTENSION dblink ADD function dblink_send_query(text,text);
ALTER EXTENSION dblink ADD function dblink_is_busy(text);
ALTER EXTENSION dblink ADD function dblink_get_result(text);
ALTER EXTENSION dblink ADD function dblink_get_result(text,boolean);
ALTER EXTENSION dblink ADD function dblink_get_connections();
ALTER EXTENSION dblink ADD function dblink_cancel_query(text);
ALTER EXTENSION dblink ADD function dblink_error_message(text);
ALTER EXTENSION dblink ADD function dblink_get_notify();
ALTER EXTENSION dblink ADD function dblink_get_notify(text);

View File

@ -6,7 +6,7 @@ OBJS = \
dict_int.o
EXTENSION = dict_int
DATA = dict_int--1.0.sql dict_int--unpackaged--1.0.sql
DATA = dict_int--1.0.sql
PGFILEDESC = "dict_int - add-on dictionary template for full-text search"
REGRESS = dict_int

View File

@ -1,9 +0,0 @@
/* contrib/dict_int/dict_int--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION dict_int FROM unpackaged" to load this file. \quit
ALTER EXTENSION dict_int ADD function dintdict_init(internal);
ALTER EXTENSION dict_int ADD function dintdict_lexize(internal,internal,internal,internal);
ALTER EXTENSION dict_int ADD text search template intdict_template;
ALTER EXTENSION dict_int ADD text search dictionary intdict;

View File

@ -6,7 +6,7 @@ OBJS = \
dict_xsyn.o
EXTENSION = dict_xsyn
DATA = dict_xsyn--1.0.sql dict_xsyn--unpackaged--1.0.sql
DATA = dict_xsyn--1.0.sql
DATA_TSEARCH = xsyn_sample.rules
PGFILEDESC = "dict_xsyn - add-on dictionary template for full-text search"

View File

@ -1,9 +0,0 @@
/* contrib/dict_xsyn/dict_xsyn--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION dict_xsyn FROM unpackaged" to load this file. \quit
ALTER EXTENSION dict_xsyn ADD function dxsyn_init(internal);
ALTER EXTENSION dict_xsyn ADD function dxsyn_lexize(internal,internal,internal,internal);
ALTER EXTENSION dict_xsyn ADD text search template xsyn_template;
ALTER EXTENSION dict_xsyn ADD text search dictionary xsyn;

View File

@ -3,8 +3,7 @@
MODULES = earthdistance
EXTENSION = earthdistance
DATA = earthdistance--1.1.sql earthdistance--1.0--1.1.sql \
earthdistance--unpackaged--1.0.sql
DATA = earthdistance--1.1.sql earthdistance--1.0--1.1.sql
PGFILEDESC = "earthdistance - calculate distances on the surface of the Earth"
REGRESS = earthdistance

View File

@ -1,16 +0,0 @@
/* contrib/earthdistance/earthdistance--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION earthdistance FROM unpackaged" to load this file. \quit
ALTER EXTENSION earthdistance ADD function earth();
ALTER EXTENSION earthdistance ADD type earth;
ALTER EXTENSION earthdistance ADD function sec_to_gc(double precision);
ALTER EXTENSION earthdistance ADD function gc_to_sec(double precision);
ALTER EXTENSION earthdistance ADD function ll_to_earth(double precision,double precision);
ALTER EXTENSION earthdistance ADD function latitude(earth);
ALTER EXTENSION earthdistance ADD function longitude(earth);
ALTER EXTENSION earthdistance ADD function earth_distance(earth,earth);
ALTER EXTENSION earthdistance ADD function earth_box(earth,double precision);
ALTER EXTENSION earthdistance ADD function geo_distance(point,point);
ALTER EXTENSION earthdistance ADD operator <@>(point,point);

View File

@ -7,8 +7,7 @@ OBJS = \
fuzzystrmatch.o
EXTENSION = fuzzystrmatch
DATA = fuzzystrmatch--1.1.sql fuzzystrmatch--1.0--1.1.sql \
fuzzystrmatch--unpackaged--1.0.sql
DATA = fuzzystrmatch--1.1.sql fuzzystrmatch--1.0--1.1.sql
PGFILEDESC = "fuzzystrmatch - similarities and distance between strings"
REGRESS = fuzzystrmatch

View File

@ -1,23 +0,0 @@
/* contrib/fuzzystrmatch/fuzzystrmatch--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION fuzzystrmatch FROM unpackaged" to load this file. \quit
ALTER EXTENSION fuzzystrmatch ADD function levenshtein(text,text);
ALTER EXTENSION fuzzystrmatch ADD function levenshtein(text,text,integer,integer,integer);
ALTER EXTENSION fuzzystrmatch ADD function metaphone(text,integer);
ALTER EXTENSION fuzzystrmatch ADD function soundex(text);
ALTER EXTENSION fuzzystrmatch ADD function text_soundex(text);
ALTER EXTENSION fuzzystrmatch ADD function difference(text,text);
ALTER EXTENSION fuzzystrmatch ADD function dmetaphone(text);
ALTER EXTENSION fuzzystrmatch ADD function dmetaphone_alt(text);
-- these functions were not in 9.0
CREATE FUNCTION levenshtein_less_equal (text,text,int) RETURNS int
AS 'MODULE_PATHNAME','levenshtein_less_equal'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION levenshtein_less_equal (text,text,int,int,int,int) RETURNS int
AS 'MODULE_PATHNAME','levenshtein_less_equal_with_costs'
LANGUAGE C IMMUTABLE STRICT;

View File

@ -14,8 +14,7 @@ DATA = hstore--1.4.sql \
hstore--1.5--1.6.sql \
hstore--1.4--1.5.sql \
hstore--1.3--1.4.sql hstore--1.2--1.3.sql \
hstore--1.1--1.2.sql hstore--1.0--1.1.sql \
hstore--unpackaged--1.0.sql
hstore--1.1--1.2.sql hstore--1.0--1.1.sql
PGFILEDESC = "hstore - key/value pair data type"
HEADERS = hstore.h

View File

@ -1,92 +0,0 @@
/* contrib/hstore/hstore--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION hstore FROM unpackaged" to load this file. \quit
ALTER EXTENSION hstore ADD type hstore;
ALTER EXTENSION hstore ADD function hstore_in(cstring);
ALTER EXTENSION hstore ADD function hstore_out(hstore);
ALTER EXTENSION hstore ADD function hstore_recv(internal);
ALTER EXTENSION hstore ADD function hstore_send(hstore);
ALTER EXTENSION hstore ADD function hstore_version_diag(hstore);
ALTER EXTENSION hstore ADD function fetchval(hstore,text);
ALTER EXTENSION hstore ADD operator ->(hstore,text);
ALTER EXTENSION hstore ADD function slice_array(hstore,text[]);
ALTER EXTENSION hstore ADD operator ->(hstore,text[]);
ALTER EXTENSION hstore ADD function slice(hstore,text[]);
ALTER EXTENSION hstore ADD function isexists(hstore,text);
ALTER EXTENSION hstore ADD function exist(hstore,text);
ALTER EXTENSION hstore ADD operator ?(hstore,text);
ALTER EXTENSION hstore ADD function exists_any(hstore,text[]);
ALTER EXTENSION hstore ADD operator ?|(hstore,text[]);
ALTER EXTENSION hstore ADD function exists_all(hstore,text[]);
ALTER EXTENSION hstore ADD operator ?&(hstore,text[]);
ALTER EXTENSION hstore ADD function isdefined(hstore,text);
ALTER EXTENSION hstore ADD function defined(hstore,text);
ALTER EXTENSION hstore ADD function delete(hstore,text);
ALTER EXTENSION hstore ADD function delete(hstore,text[]);
ALTER EXTENSION hstore ADD function delete(hstore,hstore);
ALTER EXTENSION hstore ADD operator -(hstore,text);
ALTER EXTENSION hstore ADD operator -(hstore,text[]);
ALTER EXTENSION hstore ADD operator -(hstore,hstore);
ALTER EXTENSION hstore ADD function hs_concat(hstore,hstore);
ALTER EXTENSION hstore ADD operator ||(hstore,hstore);
ALTER EXTENSION hstore ADD function hs_contains(hstore,hstore);
ALTER EXTENSION hstore ADD function hs_contained(hstore,hstore);
ALTER EXTENSION hstore ADD operator <@(hstore,hstore);
ALTER EXTENSION hstore ADD operator @>(hstore,hstore);
ALTER EXTENSION hstore ADD operator ~(hstore,hstore);
ALTER EXTENSION hstore ADD operator @(hstore,hstore);
ALTER EXTENSION hstore ADD function tconvert(text,text);
ALTER EXTENSION hstore ADD function hstore(text,text);
ALTER EXTENSION hstore ADD operator =>(text,text);
ALTER EXTENSION hstore ADD function hstore(text[],text[]);
ALTER EXTENSION hstore ADD function hstore(text[]);
ALTER EXTENSION hstore ADD cast (text[] as hstore);
ALTER EXTENSION hstore ADD function hstore(record);
ALTER EXTENSION hstore ADD function hstore_to_array(hstore);
ALTER EXTENSION hstore ADD operator %%(NONE,hstore);
ALTER EXTENSION hstore ADD function hstore_to_matrix(hstore);
ALTER EXTENSION hstore ADD operator %#(NONE,hstore);
ALTER EXTENSION hstore ADD function akeys(hstore);
ALTER EXTENSION hstore ADD function avals(hstore);
ALTER EXTENSION hstore ADD function skeys(hstore);
ALTER EXTENSION hstore ADD function svals(hstore);
ALTER EXTENSION hstore ADD function each(hstore);
ALTER EXTENSION hstore ADD function populate_record(anyelement,hstore);
ALTER EXTENSION hstore ADD operator #=(anyelement,hstore);
ALTER EXTENSION hstore ADD function hstore_eq(hstore,hstore);
ALTER EXTENSION hstore ADD function hstore_ne(hstore,hstore);
ALTER EXTENSION hstore ADD function hstore_gt(hstore,hstore);
ALTER EXTENSION hstore ADD function hstore_ge(hstore,hstore);
ALTER EXTENSION hstore ADD function hstore_lt(hstore,hstore);
ALTER EXTENSION hstore ADD function hstore_le(hstore,hstore);
ALTER EXTENSION hstore ADD function hstore_cmp(hstore,hstore);
ALTER EXTENSION hstore ADD operator <>(hstore,hstore);
ALTER EXTENSION hstore ADD operator =(hstore,hstore);
ALTER EXTENSION hstore ADD operator #>#(hstore,hstore);
ALTER EXTENSION hstore ADD operator #>=#(hstore,hstore);
ALTER EXTENSION hstore ADD operator #<#(hstore,hstore);
ALTER EXTENSION hstore ADD operator #<=#(hstore,hstore);
ALTER EXTENSION hstore ADD operator family btree_hstore_ops using btree;
ALTER EXTENSION hstore ADD operator class btree_hstore_ops using btree;
ALTER EXTENSION hstore ADD function hstore_hash(hstore);
ALTER EXTENSION hstore ADD operator family hash_hstore_ops using hash;
ALTER EXTENSION hstore ADD operator class hash_hstore_ops using hash;
ALTER EXTENSION hstore ADD type ghstore;
ALTER EXTENSION hstore ADD function ghstore_in(cstring);
ALTER EXTENSION hstore ADD function ghstore_out(ghstore);
ALTER EXTENSION hstore ADD function ghstore_compress(internal);
ALTER EXTENSION hstore ADD function ghstore_decompress(internal);
ALTER EXTENSION hstore ADD function ghstore_penalty(internal,internal,internal);
ALTER EXTENSION hstore ADD function ghstore_picksplit(internal,internal);
ALTER EXTENSION hstore ADD function ghstore_union(internal,internal);
ALTER EXTENSION hstore ADD function ghstore_same(internal,internal,internal);
ALTER EXTENSION hstore ADD function ghstore_consistent(internal,internal,integer,oid,internal);
ALTER EXTENSION hstore ADD operator family gist_hstore_ops using gist;
ALTER EXTENSION hstore ADD operator class gist_hstore_ops using gist;
ALTER EXTENSION hstore ADD function gin_extract_hstore(internal,internal);
ALTER EXTENSION hstore ADD function gin_extract_hstore_query(internal,internal,smallint,internal,internal);
ALTER EXTENSION hstore ADD function gin_consistent_hstore(internal,smallint,internal,integer,internal,internal);
ALTER EXTENSION hstore ADD operator family gin_hstore_ops using gin;
ALTER EXTENSION hstore ADD operator class gin_hstore_ops using gin;

View File

@ -1,7 +1,7 @@
# contrib/intagg/Makefile
EXTENSION = intagg
DATA = intagg--1.1.sql intagg--1.0--1.1.sql intagg--unpackaged--1.0.sql
DATA = intagg--1.1.sql intagg--1.0--1.1.sql
ifdef USE_PGXS
PG_CONFIG = pg_config

View File

@ -1,9 +0,0 @@
/* contrib/intagg/intagg--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION intagg FROM unpackaged" to load this file. \quit
ALTER EXTENSION intagg ADD function int_agg_state(internal,integer);
ALTER EXTENSION intagg ADD function int_agg_final_array(internal);
ALTER EXTENSION intagg ADD function int_array_aggregate(integer);
ALTER EXTENSION intagg ADD function int_array_enum(integer[]);

View File

@ -12,8 +12,7 @@ OBJS = \
_intbig_gist.o
EXTENSION = intarray
DATA = intarray--1.2.sql intarray--1.1--1.2.sql intarray--1.0--1.1.sql \
intarray--unpackaged--1.0.sql
DATA = intarray--1.2.sql intarray--1.1--1.2.sql intarray--1.0--1.1.sql
PGFILEDESC = "intarray - functions and operators for arrays of integers"
REGRESS = _int

View File

@ -1,111 +0,0 @@
/* contrib/intarray/intarray--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION intarray FROM unpackaged" to load this file. \quit
ALTER EXTENSION intarray ADD type query_int;
ALTER EXTENSION intarray ADD function bqarr_in(cstring);
ALTER EXTENSION intarray ADD function bqarr_out(query_int);
ALTER EXTENSION intarray ADD function querytree(query_int);
ALTER EXTENSION intarray ADD function boolop(integer[],query_int);
ALTER EXTENSION intarray ADD function rboolop(query_int,integer[]);
ALTER EXTENSION intarray ADD operator ~~(query_int,integer[]);
ALTER EXTENSION intarray ADD operator @@(integer[],query_int);
ALTER EXTENSION intarray ADD function _int_contains(integer[],integer[]);
ALTER EXTENSION intarray ADD function _int_contained(integer[],integer[]);
ALTER EXTENSION intarray ADD function _int_overlap(integer[],integer[]);
ALTER EXTENSION intarray ADD function _int_same(integer[],integer[]);
ALTER EXTENSION intarray ADD function _int_different(integer[],integer[]);
ALTER EXTENSION intarray ADD function _int_union(integer[],integer[]);
ALTER EXTENSION intarray ADD function _int_inter(integer[],integer[]);
ALTER EXTENSION intarray ADD operator &&(integer[],integer[]);
ALTER EXTENSION intarray ADD operator <@(integer[],integer[]);
ALTER EXTENSION intarray ADD operator @>(integer[],integer[]);
ALTER EXTENSION intarray ADD operator ~(integer[],integer[]);
ALTER EXTENSION intarray ADD operator @(integer[],integer[]);
ALTER EXTENSION intarray ADD function intset(integer);
ALTER EXTENSION intarray ADD function icount(integer[]);
ALTER EXTENSION intarray ADD operator #(NONE,integer[]);
ALTER EXTENSION intarray ADD function sort(integer[],text);
ALTER EXTENSION intarray ADD function sort(integer[]);
ALTER EXTENSION intarray ADD function sort_asc(integer[]);
ALTER EXTENSION intarray ADD function sort_desc(integer[]);
ALTER EXTENSION intarray ADD function uniq(integer[]);
ALTER EXTENSION intarray ADD function idx(integer[],integer);
ALTER EXTENSION intarray ADD operator #(integer[],integer);
ALTER EXTENSION intarray ADD function subarray(integer[],integer,integer);
ALTER EXTENSION intarray ADD function subarray(integer[],integer);
ALTER EXTENSION intarray ADD function intarray_push_elem(integer[],integer);
ALTER EXTENSION intarray ADD operator +(integer[],integer);
ALTER EXTENSION intarray ADD function intarray_push_array(integer[],integer[]);
ALTER EXTENSION intarray ADD operator +(integer[],integer[]);
ALTER EXTENSION intarray ADD function intarray_del_elem(integer[],integer);
ALTER EXTENSION intarray ADD operator -(integer[],integer);
ALTER EXTENSION intarray ADD function intset_union_elem(integer[],integer);
ALTER EXTENSION intarray ADD operator |(integer[],integer);
ALTER EXTENSION intarray ADD operator |(integer[],integer[]);
ALTER EXTENSION intarray ADD function intset_subtract(integer[],integer[]);
ALTER EXTENSION intarray ADD operator -(integer[],integer[]);
ALTER EXTENSION intarray ADD operator &(integer[],integer[]);
ALTER EXTENSION intarray ADD function g_int_consistent(internal,integer[],integer,oid,internal);
ALTER EXTENSION intarray ADD function g_int_compress(internal);
ALTER EXTENSION intarray ADD function g_int_decompress(internal);
ALTER EXTENSION intarray ADD function g_int_penalty(internal,internal,internal);
ALTER EXTENSION intarray ADD function g_int_picksplit(internal,internal);
ALTER EXTENSION intarray ADD function g_int_union(internal,internal);
ALTER EXTENSION intarray ADD function g_int_same(integer[],integer[],internal);
ALTER EXTENSION intarray ADD operator family gist__int_ops using gist;
ALTER EXTENSION intarray ADD operator class gist__int_ops using gist;
ALTER EXTENSION intarray ADD type intbig_gkey;
ALTER EXTENSION intarray ADD function _intbig_in(cstring);
ALTER EXTENSION intarray ADD function _intbig_out(intbig_gkey);
ALTER EXTENSION intarray ADD function g_intbig_consistent(internal,internal,integer,oid,internal);
ALTER EXTENSION intarray ADD function g_intbig_compress(internal);
ALTER EXTENSION intarray ADD function g_intbig_decompress(internal);
ALTER EXTENSION intarray ADD function g_intbig_penalty(internal,internal,internal);
ALTER EXTENSION intarray ADD function g_intbig_picksplit(internal,internal);
ALTER EXTENSION intarray ADD function g_intbig_union(internal,internal);
ALTER EXTENSION intarray ADD function g_intbig_same(internal,internal,internal);
ALTER EXTENSION intarray ADD operator family gist__intbig_ops using gist;
ALTER EXTENSION intarray ADD operator class gist__intbig_ops using gist;
ALTER EXTENSION intarray ADD operator family gin__int_ops using gin;
ALTER EXTENSION intarray ADD operator class gin__int_ops using gin;
-- These functions had different signatures in 9.0. We can't just
-- drop and recreate them because they are linked into the GIN opclass,
-- so we need some ugly hacks.
-- First, absorb them into the extension under their old identities.
ALTER EXTENSION intarray ADD function ginint4_queryextract(internal,internal,smallint,internal,internal);
ALTER EXTENSION intarray ADD function ginint4_consistent(internal,smallint,internal,integer,internal,internal);
-- Next, fix the parameter lists by means of direct UPDATE on the pg_proc
-- entries. This is ugly as can be, but there's no other way to do it
-- while preserving the identities (OIDs) of the functions.
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;
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;
-- intarray also relies on the core function ginarrayextract, which changed
-- signature in 9.1. To support upgrading, pg_catalog contains entries
-- for ginarrayextract with both 2 and 3 args, and the former is what would
-- have been added to our opclass during initial restore of a 9.0 dump script.
-- Avert your eyes while we hack the pg_amproc entry to make it link to the
-- 3-arg form ...
UPDATE pg_catalog.pg_amproc
SET amproc = 'pg_catalog.ginarrayextract(anyarray,internal,internal)'::pg_catalog.regprocedure
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()))
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;

View File

@ -4,7 +4,7 @@ MODULES = isn
EXTENSION = isn
DATA = isn--1.1.sql isn--1.1--1.2.sql \
isn--1.0--1.1.sql isn--unpackaged--1.0.sql
isn--1.0--1.1.sql
PGFILEDESC = "isn - data types for international product numbering standards"
# the other .h files are data tables, we don't install those

View File

@ -1,464 +0,0 @@
/* contrib/isn/isn--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION isn FROM unpackaged" to load this file. \quit
ALTER EXTENSION isn ADD type ean13;
ALTER EXTENSION isn ADD function ean13_in(cstring);
ALTER EXTENSION isn ADD function ean13_out(ean13);
ALTER EXTENSION isn ADD type isbn13;
ALTER EXTENSION isn ADD function isbn13_in(cstring);
ALTER EXTENSION isn ADD function ean13_out(isbn13);
ALTER EXTENSION isn ADD type ismn13;
ALTER EXTENSION isn ADD function ismn13_in(cstring);
ALTER EXTENSION isn ADD function ean13_out(ismn13);
ALTER EXTENSION isn ADD type issn13;
ALTER EXTENSION isn ADD function issn13_in(cstring);
ALTER EXTENSION isn ADD function ean13_out(issn13);
ALTER EXTENSION isn ADD type isbn;
ALTER EXTENSION isn ADD function isbn_in(cstring);
ALTER EXTENSION isn ADD function isn_out(isbn);
ALTER EXTENSION isn ADD type ismn;
ALTER EXTENSION isn ADD function ismn_in(cstring);
ALTER EXTENSION isn ADD function isn_out(ismn);
ALTER EXTENSION isn ADD type issn;
ALTER EXTENSION isn ADD function issn_in(cstring);
ALTER EXTENSION isn ADD function isn_out(issn);
ALTER EXTENSION isn ADD type upc;
ALTER EXTENSION isn ADD function upc_in(cstring);
ALTER EXTENSION isn ADD function isn_out(upc);
ALTER EXTENSION isn ADD function isnlt(ean13,ean13);
ALTER EXTENSION isn ADD function isnle(ean13,ean13);
ALTER EXTENSION isn ADD function isneq(ean13,ean13);
ALTER EXTENSION isn ADD function isnge(ean13,ean13);
ALTER EXTENSION isn ADD function isngt(ean13,ean13);
ALTER EXTENSION isn ADD function isnne(ean13,ean13);
ALTER EXTENSION isn ADD function isnlt(ean13,isbn13);
ALTER EXTENSION isn ADD function isnle(ean13,isbn13);
ALTER EXTENSION isn ADD function isneq(ean13,isbn13);
ALTER EXTENSION isn ADD function isnge(ean13,isbn13);
ALTER EXTENSION isn ADD function isngt(ean13,isbn13);
ALTER EXTENSION isn ADD function isnne(ean13,isbn13);
ALTER EXTENSION isn ADD function isnlt(ean13,ismn13);
ALTER EXTENSION isn ADD function isnle(ean13,ismn13);
ALTER EXTENSION isn ADD function isneq(ean13,ismn13);
ALTER EXTENSION isn ADD function isnge(ean13,ismn13);
ALTER EXTENSION isn ADD function isngt(ean13,ismn13);
ALTER EXTENSION isn ADD function isnne(ean13,ismn13);
ALTER EXTENSION isn ADD function isnlt(ean13,issn13);
ALTER EXTENSION isn ADD function isnle(ean13,issn13);
ALTER EXTENSION isn ADD function isneq(ean13,issn13);
ALTER EXTENSION isn ADD function isnge(ean13,issn13);
ALTER EXTENSION isn ADD function isngt(ean13,issn13);
ALTER EXTENSION isn ADD function isnne(ean13,issn13);
ALTER EXTENSION isn ADD function isnlt(ean13,isbn);
ALTER EXTENSION isn ADD function isnle(ean13,isbn);
ALTER EXTENSION isn ADD function isneq(ean13,isbn);
ALTER EXTENSION isn ADD function isnge(ean13,isbn);
ALTER EXTENSION isn ADD function isngt(ean13,isbn);
ALTER EXTENSION isn ADD function isnne(ean13,isbn);
ALTER EXTENSION isn ADD function isnlt(ean13,ismn);
ALTER EXTENSION isn ADD function isnle(ean13,ismn);
ALTER EXTENSION isn ADD function isneq(ean13,ismn);
ALTER EXTENSION isn ADD function isnge(ean13,ismn);
ALTER EXTENSION isn ADD function isngt(ean13,ismn);
ALTER EXTENSION isn ADD function isnne(ean13,ismn);
ALTER EXTENSION isn ADD function isnlt(ean13,issn);
ALTER EXTENSION isn ADD function isnle(ean13,issn);
ALTER EXTENSION isn ADD function isneq(ean13,issn);
ALTER EXTENSION isn ADD function isnge(ean13,issn);
ALTER EXTENSION isn ADD function isngt(ean13,issn);
ALTER EXTENSION isn ADD function isnne(ean13,issn);
ALTER EXTENSION isn ADD function isnlt(ean13,upc);
ALTER EXTENSION isn ADD function isnle(ean13,upc);
ALTER EXTENSION isn ADD function isneq(ean13,upc);
ALTER EXTENSION isn ADD function isnge(ean13,upc);
ALTER EXTENSION isn ADD function isngt(ean13,upc);
ALTER EXTENSION isn ADD function isnne(ean13,upc);
ALTER EXTENSION isn ADD function isnlt(isbn13,isbn13);
ALTER EXTENSION isn ADD function isnle(isbn13,isbn13);
ALTER EXTENSION isn ADD function isneq(isbn13,isbn13);
ALTER EXTENSION isn ADD function isnge(isbn13,isbn13);
ALTER EXTENSION isn ADD function isngt(isbn13,isbn13);
ALTER EXTENSION isn ADD function isnne(isbn13,isbn13);
ALTER EXTENSION isn ADD function isnlt(isbn13,isbn);
ALTER EXTENSION isn ADD function isnle(isbn13,isbn);
ALTER EXTENSION isn ADD function isneq(isbn13,isbn);
ALTER EXTENSION isn ADD function isnge(isbn13,isbn);
ALTER EXTENSION isn ADD function isngt(isbn13,isbn);
ALTER EXTENSION isn ADD function isnne(isbn13,isbn);
ALTER EXTENSION isn ADD function isnlt(isbn13,ean13);
ALTER EXTENSION isn ADD function isnle(isbn13,ean13);
ALTER EXTENSION isn ADD function isneq(isbn13,ean13);
ALTER EXTENSION isn ADD function isnge(isbn13,ean13);
ALTER EXTENSION isn ADD function isngt(isbn13,ean13);
ALTER EXTENSION isn ADD function isnne(isbn13,ean13);
ALTER EXTENSION isn ADD function isnlt(isbn,isbn);
ALTER EXTENSION isn ADD function isnle(isbn,isbn);
ALTER EXTENSION isn ADD function isneq(isbn,isbn);
ALTER EXTENSION isn ADD function isnge(isbn,isbn);
ALTER EXTENSION isn ADD function isngt(isbn,isbn);
ALTER EXTENSION isn ADD function isnne(isbn,isbn);
ALTER EXTENSION isn ADD function isnlt(isbn,isbn13);
ALTER EXTENSION isn ADD function isnle(isbn,isbn13);
ALTER EXTENSION isn ADD function isneq(isbn,isbn13);
ALTER EXTENSION isn ADD function isnge(isbn,isbn13);
ALTER EXTENSION isn ADD function isngt(isbn,isbn13);
ALTER EXTENSION isn ADD function isnne(isbn,isbn13);
ALTER EXTENSION isn ADD function isnlt(isbn,ean13);
ALTER EXTENSION isn ADD function isnle(isbn,ean13);
ALTER EXTENSION isn ADD function isneq(isbn,ean13);
ALTER EXTENSION isn ADD function isnge(isbn,ean13);
ALTER EXTENSION isn ADD function isngt(isbn,ean13);
ALTER EXTENSION isn ADD function isnne(isbn,ean13);
ALTER EXTENSION isn ADD function isnlt(ismn13,ismn13);
ALTER EXTENSION isn ADD function isnle(ismn13,ismn13);
ALTER EXTENSION isn ADD function isneq(ismn13,ismn13);
ALTER EXTENSION isn ADD function isnge(ismn13,ismn13);
ALTER EXTENSION isn ADD function isngt(ismn13,ismn13);
ALTER EXTENSION isn ADD function isnne(ismn13,ismn13);
ALTER EXTENSION isn ADD function isnlt(ismn13,ismn);
ALTER EXTENSION isn ADD function isnle(ismn13,ismn);
ALTER EXTENSION isn ADD function isneq(ismn13,ismn);
ALTER EXTENSION isn ADD function isnge(ismn13,ismn);
ALTER EXTENSION isn ADD function isngt(ismn13,ismn);
ALTER EXTENSION isn ADD function isnne(ismn13,ismn);
ALTER EXTENSION isn ADD function isnlt(ismn13,ean13);
ALTER EXTENSION isn ADD function isnle(ismn13,ean13);
ALTER EXTENSION isn ADD function isneq(ismn13,ean13);
ALTER EXTENSION isn ADD function isnge(ismn13,ean13);
ALTER EXTENSION isn ADD function isngt(ismn13,ean13);
ALTER EXTENSION isn ADD function isnne(ismn13,ean13);
ALTER EXTENSION isn ADD function isnlt(ismn,ismn);
ALTER EXTENSION isn ADD function isnle(ismn,ismn);
ALTER EXTENSION isn ADD function isneq(ismn,ismn);
ALTER EXTENSION isn ADD function isnge(ismn,ismn);
ALTER EXTENSION isn ADD function isngt(ismn,ismn);
ALTER EXTENSION isn ADD function isnne(ismn,ismn);
ALTER EXTENSION isn ADD function isnlt(ismn,ismn13);
ALTER EXTENSION isn ADD function isnle(ismn,ismn13);
ALTER EXTENSION isn ADD function isneq(ismn,ismn13);
ALTER EXTENSION isn ADD function isnge(ismn,ismn13);
ALTER EXTENSION isn ADD function isngt(ismn,ismn13);
ALTER EXTENSION isn ADD function isnne(ismn,ismn13);
ALTER EXTENSION isn ADD function isnlt(ismn,ean13);
ALTER EXTENSION isn ADD function isnle(ismn,ean13);
ALTER EXTENSION isn ADD function isneq(ismn,ean13);
ALTER EXTENSION isn ADD function isnge(ismn,ean13);
ALTER EXTENSION isn ADD function isngt(ismn,ean13);
ALTER EXTENSION isn ADD function isnne(ismn,ean13);
ALTER EXTENSION isn ADD function isnlt(issn13,issn13);
ALTER EXTENSION isn ADD function isnle(issn13,issn13);
ALTER EXTENSION isn ADD function isneq(issn13,issn13);
ALTER EXTENSION isn ADD function isnge(issn13,issn13);
ALTER EXTENSION isn ADD function isngt(issn13,issn13);
ALTER EXTENSION isn ADD function isnne(issn13,issn13);
ALTER EXTENSION isn ADD function isnlt(issn13,issn);
ALTER EXTENSION isn ADD function isnle(issn13,issn);
ALTER EXTENSION isn ADD function isneq(issn13,issn);
ALTER EXTENSION isn ADD function isnge(issn13,issn);
ALTER EXTENSION isn ADD function isngt(issn13,issn);
ALTER EXTENSION isn ADD function isnne(issn13,issn);
ALTER EXTENSION isn ADD function isnlt(issn13,ean13);
ALTER EXTENSION isn ADD function isnle(issn13,ean13);
ALTER EXTENSION isn ADD function isneq(issn13,ean13);
ALTER EXTENSION isn ADD function isnge(issn13,ean13);
ALTER EXTENSION isn ADD function isngt(issn13,ean13);
ALTER EXTENSION isn ADD function isnne(issn13,ean13);
ALTER EXTENSION isn ADD function isnlt(issn,issn);
ALTER EXTENSION isn ADD function isnle(issn,issn);
ALTER EXTENSION isn ADD function isneq(issn,issn);
ALTER EXTENSION isn ADD function isnge(issn,issn);
ALTER EXTENSION isn ADD function isngt(issn,issn);
ALTER EXTENSION isn ADD function isnne(issn,issn);
ALTER EXTENSION isn ADD function isnlt(issn,issn13);
ALTER EXTENSION isn ADD function isnle(issn,issn13);
ALTER EXTENSION isn ADD function isneq(issn,issn13);
ALTER EXTENSION isn ADD function isnge(issn,issn13);
ALTER EXTENSION isn ADD function isngt(issn,issn13);
ALTER EXTENSION isn ADD function isnne(issn,issn13);
ALTER EXTENSION isn ADD function isnlt(issn,ean13);
ALTER EXTENSION isn ADD function isnle(issn,ean13);
ALTER EXTENSION isn ADD function isneq(issn,ean13);
ALTER EXTENSION isn ADD function isnge(issn,ean13);
ALTER EXTENSION isn ADD function isngt(issn,ean13);
ALTER EXTENSION isn ADD function isnne(issn,ean13);
ALTER EXTENSION isn ADD function isnlt(upc,upc);
ALTER EXTENSION isn ADD function isnle(upc,upc);
ALTER EXTENSION isn ADD function isneq(upc,upc);
ALTER EXTENSION isn ADD function isnge(upc,upc);
ALTER EXTENSION isn ADD function isngt(upc,upc);
ALTER EXTENSION isn ADD function isnne(upc,upc);
ALTER EXTENSION isn ADD function isnlt(upc,ean13);
ALTER EXTENSION isn ADD function isnle(upc,ean13);
ALTER EXTENSION isn ADD function isneq(upc,ean13);
ALTER EXTENSION isn ADD function isnge(upc,ean13);
ALTER EXTENSION isn ADD function isngt(upc,ean13);
ALTER EXTENSION isn ADD function isnne(upc,ean13);
ALTER EXTENSION isn ADD operator >(ean13,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,ean13);
ALTER EXTENSION isn ADD operator <(ean13,ean13);
ALTER EXTENSION isn ADD operator <=(ean13,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,ean13);
ALTER EXTENSION isn ADD operator =(ean13,ean13);
ALTER EXTENSION isn ADD operator >(isbn13,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,isbn13);
ALTER EXTENSION isn ADD operator <(ean13,isbn13);
ALTER EXTENSION isn ADD operator >=(isbn13,ean13);
ALTER EXTENSION isn ADD operator >(ean13,isbn13);
ALTER EXTENSION isn ADD operator <=(ean13,isbn13);
ALTER EXTENSION isn ADD operator =(isbn13,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,isbn13);
ALTER EXTENSION isn ADD operator =(ean13,isbn13);
ALTER EXTENSION isn ADD operator <=(isbn13,ean13);
ALTER EXTENSION isn ADD operator <(isbn13,ean13);
ALTER EXTENSION isn ADD operator <>(isbn13,ean13);
ALTER EXTENSION isn ADD operator >(ismn13,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,ismn13);
ALTER EXTENSION isn ADD operator <(ean13,ismn13);
ALTER EXTENSION isn ADD operator >=(ismn13,ean13);
ALTER EXTENSION isn ADD operator >(ean13,ismn13);
ALTER EXTENSION isn ADD operator <=(ean13,ismn13);
ALTER EXTENSION isn ADD operator =(ismn13,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,ismn13);
ALTER EXTENSION isn ADD operator =(ean13,ismn13);
ALTER EXTENSION isn ADD operator <=(ismn13,ean13);
ALTER EXTENSION isn ADD operator <(ismn13,ean13);
ALTER EXTENSION isn ADD operator <>(ismn13,ean13);
ALTER EXTENSION isn ADD operator >(issn13,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,issn13);
ALTER EXTENSION isn ADD operator <(ean13,issn13);
ALTER EXTENSION isn ADD operator >=(issn13,ean13);
ALTER EXTENSION isn ADD operator >(ean13,issn13);
ALTER EXTENSION isn ADD operator <=(ean13,issn13);
ALTER EXTENSION isn ADD operator =(issn13,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,issn13);
ALTER EXTENSION isn ADD operator =(ean13,issn13);
ALTER EXTENSION isn ADD operator <=(issn13,ean13);
ALTER EXTENSION isn ADD operator <(issn13,ean13);
ALTER EXTENSION isn ADD operator <>(issn13,ean13);
ALTER EXTENSION isn ADD operator >(isbn,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,isbn);
ALTER EXTENSION isn ADD operator <(ean13,isbn);
ALTER EXTENSION isn ADD operator >=(isbn,ean13);
ALTER EXTENSION isn ADD operator >(ean13,isbn);
ALTER EXTENSION isn ADD operator <=(ean13,isbn);
ALTER EXTENSION isn ADD operator =(isbn,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,isbn);
ALTER EXTENSION isn ADD operator =(ean13,isbn);
ALTER EXTENSION isn ADD operator <=(isbn,ean13);
ALTER EXTENSION isn ADD operator <(isbn,ean13);
ALTER EXTENSION isn ADD operator <>(isbn,ean13);
ALTER EXTENSION isn ADD operator >(ismn,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,ismn);
ALTER EXTENSION isn ADD operator <(ean13,ismn);
ALTER EXTENSION isn ADD operator >=(ismn,ean13);
ALTER EXTENSION isn ADD operator >(ean13,ismn);
ALTER EXTENSION isn ADD operator <=(ean13,ismn);
ALTER EXTENSION isn ADD operator =(ismn,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,ismn);
ALTER EXTENSION isn ADD operator =(ean13,ismn);
ALTER EXTENSION isn ADD operator <=(ismn,ean13);
ALTER EXTENSION isn ADD operator <(ismn,ean13);
ALTER EXTENSION isn ADD operator <>(ismn,ean13);
ALTER EXTENSION isn ADD operator >(issn,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,issn);
ALTER EXTENSION isn ADD operator <(ean13,issn);
ALTER EXTENSION isn ADD operator >=(issn,ean13);
ALTER EXTENSION isn ADD operator >(ean13,issn);
ALTER EXTENSION isn ADD operator <=(ean13,issn);
ALTER EXTENSION isn ADD operator =(issn,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,issn);
ALTER EXTENSION isn ADD operator =(ean13,issn);
ALTER EXTENSION isn ADD operator <=(issn,ean13);
ALTER EXTENSION isn ADD operator <(issn,ean13);
ALTER EXTENSION isn ADD operator <>(issn,ean13);
ALTER EXTENSION isn ADD operator >(upc,ean13);
ALTER EXTENSION isn ADD operator >=(ean13,upc);
ALTER EXTENSION isn ADD operator <(ean13,upc);
ALTER EXTENSION isn ADD operator >=(upc,ean13);
ALTER EXTENSION isn ADD operator >(ean13,upc);
ALTER EXTENSION isn ADD operator <=(ean13,upc);
ALTER EXTENSION isn ADD operator =(upc,ean13);
ALTER EXTENSION isn ADD operator <>(ean13,upc);
ALTER EXTENSION isn ADD operator =(ean13,upc);
ALTER EXTENSION isn ADD operator <=(upc,ean13);
ALTER EXTENSION isn ADD operator <(upc,ean13);
ALTER EXTENSION isn ADD operator <>(upc,ean13);
ALTER EXTENSION isn ADD operator >(isbn13,isbn13);
ALTER EXTENSION isn ADD operator >=(isbn13,isbn13);
ALTER EXTENSION isn ADD operator <(isbn13,isbn13);
ALTER EXTENSION isn ADD operator <=(isbn13,isbn13);
ALTER EXTENSION isn ADD operator <>(isbn13,isbn13);
ALTER EXTENSION isn ADD operator =(isbn13,isbn13);
ALTER EXTENSION isn ADD operator >(isbn,isbn13);
ALTER EXTENSION isn ADD operator >=(isbn13,isbn);
ALTER EXTENSION isn ADD operator <(isbn13,isbn);
ALTER EXTENSION isn ADD operator >=(isbn,isbn13);
ALTER EXTENSION isn ADD operator >(isbn13,isbn);
ALTER EXTENSION isn ADD operator <=(isbn13,isbn);
ALTER EXTENSION isn ADD operator =(isbn,isbn13);
ALTER EXTENSION isn ADD operator <>(isbn13,isbn);
ALTER EXTENSION isn ADD operator =(isbn13,isbn);
ALTER EXTENSION isn ADD operator <=(isbn,isbn13);
ALTER EXTENSION isn ADD operator <(isbn,isbn13);
ALTER EXTENSION isn ADD operator <>(isbn,isbn13);
ALTER EXTENSION isn ADD operator >(isbn,isbn);
ALTER EXTENSION isn ADD operator >=(isbn,isbn);
ALTER EXTENSION isn ADD operator <(isbn,isbn);
ALTER EXTENSION isn ADD operator <=(isbn,isbn);
ALTER EXTENSION isn ADD operator <>(isbn,isbn);
ALTER EXTENSION isn ADD operator =(isbn,isbn);
ALTER EXTENSION isn ADD operator >(ismn13,ismn13);
ALTER EXTENSION isn ADD operator >=(ismn13,ismn13);
ALTER EXTENSION isn ADD operator <(ismn13,ismn13);
ALTER EXTENSION isn ADD operator <=(ismn13,ismn13);
ALTER EXTENSION isn ADD operator <>(ismn13,ismn13);
ALTER EXTENSION isn ADD operator =(ismn13,ismn13);
ALTER EXTENSION isn ADD operator >(ismn,ismn13);
ALTER EXTENSION isn ADD operator >=(ismn13,ismn);
ALTER EXTENSION isn ADD operator <(ismn13,ismn);
ALTER EXTENSION isn ADD operator >=(ismn,ismn13);
ALTER EXTENSION isn ADD operator >(ismn13,ismn);
ALTER EXTENSION isn ADD operator <=(ismn13,ismn);
ALTER EXTENSION isn ADD operator =(ismn,ismn13);
ALTER EXTENSION isn ADD operator <>(ismn13,ismn);
ALTER EXTENSION isn ADD operator =(ismn13,ismn);
ALTER EXTENSION isn ADD operator <=(ismn,ismn13);
ALTER EXTENSION isn ADD operator <(ismn,ismn13);
ALTER EXTENSION isn ADD operator <>(ismn,ismn13);
ALTER EXTENSION isn ADD operator >(ismn,ismn);
ALTER EXTENSION isn ADD operator >=(ismn,ismn);
ALTER EXTENSION isn ADD operator <(ismn,ismn);
ALTER EXTENSION isn ADD operator <=(ismn,ismn);
ALTER EXTENSION isn ADD operator <>(ismn,ismn);
ALTER EXTENSION isn ADD operator =(ismn,ismn);
ALTER EXTENSION isn ADD operator >(issn13,issn13);
ALTER EXTENSION isn ADD operator >=(issn13,issn13);
ALTER EXTENSION isn ADD operator <(issn13,issn13);
ALTER EXTENSION isn ADD operator <=(issn13,issn13);
ALTER EXTENSION isn ADD operator <>(issn13,issn13);
ALTER EXTENSION isn ADD operator =(issn13,issn13);
ALTER EXTENSION isn ADD operator >(issn,issn13);
ALTER EXTENSION isn ADD operator >=(issn13,issn);
ALTER EXTENSION isn ADD operator <(issn13,issn);
ALTER EXTENSION isn ADD operator >=(issn,issn13);
ALTER EXTENSION isn ADD operator >(issn13,issn);
ALTER EXTENSION isn ADD operator <=(issn13,issn);
ALTER EXTENSION isn ADD operator =(issn,issn13);
ALTER EXTENSION isn ADD operator <>(issn13,issn);
ALTER EXTENSION isn ADD operator =(issn13,issn);
ALTER EXTENSION isn ADD operator <=(issn,issn13);
ALTER EXTENSION isn ADD operator <(issn,issn13);
ALTER EXTENSION isn ADD operator <>(issn,issn13);
ALTER EXTENSION isn ADD operator >(issn,issn);
ALTER EXTENSION isn ADD operator >=(issn,issn);
ALTER EXTENSION isn ADD operator <(issn,issn);
ALTER EXTENSION isn ADD operator <=(issn,issn);
ALTER EXTENSION isn ADD operator <>(issn,issn);
ALTER EXTENSION isn ADD operator =(issn,issn);
ALTER EXTENSION isn ADD operator >(upc,upc);
ALTER EXTENSION isn ADD operator >=(upc,upc);
ALTER EXTENSION isn ADD operator <(upc,upc);
ALTER EXTENSION isn ADD operator <=(upc,upc);
ALTER EXTENSION isn ADD operator <>(upc,upc);
ALTER EXTENSION isn ADD operator =(upc,upc);
ALTER EXTENSION isn ADD operator family isn_ops using btree;
ALTER EXTENSION isn ADD operator family isn_ops using hash;
ALTER EXTENSION isn ADD function btean13cmp(ean13,ean13);
ALTER EXTENSION isn ADD operator class ean13_ops using btree;
ALTER EXTENSION isn ADD function hashean13(ean13);
ALTER EXTENSION isn ADD operator class ean13_ops using hash;
ALTER EXTENSION isn ADD function btean13cmp(ean13,isbn13);
ALTER EXTENSION isn ADD function btean13cmp(ean13,ismn13);
ALTER EXTENSION isn ADD function btean13cmp(ean13,issn13);
ALTER EXTENSION isn ADD function btean13cmp(ean13,isbn);
ALTER EXTENSION isn ADD function btean13cmp(ean13,ismn);
ALTER EXTENSION isn ADD function btean13cmp(ean13,issn);
ALTER EXTENSION isn ADD function btean13cmp(ean13,upc);
ALTER EXTENSION isn ADD function btisbn13cmp(isbn13,isbn13);
ALTER EXTENSION isn ADD operator class isbn13_ops using btree;
ALTER EXTENSION isn ADD function hashisbn13(isbn13);
ALTER EXTENSION isn ADD operator class isbn13_ops using hash;
ALTER EXTENSION isn ADD function btisbn13cmp(isbn13,ean13);
ALTER EXTENSION isn ADD function btisbn13cmp(isbn13,isbn);
ALTER EXTENSION isn ADD function btisbncmp(isbn,isbn);
ALTER EXTENSION isn ADD operator class isbn_ops using btree;
ALTER EXTENSION isn ADD function hashisbn(isbn);
ALTER EXTENSION isn ADD operator class isbn_ops using hash;
ALTER EXTENSION isn ADD function btisbncmp(isbn,ean13);
ALTER EXTENSION isn ADD function btisbncmp(isbn,isbn13);
ALTER EXTENSION isn ADD function btismn13cmp(ismn13,ismn13);
ALTER EXTENSION isn ADD operator class ismn13_ops using btree;
ALTER EXTENSION isn ADD function hashismn13(ismn13);
ALTER EXTENSION isn ADD operator class ismn13_ops using hash;
ALTER EXTENSION isn ADD function btismn13cmp(ismn13,ean13);
ALTER EXTENSION isn ADD function btismn13cmp(ismn13,ismn);
ALTER EXTENSION isn ADD function btismncmp(ismn,ismn);
ALTER EXTENSION isn ADD operator class ismn_ops using btree;
ALTER EXTENSION isn ADD function hashismn(ismn);
ALTER EXTENSION isn ADD operator class ismn_ops using hash;
ALTER EXTENSION isn ADD function btismncmp(ismn,ean13);
ALTER EXTENSION isn ADD function btismncmp(ismn,ismn13);
ALTER EXTENSION isn ADD function btissn13cmp(issn13,issn13);
ALTER EXTENSION isn ADD operator class issn13_ops using btree;
ALTER EXTENSION isn ADD function hashissn13(issn13);
ALTER EXTENSION isn ADD operator class issn13_ops using hash;
ALTER EXTENSION isn ADD function btissn13cmp(issn13,ean13);
ALTER EXTENSION isn ADD function btissn13cmp(issn13,issn);
ALTER EXTENSION isn ADD function btissncmp(issn,issn);
ALTER EXTENSION isn ADD operator class issn_ops using btree;
ALTER EXTENSION isn ADD function hashissn(issn);
ALTER EXTENSION isn ADD operator class issn_ops using hash;
ALTER EXTENSION isn ADD function btissncmp(issn,ean13);
ALTER EXTENSION isn ADD function btissncmp(issn,issn13);
ALTER EXTENSION isn ADD function btupccmp(upc,upc);
ALTER EXTENSION isn ADD operator class upc_ops using btree;
ALTER EXTENSION isn ADD function hashupc(upc);
ALTER EXTENSION isn ADD operator class upc_ops using hash;
ALTER EXTENSION isn ADD function btupccmp(upc,ean13);
ALTER EXTENSION isn ADD function isbn13(ean13);
ALTER EXTENSION isn ADD function ismn13(ean13);
ALTER EXTENSION isn ADD function issn13(ean13);
ALTER EXTENSION isn ADD function isbn(ean13);
ALTER EXTENSION isn ADD function ismn(ean13);
ALTER EXTENSION isn ADD function issn(ean13);
ALTER EXTENSION isn ADD function upc(ean13);
ALTER EXTENSION isn ADD cast (ean13 as isbn13);
ALTER EXTENSION isn ADD cast (ean13 as isbn);
ALTER EXTENSION isn ADD cast (ean13 as ismn13);
ALTER EXTENSION isn ADD cast (ean13 as ismn);
ALTER EXTENSION isn ADD cast (ean13 as issn13);
ALTER EXTENSION isn ADD cast (ean13 as issn);
ALTER EXTENSION isn ADD cast (ean13 as upc);
ALTER EXTENSION isn ADD cast (isbn13 as ean13);
ALTER EXTENSION isn ADD cast (isbn as ean13);
ALTER EXTENSION isn ADD cast (ismn13 as ean13);
ALTER EXTENSION isn ADD cast (ismn as ean13);
ALTER EXTENSION isn ADD cast (issn13 as ean13);
ALTER EXTENSION isn ADD cast (issn as ean13);
ALTER EXTENSION isn ADD cast (upc as ean13);
ALTER EXTENSION isn ADD cast (isbn as isbn13);
ALTER EXTENSION isn ADD cast (isbn13 as isbn);
ALTER EXTENSION isn ADD cast (ismn as ismn13);
ALTER EXTENSION isn ADD cast (ismn13 as ismn);
ALTER EXTENSION isn ADD cast (issn as issn13);
ALTER EXTENSION isn ADD cast (issn13 as issn);
ALTER EXTENSION isn ADD function make_valid(ean13);
ALTER EXTENSION isn ADD function make_valid(isbn13);
ALTER EXTENSION isn ADD function make_valid(ismn13);
ALTER EXTENSION isn ADD function make_valid(issn13);
ALTER EXTENSION isn ADD function make_valid(isbn);
ALTER EXTENSION isn ADD function make_valid(ismn);
ALTER EXTENSION isn ADD function make_valid(issn);
ALTER EXTENSION isn ADD function make_valid(upc);
ALTER EXTENSION isn ADD function is_valid(ean13);
ALTER EXTENSION isn ADD function is_valid(isbn13);
ALTER EXTENSION isn ADD function is_valid(ismn13);
ALTER EXTENSION isn ADD function is_valid(issn13);
ALTER EXTENSION isn ADD function is_valid(isbn);
ALTER EXTENSION isn ADD function is_valid(ismn);
ALTER EXTENSION isn ADD function is_valid(issn);
ALTER EXTENSION isn ADD function is_valid(upc);
ALTER EXTENSION isn ADD function isn_weak(boolean);
ALTER EXTENSION isn ADD function isn_weak();

View File

@ -3,7 +3,7 @@
MODULES = lo
EXTENSION = lo
DATA = lo--1.1.sql lo--1.0--1.1.sql lo--unpackaged--1.0.sql
DATA = lo--1.1.sql lo--1.0--1.1.sql
PGFILEDESC = "lo - management for large objects"
REGRESS = lo

View File

@ -1,8 +0,0 @@
/* contrib/lo/lo--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION lo FROM unpackaged" to load this file. \quit
ALTER EXTENSION lo ADD domain lo;
ALTER EXTENSION lo ADD function lo_oid(lo);
ALTER EXTENSION lo ADD function lo_manage();

View File

@ -15,7 +15,7 @@ OBJS = \
PG_CPPFLAGS = -DLOWER_NODE
EXTENSION = ltree
DATA = ltree--1.1.sql ltree--1.0--1.1.sql ltree--unpackaged--1.0.sql
DATA = ltree--1.1.sql ltree--1.0--1.1.sql
PGFILEDESC = "ltree - hierarchical label data type"
HEADERS = ltree.h

View File

@ -1,134 +0,0 @@
/* contrib/ltree/ltree--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION ltree FROM unpackaged" to load this file. \quit
ALTER EXTENSION ltree ADD type ltree;
ALTER EXTENSION ltree ADD function ltree_in(cstring);
ALTER EXTENSION ltree ADD function ltree_out(ltree);
ALTER EXTENSION ltree ADD function ltree_cmp(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_lt(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_le(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_eq(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_ge(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_gt(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_ne(ltree,ltree);
ALTER EXTENSION ltree ADD operator >(ltree,ltree);
ALTER EXTENSION ltree ADD operator >=(ltree,ltree);
ALTER EXTENSION ltree ADD operator <(ltree,ltree);
ALTER EXTENSION ltree ADD operator <=(ltree,ltree);
ALTER EXTENSION ltree ADD operator <>(ltree,ltree);
ALTER EXTENSION ltree ADD operator =(ltree,ltree);
ALTER EXTENSION ltree ADD function subltree(ltree,integer,integer);
ALTER EXTENSION ltree ADD function subpath(ltree,integer,integer);
ALTER EXTENSION ltree ADD function subpath(ltree,integer);
ALTER EXTENSION ltree ADD function index(ltree,ltree);
ALTER EXTENSION ltree ADD function index(ltree,ltree,integer);
ALTER EXTENSION ltree ADD function nlevel(ltree);
ALTER EXTENSION ltree ADD function ltree2text(ltree);
ALTER EXTENSION ltree ADD function text2ltree(text);
ALTER EXTENSION ltree ADD function lca(ltree[]);
ALTER EXTENSION ltree ADD function lca(ltree,ltree);
ALTER EXTENSION ltree ADD function lca(ltree,ltree,ltree);
ALTER EXTENSION ltree ADD function lca(ltree,ltree,ltree,ltree);
ALTER EXTENSION ltree ADD function lca(ltree,ltree,ltree,ltree,ltree);
ALTER EXTENSION ltree ADD function lca(ltree,ltree,ltree,ltree,ltree,ltree);
ALTER EXTENSION ltree ADD function lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree);
ALTER EXTENSION ltree ADD function lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_isparent(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_risparent(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_addltree(ltree,ltree);
ALTER EXTENSION ltree ADD function ltree_addtext(ltree,text);
ALTER EXTENSION ltree ADD function ltree_textadd(text,ltree);
ALTER EXTENSION ltree ADD function ltreeparentsel(internal,oid,internal,integer);
ALTER EXTENSION ltree ADD operator <@(ltree,ltree);
ALTER EXTENSION ltree ADD operator @>(ltree,ltree);
ALTER EXTENSION ltree ADD operator ^<@(ltree,ltree);
ALTER EXTENSION ltree ADD operator ^@>(ltree,ltree);
ALTER EXTENSION ltree ADD operator ||(ltree,ltree);
ALTER EXTENSION ltree ADD operator ||(ltree,text);
ALTER EXTENSION ltree ADD operator ||(text,ltree);
ALTER EXTENSION ltree ADD operator family ltree_ops using btree;
ALTER EXTENSION ltree ADD operator class ltree_ops using btree;
ALTER EXTENSION ltree ADD type lquery;
ALTER EXTENSION ltree ADD function lquery_in(cstring);
ALTER EXTENSION ltree ADD function lquery_out(lquery);
ALTER EXTENSION ltree ADD function ltq_regex(ltree,lquery);
ALTER EXTENSION ltree ADD function ltq_rregex(lquery,ltree);
ALTER EXTENSION ltree ADD operator ~(lquery,ltree);
ALTER EXTENSION ltree ADD operator ~(ltree,lquery);
ALTER EXTENSION ltree ADD operator ^~(lquery,ltree);
ALTER EXTENSION ltree ADD operator ^~(ltree,lquery);
ALTER EXTENSION ltree ADD function lt_q_regex(ltree,lquery[]);
ALTER EXTENSION ltree ADD function lt_q_rregex(lquery[],ltree);
ALTER EXTENSION ltree ADD operator ?(lquery[],ltree);
ALTER EXTENSION ltree ADD operator ?(ltree,lquery[]);
ALTER EXTENSION ltree ADD operator ^?(lquery[],ltree);
ALTER EXTENSION ltree ADD operator ^?(ltree,lquery[]);
ALTER EXTENSION ltree ADD type ltxtquery;
ALTER EXTENSION ltree ADD function ltxtq_in(cstring);
ALTER EXTENSION ltree ADD function ltxtq_out(ltxtquery);
ALTER EXTENSION ltree ADD function ltxtq_exec(ltree,ltxtquery);
ALTER EXTENSION ltree ADD function ltxtq_rexec(ltxtquery,ltree);
ALTER EXTENSION ltree ADD operator @(ltxtquery,ltree);
ALTER EXTENSION ltree ADD operator @(ltree,ltxtquery);
ALTER EXTENSION ltree ADD operator ^@(ltxtquery,ltree);
ALTER EXTENSION ltree ADD operator ^@(ltree,ltxtquery);
ALTER EXTENSION ltree ADD type ltree_gist;
ALTER EXTENSION ltree ADD function ltree_gist_in(cstring);
ALTER EXTENSION ltree ADD function ltree_gist_out(ltree_gist);
ALTER EXTENSION ltree ADD function ltree_consistent(internal,internal,smallint,oid,internal);
ALTER EXTENSION ltree ADD function ltree_compress(internal);
ALTER EXTENSION ltree ADD function ltree_decompress(internal);
ALTER EXTENSION ltree ADD function ltree_penalty(internal,internal,internal);
ALTER EXTENSION ltree ADD function ltree_picksplit(internal,internal);
ALTER EXTENSION ltree ADD function ltree_union(internal,internal);
ALTER EXTENSION ltree ADD function ltree_same(internal,internal,internal);
ALTER EXTENSION ltree ADD operator family gist_ltree_ops using gist;
ALTER EXTENSION ltree ADD operator class gist_ltree_ops using gist;
ALTER EXTENSION ltree ADD function _ltree_isparent(ltree[],ltree);
ALTER EXTENSION ltree ADD function _ltree_r_isparent(ltree,ltree[]);
ALTER EXTENSION ltree ADD function _ltree_risparent(ltree[],ltree);
ALTER EXTENSION ltree ADD function _ltree_r_risparent(ltree,ltree[]);
ALTER EXTENSION ltree ADD function _ltq_regex(ltree[],lquery);
ALTER EXTENSION ltree ADD function _ltq_rregex(lquery,ltree[]);
ALTER EXTENSION ltree ADD function _lt_q_regex(ltree[],lquery[]);
ALTER EXTENSION ltree ADD function _lt_q_rregex(lquery[],ltree[]);
ALTER EXTENSION ltree ADD function _ltxtq_exec(ltree[],ltxtquery);
ALTER EXTENSION ltree ADD function _ltxtq_rexec(ltxtquery,ltree[]);
ALTER EXTENSION ltree ADD operator <@(ltree,ltree[]);
ALTER EXTENSION ltree ADD operator @>(ltree[],ltree);
ALTER EXTENSION ltree ADD operator @>(ltree,ltree[]);
ALTER EXTENSION ltree ADD operator <@(ltree[],ltree);
ALTER EXTENSION ltree ADD operator ~(lquery,ltree[]);
ALTER EXTENSION ltree ADD operator ~(ltree[],lquery);
ALTER EXTENSION ltree ADD operator ?(lquery[],ltree[]);
ALTER EXTENSION ltree ADD operator ?(ltree[],lquery[]);
ALTER EXTENSION ltree ADD operator @(ltxtquery,ltree[]);
ALTER EXTENSION ltree ADD operator @(ltree[],ltxtquery);
ALTER EXTENSION ltree ADD operator ^<@(ltree,ltree[]);
ALTER EXTENSION ltree ADD operator ^@>(ltree[],ltree);
ALTER EXTENSION ltree ADD operator ^@>(ltree,ltree[]);
ALTER EXTENSION ltree ADD operator ^<@(ltree[],ltree);
ALTER EXTENSION ltree ADD operator ^~(lquery,ltree[]);
ALTER EXTENSION ltree ADD operator ^~(ltree[],lquery);
ALTER EXTENSION ltree ADD operator ^?(lquery[],ltree[]);
ALTER EXTENSION ltree ADD operator ^?(ltree[],lquery[]);
ALTER EXTENSION ltree ADD operator ^@(ltxtquery,ltree[]);
ALTER EXTENSION ltree ADD operator ^@(ltree[],ltxtquery);
ALTER EXTENSION ltree ADD function _ltree_extract_isparent(ltree[],ltree);
ALTER EXTENSION ltree ADD operator ?@>(ltree[],ltree);
ALTER EXTENSION ltree ADD function _ltree_extract_risparent(ltree[],ltree);
ALTER EXTENSION ltree ADD operator ?<@(ltree[],ltree);
ALTER EXTENSION ltree ADD function _ltq_extract_regex(ltree[],lquery);
ALTER EXTENSION ltree ADD operator ?~(ltree[],lquery);
ALTER EXTENSION ltree ADD function _ltxtq_extract_exec(ltree[],ltxtquery);
ALTER EXTENSION ltree ADD operator ?@(ltree[],ltxtquery);
ALTER EXTENSION ltree ADD function _ltree_consistent(internal,internal,smallint,oid,internal);
ALTER EXTENSION ltree ADD function _ltree_compress(internal);
ALTER EXTENSION ltree ADD function _ltree_penalty(internal,internal,internal);
ALTER EXTENSION ltree ADD function _ltree_picksplit(internal,internal);
ALTER EXTENSION ltree ADD function _ltree_union(internal,internal);
ALTER EXTENSION ltree ADD function _ltree_same(internal,internal,internal);
ALTER EXTENSION ltree ADD operator family gist__ltree_ops using gist;
ALTER EXTENSION ltree ADD operator class gist__ltree_ops using gist;

View File

@ -16,7 +16,7 @@ DATA = pageinspect--1.7--1.8.sql pageinspect--1.6--1.7.sql \
pageinspect--1.5.sql pageinspect--1.5--1.6.sql \
pageinspect--1.4--1.5.sql pageinspect--1.3--1.4.sql \
pageinspect--1.2--1.3.sql pageinspect--1.1--1.2.sql \
pageinspect--1.0--1.1.sql pageinspect--unpackaged--1.0.sql
pageinspect--1.0--1.1.sql
PGFILEDESC = "pageinspect - functions to inspect contents of database pages"
REGRESS = page btree brin gin hash

View File

@ -1,31 +0,0 @@
/* contrib/pageinspect/pageinspect--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pageinspect FROM unpackaged" to load this file. \quit
DROP FUNCTION heap_page_items(bytea);
CREATE FUNCTION heap_page_items(IN page bytea,
OUT lp smallint,
OUT lp_off smallint,
OUT lp_flags smallint,
OUT lp_len smallint,
OUT t_xmin xid,
OUT t_xmax xid,
OUT t_field3 int4,
OUT t_ctid tid,
OUT t_infomask2 integer,
OUT t_infomask integer,
OUT t_hoff smallint,
OUT t_bits text,
OUT t_oid oid)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'heap_page_items'
LANGUAGE C STRICT;
ALTER EXTENSION pageinspect ADD function get_raw_page(text,integer);
ALTER EXTENSION pageinspect ADD function get_raw_page(text,text,integer);
ALTER EXTENSION pageinspect ADD function page_header(bytea);
ALTER EXTENSION pageinspect ADD function bt_metap(text);
ALTER EXTENSION pageinspect ADD function bt_page_stats(text,integer);
ALTER EXTENSION pageinspect ADD function bt_page_items(text,integer);
ALTER EXTENSION pageinspect ADD function fsm_page_contents(bytea);

View File

@ -7,8 +7,7 @@ OBJS = \
EXTENSION = pg_buffercache
DATA = pg_buffercache--1.2.sql pg_buffercache--1.2--1.3.sql \
pg_buffercache--1.1--1.2.sql pg_buffercache--1.0--1.1.sql \
pg_buffercache--unpackaged--1.0.sql
pg_buffercache--1.1--1.2.sql pg_buffercache--1.0--1.1.sql
PGFILEDESC = "pg_buffercache - monitoring of shared buffer cache in real-time"
ifdef USE_PGXS

View File

@ -1,7 +0,0 @@
/* contrib/pg_buffercache/pg_buffercache--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pg_buffercache FROM unpackaged" to load this file. \quit
ALTER EXTENSION pg_buffercache ADD function pg_buffercache_pages();
ALTER EXTENSION pg_buffercache ADD view pg_buffercache;

View File

@ -7,7 +7,7 @@ OBJS = \
EXTENSION = pg_freespacemap
DATA = pg_freespacemap--1.1.sql pg_freespacemap--1.1--1.2.sql \
pg_freespacemap--1.0--1.1.sql pg_freespacemap--unpackaged--1.0.sql
pg_freespacemap--1.0--1.1.sql
PGFILEDESC = "pg_freespacemap - monitoring of free space map"
ifdef USE_PGXS

View File

@ -1,7 +0,0 @@
/* contrib/pg_freespacemap/pg_freespacemap--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pg_freespacemap FROM unpackaged" to load this file. \quit
ALTER EXTENSION pg_freespacemap ADD function pg_freespace(regclass,bigint);
ALTER EXTENSION pg_freespacemap ADD function pg_freespace(regclass);

View File

@ -9,8 +9,7 @@ EXTENSION = pg_stat_statements
DATA = pg_stat_statements--1.4.sql pg_stat_statements--1.6--1.7.sql \
pg_stat_statements--1.5--1.6.sql pg_stat_statements--1.4--1.5.sql \
pg_stat_statements--1.3--1.4.sql pg_stat_statements--1.2--1.3.sql \
pg_stat_statements--1.1--1.2.sql pg_stat_statements--1.0--1.1.sql \
pg_stat_statements--unpackaged--1.0.sql
pg_stat_statements--1.1--1.2.sql pg_stat_statements--1.0--1.1.sql
PGFILEDESC = "pg_stat_statements - execution statistics of SQL statements"
LDFLAGS_SL += $(filter -lm, $(LIBS))

View File

@ -1,8 +0,0 @@
/* contrib/pg_stat_statements/pg_stat_statements--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pg_stat_statements FROM unpackaged" to load this file. \quit
ALTER EXTENSION pg_stat_statements ADD function pg_stat_statements_reset();
ALTER EXTENSION pg_stat_statements ADD function pg_stat_statements();
ALTER EXTENSION pg_stat_statements ADD view pg_stat_statements;

View File

@ -11,7 +11,7 @@ OBJS = \
EXTENSION = pg_trgm
DATA = pg_trgm--1.3--1.4.sql \
pg_trgm--1.3.sql pg_trgm--1.2--1.3.sql pg_trgm--1.1--1.2.sql \
pg_trgm--1.0--1.1.sql pg_trgm--unpackaged--1.0.sql
pg_trgm--1.0--1.1.sql
PGFILEDESC = "pg_trgm - trigram matching"
REGRESS = pg_trgm pg_word_trgm pg_strict_word_trgm

View File

@ -182,8 +182,8 @@ AS
-- Add operators and support functions that are new in 9.1. We do it like
-- this, leaving them "loose" in the operator family rather than bound into
-- the gist_trgm_ops opclass, because that's the only state that can be
-- reproduced during an upgrade from 9.0 (see pg_trgm--unpackaged--1.0.sql).
-- the gist_trgm_ops opclass, because that's the only state that could be
-- reproduced during an upgrade from 9.0.
ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
OPERATOR 2 <-> (text, text) FOR ORDER BY pg_catalog.float_ops,

View File

@ -1,98 +0,0 @@
/* contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pg_trgm FROM unpackaged" to load this file. \quit
ALTER EXTENSION pg_trgm ADD function set_limit(real);
ALTER EXTENSION pg_trgm ADD function show_limit();
ALTER EXTENSION pg_trgm ADD function show_trgm(text);
ALTER EXTENSION pg_trgm ADD function similarity(text,text);
ALTER EXTENSION pg_trgm ADD function similarity_op(text,text);
ALTER EXTENSION pg_trgm ADD operator %(text,text);
ALTER EXTENSION pg_trgm ADD type gtrgm;
ALTER EXTENSION pg_trgm ADD function gtrgm_in(cstring);
ALTER EXTENSION pg_trgm ADD function gtrgm_out(gtrgm);
ALTER EXTENSION pg_trgm ADD function gtrgm_consistent(internal,text,integer,oid,internal);
ALTER EXTENSION pg_trgm ADD function gtrgm_compress(internal);
ALTER EXTENSION pg_trgm ADD function gtrgm_decompress(internal);
ALTER EXTENSION pg_trgm ADD function gtrgm_penalty(internal,internal,internal);
ALTER EXTENSION pg_trgm ADD function gtrgm_picksplit(internal,internal);
ALTER EXTENSION pg_trgm ADD function gtrgm_union(bytea,internal);
ALTER EXTENSION pg_trgm ADD function gtrgm_same(gtrgm,gtrgm,internal);
ALTER EXTENSION pg_trgm ADD operator family gist_trgm_ops using gist;
ALTER EXTENSION pg_trgm ADD operator class gist_trgm_ops using gist;
ALTER EXTENSION pg_trgm ADD operator family gin_trgm_ops using gin;
ALTER EXTENSION pg_trgm ADD operator class gin_trgm_ops using gin;
-- These functions had different names/signatures in 9.0. We can't just
-- drop and recreate them because they are linked into the GIN opclass,
-- so we need some ugly hacks.
-- First, absorb them into the extension under their old names.
ALTER EXTENSION pg_trgm ADD function gin_extract_trgm(text, internal);
ALTER EXTENSION pg_trgm ADD function gin_extract_trgm(text, internal, int2, internal, internal);
ALTER EXTENSION pg_trgm ADD function gin_trgm_consistent(internal,smallint,text,integer,internal,internal);
-- Fix the names, and then do CREATE OR REPLACE to adjust the function
-- bodies to be correct (ie, reference the correct C symbol).
ALTER FUNCTION gin_extract_trgm(text, internal)
RENAME TO gin_extract_value_trgm;
CREATE OR REPLACE FUNCTION gin_extract_value_trgm(text, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
ALTER FUNCTION gin_extract_trgm(text, internal, int2, internal, internal)
RENAME TO gin_extract_query_trgm;
CREATE OR REPLACE FUNCTION gin_extract_query_trgm(text, internal, int2, internal, internal)
RETURNS internal
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
-- gin_trgm_consistent didn't change name.
-- Last, fix the parameter lists by means of direct UPDATE on the pg_proc
-- entries. This is ugly as can be, but there's no other way to do it
-- while preserving the identities (OIDs) of the functions.
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;
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;
-- These were not in 9.0:
CREATE FUNCTION similarity_dist(text,text)
RETURNS float4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE;
CREATE OPERATOR <-> (
LEFTARG = text,
RIGHTARG = text,
PROCEDURE = similarity_dist,
COMMUTATOR = '<->'
);
CREATE FUNCTION gtrgm_distance(internal,text,int,oid)
RETURNS float8
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT;
-- Add new stuff to the operator classes. See comment in pg_trgm--1.0.sql.
ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
OPERATOR 2 <-> (text, text) FOR ORDER BY pg_catalog.float_ops,
OPERATOR 3 pg_catalog.~~ (text, text),
OPERATOR 4 pg_catalog.~~* (text, text),
FUNCTION 8 (text, text) gtrgm_distance (internal, text, int, oid);
ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
OPERATOR 3 pg_catalog.~~ (text, text),
OPERATOR 4 pg_catalog.~~* (text, text);

View File

@ -46,7 +46,7 @@ OBJS = \
EXTENSION = pgcrypto
DATA = pgcrypto--1.3.sql pgcrypto--1.2--1.3.sql pgcrypto--1.1--1.2.sql \
pgcrypto--1.0--1.1.sql pgcrypto--unpackaged--1.0.sql
pgcrypto--1.0--1.1.sql
PGFILEDESC = "pgcrypto - cryptographic functions"
REGRESS = init md5 sha1 hmac-md5 hmac-sha1 blowfish rijndael \

View File

@ -1,38 +0,0 @@
/* contrib/pgcrypto/pgcrypto--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pgcrypto FROM unpackaged" to load this file. \quit
ALTER EXTENSION pgcrypto ADD function digest(text,text);
ALTER EXTENSION pgcrypto ADD function digest(bytea,text);
ALTER EXTENSION pgcrypto ADD function hmac(text,text,text);
ALTER EXTENSION pgcrypto ADD function hmac(bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function crypt(text,text);
ALTER EXTENSION pgcrypto ADD function gen_salt(text);
ALTER EXTENSION pgcrypto ADD function gen_salt(text,integer);
ALTER EXTENSION pgcrypto ADD function encrypt(bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function decrypt(bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function encrypt_iv(bytea,bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function decrypt_iv(bytea,bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function gen_random_bytes(integer);
ALTER EXTENSION pgcrypto ADD function pgp_sym_encrypt(text,text);
ALTER EXTENSION pgcrypto ADD function pgp_sym_encrypt_bytea(bytea,text);
ALTER EXTENSION pgcrypto ADD function pgp_sym_encrypt(text,text,text);
ALTER EXTENSION pgcrypto ADD function pgp_sym_encrypt_bytea(bytea,text,text);
ALTER EXTENSION pgcrypto ADD function pgp_sym_decrypt(bytea,text);
ALTER EXTENSION pgcrypto ADD function pgp_sym_decrypt_bytea(bytea,text);
ALTER EXTENSION pgcrypto ADD function pgp_sym_decrypt(bytea,text,text);
ALTER EXTENSION pgcrypto ADD function pgp_sym_decrypt_bytea(bytea,text,text);
ALTER EXTENSION pgcrypto ADD function pgp_pub_encrypt(text,bytea);
ALTER EXTENSION pgcrypto ADD function pgp_pub_encrypt_bytea(bytea,bytea);
ALTER EXTENSION pgcrypto ADD function pgp_pub_encrypt(text,bytea,text);
ALTER EXTENSION pgcrypto ADD function pgp_pub_encrypt_bytea(bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function pgp_pub_decrypt(bytea,bytea);
ALTER EXTENSION pgcrypto ADD function pgp_pub_decrypt_bytea(bytea,bytea);
ALTER EXTENSION pgcrypto ADD function pgp_pub_decrypt(bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function pgp_pub_decrypt_bytea(bytea,bytea,text);
ALTER EXTENSION pgcrypto ADD function pgp_pub_decrypt(bytea,bytea,text,text);
ALTER EXTENSION pgcrypto ADD function pgp_pub_decrypt_bytea(bytea,bytea,text,text);
ALTER EXTENSION pgcrypto ADD function pgp_key_id(bytea);
ALTER EXTENSION pgcrypto ADD function armor(bytea);
ALTER EXTENSION pgcrypto ADD function dearmor(text);

View File

@ -6,8 +6,7 @@ OBJS = \
pgrowlocks.o
EXTENSION = pgrowlocks
DATA = pgrowlocks--1.2.sql pgrowlocks--1.1--1.2.sql pgrowlocks--1.0--1.1.sql \
pgrowlocks--unpackaged--1.0.sql
DATA = pgrowlocks--1.2.sql pgrowlocks--1.1--1.2.sql pgrowlocks--1.0--1.1.sql
PGFILEDESC = "pgrowlocks - display row locking information"
ifdef USE_PGXS

View File

@ -1,6 +0,0 @@
/* contrib/pgrowlocks/pgrowlocks--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pgrowlocks FROM unpackaged" to load this file. \quit
ALTER EXTENSION pgrowlocks ADD function pgrowlocks(text);

View File

@ -10,8 +10,7 @@ OBJS = \
EXTENSION = pgstattuple
DATA = pgstattuple--1.4.sql pgstattuple--1.4--1.5.sql \
pgstattuple--1.3--1.4.sql pgstattuple--1.2--1.3.sql \
pgstattuple--1.1--1.2.sql pgstattuple--1.0--1.1.sql \
pgstattuple--unpackaged--1.0.sql
pgstattuple--1.1--1.2.sql pgstattuple--1.0--1.1.sql
PGFILEDESC = "pgstattuple - tuple-level statistics"
REGRESS = pgstattuple

View File

@ -1,9 +0,0 @@
/* contrib/pgstattuple/pgstattuple--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION pgstattuple FROM unpackaged" to load this file. \quit
ALTER EXTENSION pgstattuple ADD function pgstattuple(text);
ALTER EXTENSION pgstattuple ADD function pgstattuple(oid);
ALTER EXTENSION pgstattuple ADD function pgstatindex(text);
ALTER EXTENSION pgstattuple ADD function pg_relpages(text);

View File

@ -8,7 +8,7 @@ OBJS = \
EXTENSION = seg
DATA = seg--1.1.sql seg--1.1--1.2.sql seg--1.2--1.3.sql \
seg--1.0--1.1.sql seg--unpackaged--1.0.sql
seg--1.0--1.1.sql
PGFILEDESC = "seg - line segment data type"
HEADERS = segdata.h

View File

@ -1,54 +0,0 @@
/* contrib/seg/seg--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION seg FROM unpackaged" to load this file. \quit
ALTER EXTENSION seg ADD type seg;
ALTER EXTENSION seg ADD function seg_in(cstring);
ALTER EXTENSION seg ADD function seg_out(seg);
ALTER EXTENSION seg ADD function seg_over_left(seg,seg);
ALTER EXTENSION seg ADD function seg_over_right(seg,seg);
ALTER EXTENSION seg ADD function seg_left(seg,seg);
ALTER EXTENSION seg ADD function seg_right(seg,seg);
ALTER EXTENSION seg ADD function seg_lt(seg,seg);
ALTER EXTENSION seg ADD function seg_le(seg,seg);
ALTER EXTENSION seg ADD function seg_gt(seg,seg);
ALTER EXTENSION seg ADD function seg_ge(seg,seg);
ALTER EXTENSION seg ADD function seg_contains(seg,seg);
ALTER EXTENSION seg ADD function seg_contained(seg,seg);
ALTER EXTENSION seg ADD function seg_overlap(seg,seg);
ALTER EXTENSION seg ADD function seg_same(seg,seg);
ALTER EXTENSION seg ADD function seg_different(seg,seg);
ALTER EXTENSION seg ADD function seg_cmp(seg,seg);
ALTER EXTENSION seg ADD function seg_union(seg,seg);
ALTER EXTENSION seg ADD function seg_inter(seg,seg);
ALTER EXTENSION seg ADD function seg_size(seg);
ALTER EXTENSION seg ADD function seg_center(seg);
ALTER EXTENSION seg ADD function seg_upper(seg);
ALTER EXTENSION seg ADD function seg_lower(seg);
ALTER EXTENSION seg ADD operator >(seg,seg);
ALTER EXTENSION seg ADD operator >=(seg,seg);
ALTER EXTENSION seg ADD operator <(seg,seg);
ALTER EXTENSION seg ADD operator <=(seg,seg);
ALTER EXTENSION seg ADD operator >>(seg,seg);
ALTER EXTENSION seg ADD operator <<(seg,seg);
ALTER EXTENSION seg ADD operator &<(seg,seg);
ALTER EXTENSION seg ADD operator &&(seg,seg);
ALTER EXTENSION seg ADD operator &>(seg,seg);
ALTER EXTENSION seg ADD operator <>(seg,seg);
ALTER EXTENSION seg ADD operator =(seg,seg);
ALTER EXTENSION seg ADD operator <@(seg,seg);
ALTER EXTENSION seg ADD operator @>(seg,seg);
ALTER EXTENSION seg ADD operator ~(seg,seg);
ALTER EXTENSION seg ADD operator @(seg,seg);
ALTER EXTENSION seg ADD function gseg_consistent(internal,seg,integer,oid,internal);
ALTER EXTENSION seg ADD function gseg_compress(internal);
ALTER EXTENSION seg ADD function gseg_decompress(internal);
ALTER EXTENSION seg ADD function gseg_penalty(internal,internal,internal);
ALTER EXTENSION seg ADD function gseg_picksplit(internal,internal);
ALTER EXTENSION seg ADD function gseg_union(internal,internal);
ALTER EXTENSION seg ADD function gseg_same(seg,seg,internal);
ALTER EXTENSION seg ADD operator family seg_ops using btree;
ALTER EXTENSION seg ADD operator class seg_ops using btree;
ALTER EXTENSION seg ADD operator family gist_seg_ops using gist;
ALTER EXTENSION seg ADD operator class gist_seg_ops using gist;

View File

@ -4,10 +4,10 @@ MODULES = autoinc insert_username moddatetime refint
EXTENSION = autoinc insert_username moddatetime refint
DATA = autoinc--1.0.sql autoinc--unpackaged--1.0.sql \
insert_username--1.0.sql insert_username--unpackaged--1.0.sql \
moddatetime--1.0.sql moddatetime--unpackaged--1.0.sql \
refint--1.0.sql refint--unpackaged--1.0.sql
DATA = autoinc--1.0.sql \
insert_username--1.0.sql \
moddatetime--1.0.sql \
refint--1.0.sql
PGFILEDESC = "spi - examples of using SPI and triggers"
DOCS = $(addsuffix .example, $(MODULES))

View File

@ -1,6 +0,0 @@
/* contrib/spi/autoinc--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION autoinc FROM unpackaged" to load this file. \quit
ALTER EXTENSION autoinc ADD function autoinc();

View File

@ -1,6 +0,0 @@
/* contrib/spi/insert_username--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION insert_username FROM unpackaged" to load this file. \quit
ALTER EXTENSION insert_username ADD function insert_username();

View File

@ -1,6 +0,0 @@
/* contrib/spi/moddatetime--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION moddatetime FROM unpackaged" to load this file. \quit
ALTER EXTENSION moddatetime ADD function moddatetime();

View File

@ -1,7 +0,0 @@
/* contrib/spi/refint--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION refint FROM unpackaged" to load this file. \quit
ALTER EXTENSION refint ADD function check_primary_key();
ALTER EXTENSION refint ADD function check_foreign_key();

View File

@ -6,8 +6,7 @@ OBJS = \
sslinfo.o
EXTENSION = sslinfo
DATA = sslinfo--1.2.sql sslinfo--1.1--1.2.sql sslinfo--1.0--1.1.sql \
sslinfo--unpackaged--1.0.sql
DATA = sslinfo--1.2.sql sslinfo--1.1--1.2.sql sslinfo--1.0--1.1.sql
PGFILEDESC = "sslinfo - information about client SSL certificate"
ifdef USE_PGXS

View File

@ -1,22 +0,0 @@
/* contrib/sslinfo/sslinfo--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION sslinfo FROM unpackaged" to load this file. \quit
ALTER EXTENSION sslinfo ADD function ssl_client_serial();
ALTER EXTENSION sslinfo ADD function ssl_is_used();
ALTER EXTENSION sslinfo ADD function ssl_client_cert_present();
ALTER EXTENSION sslinfo ADD function ssl_client_dn_field(text);
ALTER EXTENSION sslinfo ADD function ssl_issuer_field(text);
ALTER EXTENSION sslinfo ADD function ssl_client_dn();
ALTER EXTENSION sslinfo ADD function ssl_issuer_dn();
-- These functions were not in 9.0:
CREATE FUNCTION ssl_version() RETURNS text
AS 'MODULE_PATHNAME', 'ssl_version'
LANGUAGE C STRICT;
CREATE FUNCTION ssl_cipher() RETURNS text
AS 'MODULE_PATHNAME', 'ssl_cipher'
LANGUAGE C STRICT;

View File

@ -3,7 +3,7 @@
MODULES = tablefunc
EXTENSION = tablefunc
DATA = tablefunc--1.0.sql tablefunc--unpackaged--1.0.sql
DATA = tablefunc--1.0.sql
PGFILEDESC = "tablefunc - various functions that return tables"
REGRESS = tablefunc

View File

@ -1,19 +0,0 @@
/* contrib/tablefunc/tablefunc--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION tablefunc FROM unpackaged" to load this file. \quit
ALTER EXTENSION tablefunc ADD function normal_rand(integer,double precision,double precision);
ALTER EXTENSION tablefunc ADD function crosstab(text);
ALTER EXTENSION tablefunc ADD type tablefunc_crosstab_2;
ALTER EXTENSION tablefunc ADD type tablefunc_crosstab_3;
ALTER EXTENSION tablefunc ADD type tablefunc_crosstab_4;
ALTER EXTENSION tablefunc ADD function crosstab2(text);
ALTER EXTENSION tablefunc ADD function crosstab3(text);
ALTER EXTENSION tablefunc ADD function crosstab4(text);
ALTER EXTENSION tablefunc ADD function crosstab(text,integer);
ALTER EXTENSION tablefunc ADD function crosstab(text,text);
ALTER EXTENSION tablefunc ADD function connectby(text,text,text,text,integer,text);
ALTER EXTENSION tablefunc ADD function connectby(text,text,text,text,integer);
ALTER EXTENSION tablefunc ADD function connectby(text,text,text,text,text,integer,text);
ALTER EXTENSION tablefunc ADD function connectby(text,text,text,text,text,integer);

View File

@ -6,7 +6,7 @@ OBJS = \
unaccent.o
EXTENSION = unaccent
DATA = unaccent--1.1.sql unaccent--1.0--1.1.sql unaccent--unpackaged--1.0.sql
DATA = unaccent--1.1.sql unaccent--1.0--1.1.sql
DATA_TSEARCH = unaccent.rules
PGFILEDESC = "unaccent - text search dictionary that removes accents"

View File

@ -1,16 +0,0 @@
/* contrib/unaccent/unaccent--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION unaccent FROM unpackaged" to load this file. \quit
ALTER EXTENSION unaccent ADD function unaccent(regdictionary,text);
ALTER EXTENSION unaccent ADD function unaccent(text);
ALTER EXTENSION unaccent ADD function unaccent_init(internal);
ALTER EXTENSION unaccent ADD function unaccent_lexize(internal,internal,internal,internal);
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;

View File

@ -7,7 +7,7 @@ OBJS = \
uuid-ossp.o
EXTENSION = uuid-ossp
DATA = uuid-ossp--1.1.sql uuid-ossp--1.0--1.1.sql uuid-ossp--unpackaged--1.0.sql
DATA = uuid-ossp--1.1.sql uuid-ossp--1.0--1.1.sql
PGFILEDESC = "uuid-ossp - UUID generation"
REGRESS = uuid_ossp

View File

@ -1,15 +0,0 @@
/* contrib/uuid-ossp/uuid-ossp--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use '''CREATE EXTENSION "uuid-ossp" FROM unpackaged''' to load this file. \quit
ALTER EXTENSION "uuid-ossp" ADD function uuid_nil();
ALTER EXTENSION "uuid-ossp" ADD function uuid_ns_dns();
ALTER EXTENSION "uuid-ossp" ADD function uuid_ns_url();
ALTER EXTENSION "uuid-ossp" ADD function uuid_ns_oid();
ALTER EXTENSION "uuid-ossp" ADD function uuid_ns_x500();
ALTER EXTENSION "uuid-ossp" ADD function uuid_generate_v1();
ALTER EXTENSION "uuid-ossp" ADD function uuid_generate_v1mc();
ALTER EXTENSION "uuid-ossp" ADD function uuid_generate_v3(namespace uuid, name text);
ALTER EXTENSION "uuid-ossp" ADD function uuid_generate_v4();
ALTER EXTENSION "uuid-ossp" ADD function uuid_generate_v5(namespace uuid, name text);

View File

@ -7,7 +7,7 @@ OBJS = \
xslt_proc.o
EXTENSION = xml2
DATA = xml2--1.1.sql xml2--1.0--1.1.sql xml2--unpackaged--1.0.sql
DATA = xml2--1.1.sql xml2--1.0--1.1.sql
PGFILEDESC = "xml2 - XPath querying and XSLT"
REGRESS = xml2

View File

@ -1,29 +0,0 @@
/* contrib/xml2/xml2--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION xml2 FROM unpackaged" to load this file. \quit
ALTER EXTENSION xml2 ADD function xslt_process(text,text);
ALTER EXTENSION xml2 ADD function xslt_process(text,text,text);
ALTER EXTENSION xml2 ADD function xpath_table(text,text,text,text,text);
ALTER EXTENSION xml2 ADD function xpath_nodeset(text,text,text);
ALTER EXTENSION xml2 ADD function xpath_nodeset(text,text);
ALTER EXTENSION xml2 ADD function xpath_list(text,text);
ALTER EXTENSION xml2 ADD function xpath_list(text,text,text);
ALTER EXTENSION xml2 ADD function xpath_bool(text,text);
ALTER EXTENSION xml2 ADD function xpath_number(text,text);
ALTER EXTENSION xml2 ADD function xpath_nodeset(text,text,text,text);
ALTER EXTENSION xml2 ADD function xpath_string(text,text);
ALTER EXTENSION xml2 ADD function xml_encode_special_chars(text);
ALTER EXTENSION xml2 ADD function xml_valid(text);
-- xml_valid is now an alias for core xml_is_well_formed()
CREATE OR REPLACE FUNCTION xml_valid(text) RETURNS bool
AS 'xml_is_well_formed'
LANGUAGE INTERNAL STRICT STABLE;
-- xml_is_well_formed is now in core, not needed in extension.
-- be careful to drop extension's copy not core's.
DROP FUNCTION @extschema@.xml_is_well_formed(text);

View File

@ -2,5 +2,5 @@
comment = 'XPath querying and XSLT'
default_version = '1.1'
module_pathname = '$libdir/pgxml'
# non-relocatable because xml2--unpackaged--1.0.sql needs to use @extschema@
# XXX do we still need this to be non-relocatable?
relocatable = false

View File

@ -87,22 +87,6 @@ CREATE EXTENSION <replaceable>module_name</replaceable>;
target schema, which in turn defaults to <literal>public</literal>.
</para>
<para>
If your database was brought forward by dump and reload from a pre-9.1
version of <productname>PostgreSQL</productname>, and you had been using the pre-9.1
version of the module in it, you should instead do
<programlisting>
CREATE EXTENSION <replaceable>module_name</replaceable> FROM unpackaged;
</programlisting>
This will update the pre-9.1 objects of the module into a proper
<firstterm>extension</firstterm> object. Future updates to the module will be
managed by <xref linkend="sql-alterextension"/>.
For more information about extension updates, see
<xref linkend="extend-extensions"/>.
</para>
<para>
Note, however, that some of these modules are not <quote>extensions</quote>
in this sense, but are loaded into the server in some other way, for instance

View File

@ -916,33 +916,6 @@ SELECT pg_catalog.pg_extension_config_dump('my_config', 'WHERE NOT standard_entr
target (new) version.
</para>
<para>
The update mechanism can be used to solve an important special case:
converting a <quote>loose</quote> collection of objects into an extension.
Before the extension mechanism was added to
<productname>PostgreSQL</productname> (in 9.1), many people wrote
extension modules that simply created assorted unpackaged objects.
Given an existing database containing such objects, how can we convert
the objects into a properly packaged extension? Dropping them and then
doing a plain <command>CREATE EXTENSION</command> is one way, but it's not
desirable if the objects have dependencies (for example, if there are
table columns of a data type created by the extension). The way to fix
this situation is to create an empty extension, then use <command>ALTER
EXTENSION ADD</command> to attach each pre-existing object to the extension,
then finally create any new objects that are in the current extension
version but were not in the unpackaged release. <command>CREATE
EXTENSION</command> supports this case with its <literal>FROM</literal> <replaceable
class="parameter">old_version</replaceable> option, which causes it to not run the
normal installation script for the target version, but instead the update
script named
<literal><replaceable>extension</replaceable>--<replaceable>old_version</replaceable>--<replaceable>target_version</replaceable>.sql</literal>.
The choice of the dummy version name to use as <replaceable
class="parameter">old_version</replaceable> is up to the extension author, though
<literal>unpackaged</literal> is a common convention. If you have multiple
prior versions you need to be able to update into extension style, use
multiple dummy version names to identify them.
</para>
<para>
<command>ALTER EXTENSION</command> is able to execute sequences of update
script files to achieve a requested update. For example, if only

View File

@ -24,7 +24,6 @@ PostgreSQL documentation
CREATE EXTENSION [ IF NOT EXISTS ] <replaceable class="parameter">extension_name</replaceable>
[ WITH ] [ SCHEMA <replaceable class="parameter">schema_name</replaceable> ]
[ VERSION <replaceable class="parameter">version</replaceable> ]
[ FROM <replaceable class="parameter">old_version</replaceable> ]
[ CASCADE ]
</synopsis>
</refsynopsisdiv>
@ -48,8 +47,9 @@ CREATE EXTENSION [ IF NOT EXISTS ] <replaceable class="parameter">extension_name
<para>
The user who runs <command>CREATE EXTENSION</command> becomes the
owner of the extension for purposes of later privilege checks, as well
as the owner of any objects created by the extension's script.
owner of the extension for purposes of later privilege checks, and
normally also becomes the owner of any objects created by the
extension's script.
</para>
<para>
@ -141,33 +141,6 @@ CREATE EXTENSION [ IF NOT EXISTS ] <replaceable class="parameter">extension_name
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable class="parameter">old_version</replaceable></term>
<listitem>
<para>
<literal>FROM</literal> <replaceable class="parameter">old_version</replaceable>
must be specified when, and only when, you are attempting to install
an extension that replaces an <quote>old style</quote> module that is just
a collection of objects not packaged into an extension. This option
causes <command>CREATE EXTENSION</command> to run an alternative installation
script that absorbs the existing objects into the extension, instead
of creating new objects. Be careful that <literal>SCHEMA</literal> specifies
the schema containing these pre-existing objects.
</para>
<para>
The value to use for <replaceable
class="parameter">old_version</replaceable> is determined by the
extension's author, and might vary if there is more than one version
of the old-style module that can be upgraded into an extension.
For the standard additional modules supplied with pre-9.1
<productname>PostgreSQL</productname>, use <literal>unpackaged</literal>
for <replaceable class="parameter">old_version</replaceable> when
updating a module to extension style.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>CASCADE</literal></term>
<listitem>
@ -220,16 +193,6 @@ CREATE EXTENSION [ IF NOT EXISTS ] <replaceable class="parameter">extension_name
CREATE EXTENSION hstore;
</programlisting>
</para>
<para>
Update a pre-9.1 installation of <literal>hstore</literal> into
extension style:
<programlisting>
CREATE EXTENSION hstore SCHEMA public FROM unpackaged;
</programlisting>
Be careful to specify the schema in which you installed the existing
<literal>hstore</literal> objects.
</para>
</refsect1>
<refsect1>

View File

@ -1357,7 +1357,6 @@ static ObjectAddress
CreateExtensionInternal(char *extensionName,
char *schemaName,
const char *versionName,
const char *oldVersionName,
bool cascade,
List *parents,
bool is_create)
@ -1367,6 +1366,8 @@ CreateExtensionInternal(char *extensionName,
Oid extowner = GetUserId();
ExtensionControlFile *pcontrol;
ExtensionControlFile *control;
char *filename;
struct stat fst;
List *updateVersions;
List *requiredExtensions;
List *requiredSchemas;
@ -1401,56 +1402,6 @@ CreateExtensionInternal(char *extensionName,
* does what is needed, we try to find a sequence of update scripts that
* will get us there.
*/
if (oldVersionName)
{
/*
* "FROM old_version" was specified, indicating that we're trying to
* update from some unpackaged version of the extension. Locate a
* series of update scripts that will do it.
*/
check_valid_version_name(oldVersionName);
if (strcmp(oldVersionName, versionName) == 0)
ereport(ERROR,
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("FROM version must be different from installation target version \"%s\"",
versionName)));
updateVersions = identify_update_path(pcontrol,
oldVersionName,
versionName);
if (list_length(updateVersions) == 1)
{
/*
* Simple case where there's just one update script to run. We
* will not need any follow-on update steps.
*/
Assert(strcmp((char *) linitial(updateVersions), versionName) == 0);
updateVersions = NIL;
}
else
{
/*
* Multi-step sequence. We treat this as installing the version
* that is the target of the first script, followed by successive
* updates to the later versions.
*/
versionName = (char *) linitial(updateVersions);
updateVersions = list_delete_first(updateVersions);
}
}
else
{
/*
* No FROM, so we're installing from scratch. If there is an install
* script for the desired version, we only need to run that one.
*/
char *filename;
struct stat fst;
oldVersionName = NULL;
filename = get_extension_script_filename(pcontrol, NULL, versionName);
if (stat(filename, &fst) == 0)
{
@ -1484,7 +1435,6 @@ CreateExtensionInternal(char *extensionName,
/* Otherwise, install best starting point and then upgrade */
versionName = evi_start->name;
}
}
/*
* Fetch control parameters for installation target version
@ -1624,7 +1574,7 @@ CreateExtensionInternal(char *extensionName,
* Execute the installation script file
*/
execute_extension_script(extensionOid, control,
oldVersionName, versionName,
NULL, versionName,
requiredSchemas,
schemaName, schemaOid);
@ -1691,7 +1641,6 @@ get_required_extension(char *reqExtensionName,
addr = CreateExtensionInternal(reqExtensionName,
origSchemaName,
NULL,
NULL,
cascade,
cascade_parents,
is_create);
@ -1719,11 +1668,9 @@ CreateExtension(ParseState *pstate, CreateExtensionStmt *stmt)
{
DefElem *d_schema = NULL;
DefElem *d_new_version = NULL;
DefElem *d_old_version = NULL;
DefElem *d_cascade = NULL;
char *schemaName = NULL;
char *versionName = NULL;
char *oldVersionName = NULL;
bool cascade = false;
ListCell *lc;
@ -1787,16 +1734,6 @@ CreateExtension(ParseState *pstate, CreateExtensionStmt *stmt)
d_new_version = defel;
versionName = defGetString(d_new_version);
}
else if (strcmp(defel->defname, "old_version") == 0)
{
if (d_old_version)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("conflicting or redundant options"),
parser_errposition(pstate, defel->location)));
d_old_version = defel;
oldVersionName = defGetString(d_old_version);
}
else if (strcmp(defel->defname, "cascade") == 0)
{
if (d_cascade)
@ -1815,7 +1752,6 @@ CreateExtension(ParseState *pstate, CreateExtensionStmt *stmt)
return CreateExtensionInternal(stmt->extname,
schemaName,
versionName,
oldVersionName,
cascade,
NIL,
true);

View File

@ -4460,7 +4460,7 @@ DropTableSpaceStmt: DROP TABLESPACE name
*
* QUERY:
* CREATE EXTENSION extension
* [ WITH ] [ SCHEMA schema ] [ VERSION version ] [ FROM oldversion ]
* [ WITH ] [ SCHEMA schema ] [ VERSION version ]
*
*****************************************************************************/
@ -4500,7 +4500,10 @@ create_extension_opt_item:
}
| FROM NonReservedWord_or_Sconst
{
$$ = makeDefElem("old_version", (Node *)makeString($2), @1);
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("CREATE EXTENSION ... FROM is no longer supported"),
parser_errposition(@1)));
}
| CASCADE
{

View File

@ -27,8 +27,8 @@ NAME = plperl
OBJS = plperl.o SPI.o Util.o $(WIN32RES)
DATA = plperl.control plperl--1.0.sql plperl--unpackaged--1.0.sql \
plperlu.control plperlu--1.0.sql plperlu--unpackaged--1.0.sql
DATA = plperl.control plperl--1.0.sql \
plperlu.control plperlu--1.0.sql
PERLCHUNKS = plc_perlboot.pl plc_trusted.pl

View File

@ -1,7 +0,0 @@
/* src/pl/plperl/plperl--unpackaged--1.0.sql */
ALTER EXTENSION plperl ADD LANGUAGE plperl;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION plperl ADD FUNCTION plperl_call_handler();
ALTER EXTENSION plperl ADD FUNCTION plperl_inline_handler(internal);
ALTER EXTENSION plperl ADD FUNCTION plperl_validator(oid);

View File

@ -1,7 +0,0 @@
/* src/pl/plperl/plperlu--unpackaged--1.0.sql */
ALTER EXTENSION plperlu ADD LANGUAGE plperlu;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION plperlu ADD FUNCTION plperlu_call_handler();
ALTER EXTENSION plperlu ADD FUNCTION plperlu_inline_handler(internal);
ALTER EXTENSION plperlu ADD FUNCTION plperlu_validator(oid);

View File

@ -28,7 +28,7 @@ OBJS = \
pl_handler.o \
pl_scanner.o
DATA = plpgsql.control plpgsql--1.0.sql plpgsql--unpackaged--1.0.sql
DATA = plpgsql.control plpgsql--1.0.sql
REGRESS_OPTS = --dbname=$(PL_TESTDB)

View File

@ -1,7 +0,0 @@
/* src/pl/plpgsql/src/plpgsql--unpackaged--1.0.sql */
ALTER EXTENSION plpgsql ADD LANGUAGE plpgsql;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION plpgsql ADD FUNCTION plpgsql_call_handler();
ALTER EXTENSION plpgsql ADD FUNCTION plpgsql_inline_handler(internal);
ALTER EXTENSION plpgsql ADD FUNCTION plpgsql_validator(oid);

View File

@ -34,9 +34,9 @@ OBJS = \
plpy_typeio.o \
plpy_util.o
DATA = $(NAME)u.control $(NAME)u--1.0.sql $(NAME)u--unpackaged--1.0.sql
DATA = $(NAME)u.control $(NAME)u--1.0.sql
ifeq ($(python_majorversion),2)
DATA += plpythonu.control plpythonu--1.0.sql plpythonu--unpackaged--1.0.sql
DATA += plpythonu.control plpythonu--1.0.sql
endif
# header files to install - it's not clear which of these might be needed

View File

@ -1,7 +0,0 @@
/* src/pl/plpython/plpython2u--unpackaged--1.0.sql */
ALTER EXTENSION plpython2u ADD LANGUAGE plpython2u;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION plpython2u ADD FUNCTION plpython2_call_handler();
ALTER EXTENSION plpython2u ADD FUNCTION plpython2_inline_handler(internal);
ALTER EXTENSION plpython2u ADD FUNCTION plpython2_validator(oid);

View File

@ -1,7 +0,0 @@
/* src/pl/plpython/plpython3u--unpackaged--1.0.sql */
ALTER EXTENSION plpython3u ADD LANGUAGE plpython3u;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION plpython3u ADD FUNCTION plpython3_call_handler();
ALTER EXTENSION plpython3u ADD FUNCTION plpython3_inline_handler(internal);
ALTER EXTENSION plpython3u ADD FUNCTION plpython3_validator(oid);

View File

@ -1,7 +0,0 @@
/* src/pl/plpython/plpythonu--unpackaged--1.0.sql */
ALTER EXTENSION plpythonu ADD LANGUAGE plpythonu;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION plpythonu ADD FUNCTION plpython_call_handler();
ALTER EXTENSION plpythonu ADD FUNCTION plpython_inline_handler(internal);
ALTER EXTENSION plpythonu ADD FUNCTION plpython_validator(oid);

View File

@ -26,8 +26,8 @@ OBJS = \
$(WIN32RES) \
pltcl.o
DATA = pltcl.control pltcl--1.0.sql pltcl--unpackaged--1.0.sql \
pltclu.control pltclu--1.0.sql pltclu--unpackaged--1.0.sql
DATA = pltcl.control pltcl--1.0.sql \
pltclu.control pltclu--1.0.sql
REGRESS_OPTS = --dbname=$(PL_TESTDB) --load-extension=pltcl
REGRESS = pltcl_setup pltcl_queries pltcl_trigger pltcl_call pltcl_start_proc pltcl_subxact pltcl_unicode pltcl_transaction

View File

@ -1,5 +0,0 @@
/* src/pl/tcl/pltcl--unpackaged--1.0.sql */
ALTER EXTENSION pltcl ADD LANGUAGE pltcl;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION pltcl ADD FUNCTION pltcl_call_handler();

View File

@ -1,5 +0,0 @@
/* src/pl/tcl/pltclu--unpackaged--1.0.sql */
ALTER EXTENSION pltclu ADD LANGUAGE pltclu;
-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to.
ALTER EXTENSION pltclu ADD FUNCTION pltclu_call_handler();

View File

@ -7,7 +7,7 @@ OBJS = \
PGFILEDESC = "test_parser - example of a custom parser for full-text search"
EXTENSION = test_parser
DATA = test_parser--1.0.sql test_parser--unpackaged--1.0.sql
DATA = test_parser--1.0.sql
REGRESS = test_parser

View File

@ -1,10 +0,0 @@
/* src/test/modules/test_parser/test_parser--unpackaged--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION test_parser FROM unpackaged" to load this file. \quit
ALTER EXTENSION test_parser ADD function testprs_start(internal,integer);
ALTER EXTENSION test_parser ADD function testprs_getlexeme(internal,internal,internal);
ALTER EXTENSION test_parser ADD function testprs_end(internal);
ALTER EXTENSION test_parser ADD function testprs_lextype(internal);
ALTER EXTENSION test_parser ADD text search parser testparser;