Dimitri Fontaine <dimi...@2ndquadrant.fr> writes: > Tom Lane <t...@sss.pgh.pa.us> writes: >> I think it's better to keep it working as a textual substitution. >> That poses the least risk of breaking scripts that work today --- >> who's to say that somebody might not be relying on the substitution >> happening someplace else than CREATE FUNCTION's shlib string?
> Fair enough, I suppose. So +1 from me, FWIW. OK, so with that, attached is an example of the complete conversion diff for a contrib module (hstore in particular). Although "git status" reports hstore--1.0.sql as being a rename of hstore.sql.in, "git diff" doesn't seem to be exceedingly bright about presenting it that way :-(. But actually the change in that script other than renaming is just removing the "set search_path" command and adjusting the header comment. I've checked that regression tests pass and "create extension hstore from unpackaged" successfully upgrades from a 9.0 dump. I don't have the ability to check that it works on Windows too, but since we're not hacking pgxs.mk I doubt that there's anything to do to the Windows build process. Barring objections, I'll press on with fixing the rest of them. regards, tom lane
diff --git a/contrib/hstore/.gitignore b/contrib/hstore/.gitignore index d7af95330c380d468c35f781f34de30ea05709a5..19b6c5ba425ca92d1bb371bf43d9cdae372f8c1a 100644 *** a/contrib/hstore/.gitignore --- b/contrib/hstore/.gitignore *************** *** 1,3 **** - /hstore.sql # Generated subdirectories /results/ --- 1,2 ---- diff --git a/contrib/hstore/Makefile b/contrib/hstore/Makefile index 1d533fdd60280b1e62610dd7b98cdfb4151de1b4..5badbdb714b60cd786cffa86526a405bccfd1ea0 100644 *** a/contrib/hstore/Makefile --- b/contrib/hstore/Makefile *************** MODULE_big = hstore *** 4,11 **** OBJS = hstore_io.o hstore_op.o hstore_gist.o hstore_gin.o hstore_compat.o \ crc32.o ! DATA_built = hstore.sql ! DATA = uninstall_hstore.sql REGRESS = hstore ifdef USE_PGXS --- 4,11 ---- OBJS = hstore_io.o hstore_op.o hstore_gist.o hstore_gin.o hstore_compat.o \ crc32.o ! EXTENSION = hstore ! DATA = hstore--1.0.sql hstore--unpackaged--1.0.sql REGRESS = hstore ifdef USE_PGXS diff --git a/contrib/hstore/expected/hstore.out b/contrib/hstore/expected/hstore.out index 354fff20fe2b24127ac9ec1ae9a20f72d628e256..083faf8d9c433ba9f34a95f65fed64c0079a6561 100644 *** a/contrib/hstore/expected/hstore.out --- b/contrib/hstore/expected/hstore.out *************** *** 1,12 **** ! -- ! -- first, define the datatype. Turn off echoing so that expected file ! -- does not depend on contents of hstore.sql. ! -- ! SET client_min_messages = warning; ! \set ECHO none ! psql:hstore.sql:228: WARNING: => is deprecated as an operator name DETAIL: This name may be disallowed altogether in future versions of PostgreSQL. - RESET client_min_messages; set escape_string_warning=off; --hstore; select ''::hstore; --- 1,6 ---- ! CREATE EXTENSION hstore; ! WARNING: => is deprecated as an operator name DETAIL: This name may be disallowed altogether in future versions of PostgreSQL. set escape_string_warning=off; --hstore; select ''::hstore; diff --git a/contrib/hstore/hstore--1.0.sql b/contrib/hstore/hstore--1.0.sql index ...d77b14286bdce8af49bdad9620e00c5c4ce827fe . *** a/contrib/hstore/hstore--1.0.sql --- b/contrib/hstore/hstore--1.0.sql *************** *** 0 **** --- 1,527 ---- + /* contrib/hstore/hstore--1.0.sql */ + + CREATE TYPE hstore; + + CREATE OR REPLACE FUNCTION hstore_in(cstring) + RETURNS hstore + AS 'MODULE_PATHNAME' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_out(hstore) + RETURNS cstring + AS 'MODULE_PATHNAME' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_recv(internal) + RETURNS hstore + AS 'MODULE_PATHNAME' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_send(hstore) + RETURNS bytea + AS 'MODULE_PATHNAME' + LANGUAGE C STRICT IMMUTABLE; + + CREATE TYPE hstore ( + INTERNALLENGTH = -1, + INPUT = hstore_in, + OUTPUT = hstore_out, + RECEIVE = hstore_recv, + SEND = hstore_send, + STORAGE = extended + ); + + CREATE OR REPLACE FUNCTION hstore_version_diag(hstore) + RETURNS integer + AS 'MODULE_PATHNAME','hstore_version_diag' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION fetchval(hstore,text) + RETURNS text + AS 'MODULE_PATHNAME','hstore_fetchval' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR -> ( + LEFTARG = hstore, + RIGHTARG = text, + PROCEDURE = fetchval + ); + + CREATE OR REPLACE FUNCTION slice_array(hstore,text[]) + RETURNS text[] + AS 'MODULE_PATHNAME','hstore_slice_to_array' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR -> ( + LEFTARG = hstore, + RIGHTARG = text[], + PROCEDURE = slice_array + ); + + CREATE OR REPLACE FUNCTION slice(hstore,text[]) + RETURNS hstore + AS 'MODULE_PATHNAME','hstore_slice_to_hstore' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION isexists(hstore,text) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_exists' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION exist(hstore,text) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_exists' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR ? ( + LEFTARG = hstore, + RIGHTARG = text, + PROCEDURE = exist, + RESTRICT = contsel, + JOIN = contjoinsel + ); + + CREATE OR REPLACE FUNCTION exists_any(hstore,text[]) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_exists_any' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR ?| ( + LEFTARG = hstore, + RIGHTARG = text[], + PROCEDURE = exists_any, + RESTRICT = contsel, + JOIN = contjoinsel + ); + + CREATE OR REPLACE FUNCTION exists_all(hstore,text[]) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_exists_all' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR ?& ( + LEFTARG = hstore, + RIGHTARG = text[], + PROCEDURE = exists_all, + RESTRICT = contsel, + JOIN = contjoinsel + ); + + CREATE OR REPLACE FUNCTION isdefined(hstore,text) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_defined' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION defined(hstore,text) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_defined' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION delete(hstore,text) + RETURNS hstore + AS 'MODULE_PATHNAME','hstore_delete' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION delete(hstore,text[]) + RETURNS hstore + AS 'MODULE_PATHNAME','hstore_delete_array' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION delete(hstore,hstore) + RETURNS hstore + AS 'MODULE_PATHNAME','hstore_delete_hstore' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR - ( + LEFTARG = hstore, + RIGHTARG = text, + PROCEDURE = delete + ); + + CREATE OPERATOR - ( + LEFTARG = hstore, + RIGHTARG = text[], + PROCEDURE = delete + ); + + CREATE OPERATOR - ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = delete + ); + + CREATE OR REPLACE FUNCTION hs_concat(hstore,hstore) + RETURNS hstore + AS 'MODULE_PATHNAME','hstore_concat' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR || ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hs_concat + ); + + CREATE OR REPLACE FUNCTION hs_contains(hstore,hstore) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_contains' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hs_contained(hstore,hstore) + RETURNS bool + AS 'MODULE_PATHNAME','hstore_contained' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR @> ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hs_contains, + COMMUTATOR = '<@', + RESTRICT = contsel, + JOIN = contjoinsel + ); + + CREATE OPERATOR <@ ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hs_contained, + COMMUTATOR = '@>', + RESTRICT = contsel, + JOIN = contjoinsel + ); + + -- obsolete: + CREATE OPERATOR @ ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hs_contains, + COMMUTATOR = '~', + RESTRICT = contsel, + JOIN = contjoinsel + ); + + CREATE OPERATOR ~ ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hs_contained, + COMMUTATOR = '@', + RESTRICT = contsel, + JOIN = contjoinsel + ); + + CREATE OR REPLACE FUNCTION tconvert(text,text) + RETURNS hstore + AS 'MODULE_PATHNAME','hstore_from_text' + LANGUAGE C IMMUTABLE; -- not STRICT; needs to allow (key,NULL) + + CREATE OR REPLACE FUNCTION hstore(text,text) + RETURNS hstore + AS 'MODULE_PATHNAME','hstore_from_text' + LANGUAGE C IMMUTABLE; -- not STRICT; needs to allow (key,NULL) + + CREATE OPERATOR => ( + LEFTARG = text, + RIGHTARG = text, + PROCEDURE = hstore + ); + + CREATE OR REPLACE FUNCTION hstore(text[],text[]) + RETURNS hstore + AS 'MODULE_PATHNAME', 'hstore_from_arrays' + LANGUAGE C IMMUTABLE; -- not STRICT; allows (keys,null) + + CREATE FUNCTION hstore(text[]) + RETURNS hstore + AS 'MODULE_PATHNAME', 'hstore_from_array' + LANGUAGE C IMMUTABLE STRICT; + + CREATE CAST (text[] AS hstore) + WITH FUNCTION hstore(text[]); + + CREATE OR REPLACE FUNCTION hstore(record) + RETURNS hstore + AS 'MODULE_PATHNAME', 'hstore_from_record' + LANGUAGE C IMMUTABLE; -- not STRICT; allows (null::recordtype) + + CREATE OR REPLACE FUNCTION hstore_to_array(hstore) + RETURNS text[] + AS 'MODULE_PATHNAME','hstore_to_array' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR %% ( + RIGHTARG = hstore, + PROCEDURE = hstore_to_array + ); + + CREATE OR REPLACE FUNCTION hstore_to_matrix(hstore) + RETURNS text[] + AS 'MODULE_PATHNAME','hstore_to_matrix' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR %# ( + RIGHTARG = hstore, + PROCEDURE = hstore_to_matrix + ); + + CREATE OR REPLACE FUNCTION akeys(hstore) + RETURNS text[] + AS 'MODULE_PATHNAME','hstore_akeys' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION avals(hstore) + RETURNS text[] + AS 'MODULE_PATHNAME','hstore_avals' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION skeys(hstore) + RETURNS setof text + AS 'MODULE_PATHNAME','hstore_skeys' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION svals(hstore) + RETURNS setof text + AS 'MODULE_PATHNAME','hstore_svals' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION each(IN hs hstore, + OUT key text, + OUT value text) + RETURNS SETOF record + AS 'MODULE_PATHNAME','hstore_each' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION populate_record(anyelement,hstore) + RETURNS anyelement + AS 'MODULE_PATHNAME', 'hstore_populate_record' + LANGUAGE C IMMUTABLE; -- not STRICT; allows (null::rectype,hstore) + + CREATE OPERATOR #= ( + LEFTARG = anyelement, + RIGHTARG = hstore, + PROCEDURE = populate_record + ); + + -- btree support + + CREATE OR REPLACE FUNCTION hstore_eq(hstore,hstore) + RETURNS boolean + AS 'MODULE_PATHNAME','hstore_eq' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_ne(hstore,hstore) + RETURNS boolean + AS 'MODULE_PATHNAME','hstore_ne' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_gt(hstore,hstore) + RETURNS boolean + AS 'MODULE_PATHNAME','hstore_gt' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_ge(hstore,hstore) + RETURNS boolean + AS 'MODULE_PATHNAME','hstore_ge' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_lt(hstore,hstore) + RETURNS boolean + AS 'MODULE_PATHNAME','hstore_lt' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_le(hstore,hstore) + RETURNS boolean + AS 'MODULE_PATHNAME','hstore_le' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION hstore_cmp(hstore,hstore) + RETURNS integer + AS 'MODULE_PATHNAME','hstore_cmp' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR = ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hstore_eq, + COMMUTATOR = =, + NEGATOR = <>, + RESTRICT = eqsel, + JOIN = eqjoinsel, + MERGES, + HASHES + ); + CREATE OPERATOR <> ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hstore_ne, + COMMUTATOR = <>, + NEGATOR = =, + RESTRICT = neqsel, + JOIN = neqjoinsel + ); + + -- the comparison operators have funky names (and are undocumented) + -- in an attempt to discourage anyone from actually using them. they + -- only exist to support the btree opclass + + CREATE OPERATOR #<# ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hstore_lt, + COMMUTATOR = #>#, + NEGATOR = #>=#, + RESTRICT = scalarltsel, + JOIN = scalarltjoinsel + ); + CREATE OPERATOR #<=# ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hstore_le, + COMMUTATOR = #>=#, + NEGATOR = #>#, + RESTRICT = scalarltsel, + JOIN = scalarltjoinsel + ); + CREATE OPERATOR #># ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hstore_gt, + COMMUTATOR = #<#, + NEGATOR = #<=#, + RESTRICT = scalargtsel, + JOIN = scalargtjoinsel + ); + CREATE OPERATOR #>=# ( + LEFTARG = hstore, + RIGHTARG = hstore, + PROCEDURE = hstore_ge, + COMMUTATOR = #<=#, + NEGATOR = #<#, + RESTRICT = scalargtsel, + JOIN = scalargtjoinsel + ); + + CREATE OPERATOR CLASS btree_hstore_ops + DEFAULT FOR TYPE hstore USING btree + AS + OPERATOR 1 #<# , + OPERATOR 2 #<=# , + OPERATOR 3 = , + OPERATOR 4 #>=# , + OPERATOR 5 #># , + FUNCTION 1 hstore_cmp(hstore,hstore); + + -- hash support + + CREATE OR REPLACE FUNCTION hstore_hash(hstore) + RETURNS integer + AS 'MODULE_PATHNAME','hstore_hash' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OPERATOR CLASS hash_hstore_ops + DEFAULT FOR TYPE hstore USING hash + AS + OPERATOR 1 = , + FUNCTION 1 hstore_hash(hstore); + + -- GiST support + + CREATE TYPE ghstore; + + CREATE OR REPLACE FUNCTION ghstore_in(cstring) + RETURNS ghstore + AS 'MODULE_PATHNAME' + LANGUAGE C STRICT IMMUTABLE; + + CREATE OR REPLACE FUNCTION ghstore_out(ghstore) + RETURNS cstring + AS 'MODULE_PATHNAME' + LANGUAGE C STRICT IMMUTABLE; + + CREATE TYPE ghstore ( + INTERNALLENGTH = -1, + INPUT = ghstore_in, + OUTPUT = ghstore_out + ); + + CREATE OR REPLACE FUNCTION ghstore_compress(internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION ghstore_decompress(internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION ghstore_penalty(internal,internal,internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION ghstore_picksplit(internal, internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION ghstore_union(internal, internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION ghstore_same(internal, internal, internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION ghstore_consistent(internal,internal,int,oid,internal) + RETURNS bool + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OPERATOR CLASS gist_hstore_ops + DEFAULT FOR TYPE hstore USING gist + AS + OPERATOR 7 @> , + OPERATOR 9 ?(hstore,text) , + OPERATOR 10 ?|(hstore,text[]) , + OPERATOR 11 ?&(hstore,text[]) , + --OPERATOR 8 <@ , + OPERATOR 13 @ , + --OPERATOR 14 ~ , + FUNCTION 1 ghstore_consistent (internal, internal, int, oid, internal), + FUNCTION 2 ghstore_union (internal, internal), + FUNCTION 3 ghstore_compress (internal), + FUNCTION 4 ghstore_decompress (internal), + FUNCTION 5 ghstore_penalty (internal, internal, internal), + FUNCTION 6 ghstore_picksplit (internal, internal), + FUNCTION 7 ghstore_same (internal, internal, internal), + STORAGE ghstore; + + -- GIN support + + CREATE OR REPLACE FUNCTION gin_extract_hstore(internal, internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION gin_extract_hstore_query(internal, internal, int2, internal, internal) + RETURNS internal + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OR REPLACE FUNCTION gin_consistent_hstore(internal, int2, internal, int4, internal, internal) + RETURNS bool + AS 'MODULE_PATHNAME' + LANGUAGE C IMMUTABLE STRICT; + + CREATE OPERATOR CLASS gin_hstore_ops + DEFAULT FOR TYPE hstore USING gin + AS + OPERATOR 7 @>, + OPERATOR 9 ?(hstore,text), + OPERATOR 10 ?|(hstore,text[]), + OPERATOR 11 ?&(hstore,text[]), + FUNCTION 1 bttextcmp(text,text), + FUNCTION 2 gin_extract_hstore(internal, internal), + FUNCTION 3 gin_extract_hstore_query(internal, internal, int2, internal, internal), + FUNCTION 4 gin_consistent_hstore(internal, int2, internal, int4, internal, internal), + STORAGE text; diff --git a/contrib/hstore/hstore--unpackaged--1.0.sql b/contrib/hstore/hstore--unpackaged--1.0.sql index ...3236543fe463af1ec2caf3d67bb8ed03e7802cf4 . *** a/contrib/hstore/hstore--unpackaged--1.0.sql --- b/contrib/hstore/hstore--unpackaged--1.0.sql *************** *** 0 **** --- 1,89 ---- + /* contrib/hstore/hstore--unpackaged--1.0.sql */ + + ALTER EXTENSION hstore ADD cast (text[] as hstore); + ALTER EXTENSION hstore ADD function akeys(hstore); + ALTER EXTENSION hstore ADD function avals(hstore); + ALTER EXTENSION hstore ADD function defined(hstore,text); + ALTER EXTENSION hstore ADD function delete(hstore,hstore); + ALTER EXTENSION hstore ADD function delete(hstore,text); + ALTER EXTENSION hstore ADD function delete(hstore,text[]); + ALTER EXTENSION hstore ADD function each(hstore); + ALTER EXTENSION hstore ADD function exist(hstore,text); + ALTER EXTENSION hstore ADD function exists_all(hstore,text[]); + ALTER EXTENSION hstore ADD function exists_any(hstore,text[]); + ALTER EXTENSION hstore ADD function fetchval(hstore,text); + ALTER EXTENSION hstore ADD function ghstore_compress(internal); + ALTER EXTENSION hstore ADD function ghstore_consistent(internal,internal,integer,oid,internal); + ALTER EXTENSION hstore ADD function ghstore_decompress(internal); + ALTER EXTENSION hstore ADD function ghstore_in(cstring); + ALTER EXTENSION hstore ADD function ghstore_out(ghstore); + 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_same(internal,internal,internal); + ALTER EXTENSION hstore ADD function ghstore_union(internal,internal); + ALTER EXTENSION hstore ADD function gin_consistent_hstore(internal,smallint,internal,integer,internal,internal); + 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 hs_concat(hstore,hstore); + ALTER EXTENSION hstore ADD function hs_contained(hstore,hstore); + ALTER EXTENSION hstore ADD function hs_contains(hstore,hstore); + ALTER EXTENSION hstore ADD function hstore(record); + ALTER EXTENSION hstore ADD function hstore(text,text); + ALTER EXTENSION hstore ADD function hstore(text[]); + ALTER EXTENSION hstore ADD function hstore(text[],text[]); + ALTER EXTENSION hstore ADD function hstore_cmp(hstore,hstore); + ALTER EXTENSION hstore ADD function hstore_eq(hstore,hstore); + ALTER EXTENSION hstore ADD function hstore_ge(hstore,hstore); + ALTER EXTENSION hstore ADD function hstore_gt(hstore,hstore); + ALTER EXTENSION hstore ADD function hstore_hash(hstore); + ALTER EXTENSION hstore ADD function hstore_in(cstring); + ALTER EXTENSION hstore ADD function hstore_le(hstore,hstore); + ALTER EXTENSION hstore ADD function hstore_lt(hstore,hstore); + ALTER EXTENSION hstore ADD function hstore_ne(hstore,hstore); + 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_to_array(hstore); + ALTER EXTENSION hstore ADD function hstore_to_matrix(hstore); + ALTER EXTENSION hstore ADD function hstore_version_diag(hstore); + ALTER EXTENSION hstore ADD function isdefined(hstore,text); + ALTER EXTENSION hstore ADD function isexists(hstore,text); + ALTER EXTENSION hstore ADD function populate_record(anyelement,hstore); + ALTER EXTENSION hstore ADD function skeys(hstore); + ALTER EXTENSION hstore ADD function slice(hstore,text[]); + ALTER EXTENSION hstore ADD function slice_array(hstore,text[]); + ALTER EXTENSION hstore ADD function svals(hstore); + ALTER EXTENSION hstore ADD function tconvert(text,text); + ALTER EXTENSION hstore ADD operator #<#(hstore,hstore); + ALTER EXTENSION hstore ADD operator #<=#(hstore,hstore); + ALTER EXTENSION hstore ADD operator #=(anyelement,hstore); + ALTER EXTENSION hstore ADD operator #>#(hstore,hstore); + ALTER EXTENSION hstore ADD operator #>=#(hstore,hstore); + ALTER EXTENSION hstore ADD operator %#(NONE,hstore); + ALTER EXTENSION hstore ADD operator %%(NONE,hstore); + ALTER EXTENSION hstore ADD operator -(hstore,hstore); + ALTER EXTENSION hstore ADD operator -(hstore,text); + ALTER EXTENSION hstore ADD operator -(hstore,text[]); + 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 operator <@(hstore,hstore); + ALTER EXTENSION hstore ADD operator =(hstore,hstore); + ALTER EXTENSION hstore ADD operator =>(text,text); + ALTER EXTENSION hstore ADD operator ?&(hstore,text[]); + 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 operator @>(hstore,hstore); + ALTER EXTENSION hstore ADD operator class btree_hstore_ops using btree; + ALTER EXTENSION hstore ADD operator class gin_hstore_ops using gin; + ALTER EXTENSION hstore ADD operator class gist_hstore_ops using gist; + ALTER EXTENSION hstore ADD operator class hash_hstore_ops using hash; + ALTER EXTENSION hstore ADD operator family btree_hstore_ops using btree; + ALTER EXTENSION hstore ADD operator family gin_hstore_ops using gin; + ALTER EXTENSION hstore ADD operator family gist_hstore_ops using gist; + ALTER EXTENSION hstore ADD operator family hash_hstore_ops using hash; + ALTER EXTENSION hstore ADD operator ||(hstore,hstore); + ALTER EXTENSION hstore ADD operator ~(hstore,hstore); + ALTER EXTENSION hstore ADD type ghstore; + ALTER EXTENSION hstore ADD type hstore; diff --git a/contrib/hstore/hstore.control b/contrib/hstore/hstore.control index ...0a57b3487b4392ba73884979d665a6a892b38ebf . *** a/contrib/hstore/hstore.control --- b/contrib/hstore/hstore.control *************** *** 0 **** --- 1,5 ---- + # hstore extension + comment = 'store sets of (key, value) pairs' + default_version = '1.0' + module_pathname = '$libdir/hstore' + relocatable = true diff --git a/contrib/hstore/hstore.sql.in b/contrib/hstore/hstore.sql.in index 5b39c189e112e57b245b878f64567af6fbd7347c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 *** a/contrib/hstore/hstore.sql.in --- b/contrib/hstore/hstore.sql.in *************** *** 1,530 **** - /* contrib/hstore/hstore.sql.in */ - - -- Adjust this setting to control where the objects get created. - SET search_path = public; - - CREATE TYPE hstore; - - CREATE OR REPLACE FUNCTION hstore_in(cstring) - RETURNS hstore - AS 'MODULE_PATHNAME' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_out(hstore) - RETURNS cstring - AS 'MODULE_PATHNAME' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_recv(internal) - RETURNS hstore - AS 'MODULE_PATHNAME' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_send(hstore) - RETURNS bytea - AS 'MODULE_PATHNAME' - LANGUAGE C STRICT IMMUTABLE; - - CREATE TYPE hstore ( - INTERNALLENGTH = -1, - INPUT = hstore_in, - OUTPUT = hstore_out, - RECEIVE = hstore_recv, - SEND = hstore_send, - STORAGE = extended - ); - - CREATE OR REPLACE FUNCTION hstore_version_diag(hstore) - RETURNS integer - AS 'MODULE_PATHNAME','hstore_version_diag' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION fetchval(hstore,text) - RETURNS text - AS 'MODULE_PATHNAME','hstore_fetchval' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR -> ( - LEFTARG = hstore, - RIGHTARG = text, - PROCEDURE = fetchval - ); - - CREATE OR REPLACE FUNCTION slice_array(hstore,text[]) - RETURNS text[] - AS 'MODULE_PATHNAME','hstore_slice_to_array' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR -> ( - LEFTARG = hstore, - RIGHTARG = text[], - PROCEDURE = slice_array - ); - - CREATE OR REPLACE FUNCTION slice(hstore,text[]) - RETURNS hstore - AS 'MODULE_PATHNAME','hstore_slice_to_hstore' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION isexists(hstore,text) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_exists' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION exist(hstore,text) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_exists' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR ? ( - LEFTARG = hstore, - RIGHTARG = text, - PROCEDURE = exist, - RESTRICT = contsel, - JOIN = contjoinsel - ); - - CREATE OR REPLACE FUNCTION exists_any(hstore,text[]) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_exists_any' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR ?| ( - LEFTARG = hstore, - RIGHTARG = text[], - PROCEDURE = exists_any, - RESTRICT = contsel, - JOIN = contjoinsel - ); - - CREATE OR REPLACE FUNCTION exists_all(hstore,text[]) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_exists_all' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR ?& ( - LEFTARG = hstore, - RIGHTARG = text[], - PROCEDURE = exists_all, - RESTRICT = contsel, - JOIN = contjoinsel - ); - - CREATE OR REPLACE FUNCTION isdefined(hstore,text) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_defined' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION defined(hstore,text) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_defined' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION delete(hstore,text) - RETURNS hstore - AS 'MODULE_PATHNAME','hstore_delete' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION delete(hstore,text[]) - RETURNS hstore - AS 'MODULE_PATHNAME','hstore_delete_array' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION delete(hstore,hstore) - RETURNS hstore - AS 'MODULE_PATHNAME','hstore_delete_hstore' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR - ( - LEFTARG = hstore, - RIGHTARG = text, - PROCEDURE = delete - ); - - CREATE OPERATOR - ( - LEFTARG = hstore, - RIGHTARG = text[], - PROCEDURE = delete - ); - - CREATE OPERATOR - ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = delete - ); - - CREATE OR REPLACE FUNCTION hs_concat(hstore,hstore) - RETURNS hstore - AS 'MODULE_PATHNAME','hstore_concat' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR || ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hs_concat - ); - - CREATE OR REPLACE FUNCTION hs_contains(hstore,hstore) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_contains' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hs_contained(hstore,hstore) - RETURNS bool - AS 'MODULE_PATHNAME','hstore_contained' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR @> ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hs_contains, - COMMUTATOR = '<@', - RESTRICT = contsel, - JOIN = contjoinsel - ); - - CREATE OPERATOR <@ ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hs_contained, - COMMUTATOR = '@>', - RESTRICT = contsel, - JOIN = contjoinsel - ); - - -- obsolete: - CREATE OPERATOR @ ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hs_contains, - COMMUTATOR = '~', - RESTRICT = contsel, - JOIN = contjoinsel - ); - - CREATE OPERATOR ~ ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hs_contained, - COMMUTATOR = '@', - RESTRICT = contsel, - JOIN = contjoinsel - ); - - CREATE OR REPLACE FUNCTION tconvert(text,text) - RETURNS hstore - AS 'MODULE_PATHNAME','hstore_from_text' - LANGUAGE C IMMUTABLE; -- not STRICT; needs to allow (key,NULL) - - CREATE OR REPLACE FUNCTION hstore(text,text) - RETURNS hstore - AS 'MODULE_PATHNAME','hstore_from_text' - LANGUAGE C IMMUTABLE; -- not STRICT; needs to allow (key,NULL) - - CREATE OPERATOR => ( - LEFTARG = text, - RIGHTARG = text, - PROCEDURE = hstore - ); - - CREATE OR REPLACE FUNCTION hstore(text[],text[]) - RETURNS hstore - AS 'MODULE_PATHNAME', 'hstore_from_arrays' - LANGUAGE C IMMUTABLE; -- not STRICT; allows (keys,null) - - CREATE FUNCTION hstore(text[]) - RETURNS hstore - AS 'MODULE_PATHNAME', 'hstore_from_array' - LANGUAGE C IMMUTABLE STRICT; - - CREATE CAST (text[] AS hstore) - WITH FUNCTION hstore(text[]); - - CREATE OR REPLACE FUNCTION hstore(record) - RETURNS hstore - AS 'MODULE_PATHNAME', 'hstore_from_record' - LANGUAGE C IMMUTABLE; -- not STRICT; allows (null::recordtype) - - CREATE OR REPLACE FUNCTION hstore_to_array(hstore) - RETURNS text[] - AS 'MODULE_PATHNAME','hstore_to_array' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR %% ( - RIGHTARG = hstore, - PROCEDURE = hstore_to_array - ); - - CREATE OR REPLACE FUNCTION hstore_to_matrix(hstore) - RETURNS text[] - AS 'MODULE_PATHNAME','hstore_to_matrix' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR %# ( - RIGHTARG = hstore, - PROCEDURE = hstore_to_matrix - ); - - CREATE OR REPLACE FUNCTION akeys(hstore) - RETURNS text[] - AS 'MODULE_PATHNAME','hstore_akeys' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION avals(hstore) - RETURNS text[] - AS 'MODULE_PATHNAME','hstore_avals' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION skeys(hstore) - RETURNS setof text - AS 'MODULE_PATHNAME','hstore_skeys' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION svals(hstore) - RETURNS setof text - AS 'MODULE_PATHNAME','hstore_svals' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION each(IN hs hstore, - OUT key text, - OUT value text) - RETURNS SETOF record - AS 'MODULE_PATHNAME','hstore_each' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION populate_record(anyelement,hstore) - RETURNS anyelement - AS 'MODULE_PATHNAME', 'hstore_populate_record' - LANGUAGE C IMMUTABLE; -- not STRICT; allows (null::rectype,hstore) - - CREATE OPERATOR #= ( - LEFTARG = anyelement, - RIGHTARG = hstore, - PROCEDURE = populate_record - ); - - -- btree support - - CREATE OR REPLACE FUNCTION hstore_eq(hstore,hstore) - RETURNS boolean - AS 'MODULE_PATHNAME','hstore_eq' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_ne(hstore,hstore) - RETURNS boolean - AS 'MODULE_PATHNAME','hstore_ne' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_gt(hstore,hstore) - RETURNS boolean - AS 'MODULE_PATHNAME','hstore_gt' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_ge(hstore,hstore) - RETURNS boolean - AS 'MODULE_PATHNAME','hstore_ge' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_lt(hstore,hstore) - RETURNS boolean - AS 'MODULE_PATHNAME','hstore_lt' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_le(hstore,hstore) - RETURNS boolean - AS 'MODULE_PATHNAME','hstore_le' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION hstore_cmp(hstore,hstore) - RETURNS integer - AS 'MODULE_PATHNAME','hstore_cmp' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR = ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hstore_eq, - COMMUTATOR = =, - NEGATOR = <>, - RESTRICT = eqsel, - JOIN = eqjoinsel, - MERGES, - HASHES - ); - CREATE OPERATOR <> ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hstore_ne, - COMMUTATOR = <>, - NEGATOR = =, - RESTRICT = neqsel, - JOIN = neqjoinsel - ); - - -- the comparison operators have funky names (and are undocumented) - -- in an attempt to discourage anyone from actually using them. they - -- only exist to support the btree opclass - - CREATE OPERATOR #<# ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hstore_lt, - COMMUTATOR = #>#, - NEGATOR = #>=#, - RESTRICT = scalarltsel, - JOIN = scalarltjoinsel - ); - CREATE OPERATOR #<=# ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hstore_le, - COMMUTATOR = #>=#, - NEGATOR = #>#, - RESTRICT = scalarltsel, - JOIN = scalarltjoinsel - ); - CREATE OPERATOR #># ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hstore_gt, - COMMUTATOR = #<#, - NEGATOR = #<=#, - RESTRICT = scalargtsel, - JOIN = scalargtjoinsel - ); - CREATE OPERATOR #>=# ( - LEFTARG = hstore, - RIGHTARG = hstore, - PROCEDURE = hstore_ge, - COMMUTATOR = #<=#, - NEGATOR = #<#, - RESTRICT = scalargtsel, - JOIN = scalargtjoinsel - ); - - CREATE OPERATOR CLASS btree_hstore_ops - DEFAULT FOR TYPE hstore USING btree - AS - OPERATOR 1 #<# , - OPERATOR 2 #<=# , - OPERATOR 3 = , - OPERATOR 4 #>=# , - OPERATOR 5 #># , - FUNCTION 1 hstore_cmp(hstore,hstore); - - -- hash support - - CREATE OR REPLACE FUNCTION hstore_hash(hstore) - RETURNS integer - AS 'MODULE_PATHNAME','hstore_hash' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OPERATOR CLASS hash_hstore_ops - DEFAULT FOR TYPE hstore USING hash - AS - OPERATOR 1 = , - FUNCTION 1 hstore_hash(hstore); - - -- GiST support - - CREATE TYPE ghstore; - - CREATE OR REPLACE FUNCTION ghstore_in(cstring) - RETURNS ghstore - AS 'MODULE_PATHNAME' - LANGUAGE C STRICT IMMUTABLE; - - CREATE OR REPLACE FUNCTION ghstore_out(ghstore) - RETURNS cstring - AS 'MODULE_PATHNAME' - LANGUAGE C STRICT IMMUTABLE; - - CREATE TYPE ghstore ( - INTERNALLENGTH = -1, - INPUT = ghstore_in, - OUTPUT = ghstore_out - ); - - CREATE OR REPLACE FUNCTION ghstore_compress(internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION ghstore_decompress(internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION ghstore_penalty(internal,internal,internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION ghstore_picksplit(internal, internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION ghstore_union(internal, internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION ghstore_same(internal, internal, internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION ghstore_consistent(internal,internal,int,oid,internal) - RETURNS bool - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OPERATOR CLASS gist_hstore_ops - DEFAULT FOR TYPE hstore USING gist - AS - OPERATOR 7 @> , - OPERATOR 9 ?(hstore,text) , - OPERATOR 10 ?|(hstore,text[]) , - OPERATOR 11 ?&(hstore,text[]) , - --OPERATOR 8 <@ , - OPERATOR 13 @ , - --OPERATOR 14 ~ , - FUNCTION 1 ghstore_consistent (internal, internal, int, oid, internal), - FUNCTION 2 ghstore_union (internal, internal), - FUNCTION 3 ghstore_compress (internal), - FUNCTION 4 ghstore_decompress (internal), - FUNCTION 5 ghstore_penalty (internal, internal, internal), - FUNCTION 6 ghstore_picksplit (internal, internal), - FUNCTION 7 ghstore_same (internal, internal, internal), - STORAGE ghstore; - - -- GIN support - - CREATE OR REPLACE FUNCTION gin_extract_hstore(internal, internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION gin_extract_hstore_query(internal, internal, int2, internal, internal) - RETURNS internal - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OR REPLACE FUNCTION gin_consistent_hstore(internal, int2, internal, int4, internal, internal) - RETURNS bool - AS 'MODULE_PATHNAME' - LANGUAGE C IMMUTABLE STRICT; - - CREATE OPERATOR CLASS gin_hstore_ops - DEFAULT FOR TYPE hstore USING gin - AS - OPERATOR 7 @>, - OPERATOR 9 ?(hstore,text), - OPERATOR 10 ?|(hstore,text[]), - OPERATOR 11 ?&(hstore,text[]), - FUNCTION 1 bttextcmp(text,text), - FUNCTION 2 gin_extract_hstore(internal, internal), - FUNCTION 3 gin_extract_hstore_query(internal, internal, int2, internal, internal), - FUNCTION 4 gin_consistent_hstore(internal, int2, internal, int4, internal, internal), - STORAGE text; --- 0 ---- diff --git a/contrib/hstore/sql/hstore.sql b/contrib/hstore/sql/hstore.sql index 58a79675267aecc63ff8f50fe8bdd33ec44c567b..fb6bb59f8a0045b778d6a9bf2e72f7a036752383 100644 *** a/contrib/hstore/sql/hstore.sql --- b/contrib/hstore/sql/hstore.sql *************** *** 1,12 **** ! -- ! -- first, define the datatype. Turn off echoing so that expected file ! -- does not depend on contents of hstore.sql. ! -- ! SET client_min_messages = warning; ! \set ECHO none ! \i hstore.sql ! \set ECHO all ! RESET client_min_messages; set escape_string_warning=off; --- 1,4 ---- ! CREATE EXTENSION hstore; set escape_string_warning=off; diff --git a/contrib/hstore/uninstall_hstore.sql b/contrib/hstore/uninstall_hstore.sql index a03e43164f8b315b2fccb533adc3034c0124bb07..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 *** a/contrib/hstore/uninstall_hstore.sql --- b/contrib/hstore/uninstall_hstore.sql *************** *** 1,86 **** - /* contrib/hstore/uninstall_hstore.sql */ - - -- Adjust this setting to control where the objects get dropped. - SET search_path = public; - - DROP OPERATOR CLASS gist_hstore_ops USING gist CASCADE; - DROP OPERATOR CLASS gin_hstore_ops USING gin CASCADE; - DROP OPERATOR CLASS hash_hstore_ops USING hash CASCADE; - DROP OPERATOR CLASS btree_hstore_ops USING btree CASCADE; - - DROP OPERATOR - ( hstore, text ); - DROP OPERATOR - ( hstore, text[] ); - DROP OPERATOR - ( hstore, hstore ); - DROP OPERATOR ? ( hstore, text ); - DROP OPERATOR ?& ( hstore, text[] ); - DROP OPERATOR ?| ( hstore, text[] ); - DROP OPERATOR -> ( hstore, text ); - DROP OPERATOR -> ( hstore, text[] ); - DROP OPERATOR || ( hstore, hstore ); - DROP OPERATOR @> ( hstore, hstore ); - DROP OPERATOR <@ ( hstore, hstore ); - DROP OPERATOR @ ( hstore, hstore ); - DROP OPERATOR ~ ( hstore, hstore ); - DROP OPERATOR => ( text, text ); - DROP OPERATOR #= ( anyelement, hstore ); - DROP OPERATOR %% ( NONE, hstore ); - DROP OPERATOR %# ( NONE, hstore ); - DROP OPERATOR = ( hstore, hstore ); - DROP OPERATOR <> ( hstore, hstore ); - DROP OPERATOR #<# ( hstore, hstore ); - DROP OPERATOR #<=# ( hstore, hstore ); - DROP OPERATOR #># ( hstore, hstore ); - DROP OPERATOR #>=# ( hstore, hstore ); - - DROP CAST (text[] AS hstore); - - DROP FUNCTION hstore_eq(hstore,hstore); - DROP FUNCTION hstore_ne(hstore,hstore); - DROP FUNCTION hstore_gt(hstore,hstore); - DROP FUNCTION hstore_ge(hstore,hstore); - DROP FUNCTION hstore_lt(hstore,hstore); - DROP FUNCTION hstore_le(hstore,hstore); - DROP FUNCTION hstore_cmp(hstore,hstore); - DROP FUNCTION hstore_hash(hstore); - DROP FUNCTION slice_array(hstore,text[]); - DROP FUNCTION slice(hstore,text[]); - DROP FUNCTION fetchval(hstore,text); - DROP FUNCTION isexists(hstore,text); - DROP FUNCTION exist(hstore,text); - DROP FUNCTION exists_any(hstore,text[]); - DROP FUNCTION exists_all(hstore,text[]); - DROP FUNCTION isdefined(hstore,text); - DROP FUNCTION defined(hstore,text); - DROP FUNCTION delete(hstore,text); - DROP FUNCTION delete(hstore,text[]); - DROP FUNCTION delete(hstore,hstore); - DROP FUNCTION hs_concat(hstore,hstore); - DROP FUNCTION hs_contains(hstore,hstore); - DROP FUNCTION hs_contained(hstore,hstore); - DROP FUNCTION tconvert(text,text); - DROP FUNCTION hstore(text,text); - DROP FUNCTION hstore(text[],text[]); - DROP FUNCTION hstore_to_array(hstore); - DROP FUNCTION hstore_to_matrix(hstore); - DROP FUNCTION hstore(record); - DROP FUNCTION hstore(text[]); - DROP FUNCTION akeys(hstore); - DROP FUNCTION avals(hstore); - DROP FUNCTION skeys(hstore); - DROP FUNCTION svals(hstore); - DROP FUNCTION each(hstore); - DROP FUNCTION populate_record(anyelement,hstore); - DROP FUNCTION ghstore_compress(internal); - DROP FUNCTION ghstore_decompress(internal); - DROP FUNCTION ghstore_penalty(internal,internal,internal); - DROP FUNCTION ghstore_picksplit(internal, internal); - DROP FUNCTION ghstore_union(internal, internal); - DROP FUNCTION ghstore_same(internal, internal, internal); - DROP FUNCTION ghstore_consistent(internal,internal,int,oid,internal); - DROP FUNCTION gin_consistent_hstore(internal, int2, internal, int4, internal, internal); - DROP FUNCTION gin_extract_hstore(internal, internal); - DROP FUNCTION gin_extract_hstore_query(internal, internal, smallint, internal, internal); - DROP FUNCTION hstore_version_diag(hstore); - - DROP TYPE hstore CASCADE; - DROP TYPE ghstore CASCADE; --- 0 ----
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers