head 1.10; access; symbols UUID_1_6_2:1.9 UUID_1_6_1:1.9 UUID_1_6_0:1.9 UUID_1_5_1:1.5 UUID_1_5_0:1.4 UUID_1_4_2:1.3 UUID_1_4_1:1.3 UUID_1_4_0:1.3; locks; strict; comment @# @; 1.10 date 2008.07.05.12.58.23; author rse; state dead; branches; next 1.9; commitid XLXN7vUmABwPcC9t; 1.9 date 2007.01.01.18.14.58; author rse; state Exp; branches; next 1.8; commitid jOXiIO8S8v7xFP0s; 1.8 date 2006.11.20.20.10.28; author rse; state Exp; branches; next 1.7; commitid BSyKVK7dv6cRErVr; 1.7 date 2006.11.20.20.00.52; author rse; state Exp; branches; next 1.6; commitid YDss5FgzqS0BBrVr; 1.6 date 2006.11.20.19.58.22; author rse; state Exp; branches; next 1.5; commitid FEXdnciNyILIArVr; 1.5 date 2006.07.31.12.43.32; author rse; state Exp; branches; next 1.4; commitid 3JJtE9S2buQJM0Hr; 1.4 date 2006.05.11.18.32.07; author rse; state Exp; branches; next 1.3; commitid gzSMscuqOSaIjDwr; 1.3 date 2006.01.13.06.44.34; author rse; state Exp; branches; next 1.2; commitid hYfQc9JIMh4bcphr; 1.2 date 2006.01.12.21.01.02; author rse; state Exp; branches; next 1.1; commitid DbHe6qed04w2Ylhr; 1.1 date 2006.01.12.20.00.23; author rse; state Exp; branches; next ; commitid QzM3BRD6JxgeDlhr; desc @@ 1.10 log @remove OSSP uuid from CVS -- it is now versioned controlled in a Monotone repository @ text @-- -- OSSP uuid - Universally Unique Identifier -- Copyright (c) 2004-2007 Ralf S. Engelschall -- Copyright (c) 2004-2007 The OSSP Project -- -- This file is part of OSSP uuid, a library for the generation -- of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/ -- -- Permission to use, copy, modify, and distribute this software for -- any purpose with or without fee is hereby granted, provided that -- the above copyright notice and this permission notice appear in all -- copies. -- -- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -- IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR -- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -- USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -- SUCH DAMAGE. -- -- uuid.sql: PostgreSQL Binding (SQL part) -- -- -- prolog -- SET search_path TO public; SET client_min_messages TO warning; DROP FUNCTION uuid_in(CSTRING) CASCADE; DROP FUNCTION uuid_out(uuid) CASCADE; DROP FUNCTION uuid_recv(INTERNAL) CASCADE; DROP FUNCTION uuid_send(uuid) CASCADE; DROP TYPE uuid CASCADE; DROP CAST (CSTRING AS uuid) CASCADE; DROP CAST (uuid AS CSTRING) CASCADE; DROP FUNCTION uuid(CSTRING) CASCADE; DROP FUNCTION uuid(INTEGER) CASCADE; DROP FUNCTION uuid(INTEGER, CSTRING, CSTRING) CASCADE; DROP FUNCTION uuid_eq(uuid) CASCADE; DROP FUNCTION uuid_ne(uuid) CASCADE; DROP FUNCTION uuid_lt(uuid, uuid) CASCADE; DROP FUNCTION uuid_gt(uuid, uuid) CASCADE; DROP FUNCTION uuid_le(uuid, uuid) CASCADE; DROP FUNCTION uuid_ge(uuid, uuid) CASCADE; DROP OPERATOR =(uuid,uuid) CASCADE; DROP OPERATOR <>(uuid,uuid) CASCADE; DROP OPERATOR <(uuid,uuid) CASCADE; DROP OPERATOR >(uuid,uuid) CASCADE; DROP OPERATOR <=(uuid,uuid) CASCADE; DROP OPERATOR >=(uuid,uuid) CASCADE; DROP FUNCTION uuid_hash(uuid) CASCADE; DROP FUNCTION uuid_cmp(uuid, uuid) CASCADE; DROP OPERATOR CLASS uuid_ops USING hash CASCADE; DROP OPERATOR CLASS uuid_ops USING btree CASCADE; BEGIN; -- -- the UUID data type -- CREATE FUNCTION uuid_in(CSTRING) RETURNS uuid STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_in'; CREATE FUNCTION uuid_out(uuid) RETURNS CSTRING STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_out'; CREATE FUNCTION uuid_recv(INTERNAL) RETURNS uuid STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_recv'; CREATE FUNCTION uuid_send(uuid) RETURNS BYTEA STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_send'; CREATE TYPE uuid ( INPUT = uuid_in, -- for SQL input OUTPUT = uuid_out, -- for SQL output RECEIVE = uuid_recv, -- for DB input SEND = uuid_send, -- for DB output DEFAULT = 'uuid(1)', INTERNALLENGTH = 16, ALIGNMENT = char ); COMMENT ON TYPE uuid IS 'UUID type'; -- CREATE CAST (CSTRING AS uuid) -- WITH FUNCTION uuid_in(CSTRING) AS ASSIGNMENT; -- -- CREATE CAST (uuid AS CSTRING) -- WITH FUNCTION uuid_out(uuid) AS ASSIGNMENT; -- -- the UUID constructor function -- CREATE FUNCTION uuid(CSTRING) RETURNS uuid IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_in'; CREATE FUNCTION uuid(INTEGER) RETURNS uuid VOLATILE CALLED ON NULL INPUT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_make'; CREATE FUNCTION uuid(INTEGER, CSTRING, CSTRING) RETURNS uuid VOLATILE CALLED ON NULL INPUT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_make'; -- -- the UUID operators -- CREATE FUNCTION uuid_eq(uuid, uuid) RETURNS BOOL IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_eq'; CREATE FUNCTION uuid_ne(uuid, uuid) RETURNS BOOL IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_ne'; CREATE FUNCTION uuid_lt(uuid, uuid) RETURNS BOOL IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_lt'; CREATE FUNCTION uuid_gt(uuid, uuid) RETURNS BOOL IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_gt'; CREATE FUNCTION uuid_le(uuid, uuid) RETURNS BOOL IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_le'; CREATE FUNCTION uuid_ge(uuid, uuid) RETURNS BOOL IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_ge'; CREATE OPERATOR = ( leftarg = uuid, rightarg = uuid, negator = <>, procedure = uuid_eq ); CREATE OPERATOR <> ( leftarg = uuid, rightarg = uuid, negator = =, procedure = uuid_ne ); CREATE OPERATOR < ( leftarg = uuid, rightarg = uuid, commutator = >, negator = >=, procedure = uuid_lt ); CREATE OPERATOR > ( leftarg = uuid, rightarg = uuid, commutator = <, negator = <=, procedure = uuid_gt ); CREATE OPERATOR <= ( leftarg = uuid, rightarg = uuid, commutator = >=, negator = >, procedure = uuid_le ); CREATE OPERATOR >= ( leftarg = uuid, rightarg = uuid, commutator = <=, negator = <, procedure = uuid_ge ); -- -- the UUID support for indexing -- CREATE FUNCTION uuid_hash(uuid) RETURNS INTEGER IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_hash'; CREATE FUNCTION uuid_cmp(uuid, uuid) RETURNS INTEGER IMMUTABLE STRICT LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_cmp'; CREATE OPERATOR CLASS uuid_ops DEFAULT FOR TYPE uuid USING hash AS OPERATOR 1 =, -- 1: equal FUNCTION 1 uuid_hash(uuid); CREATE OPERATOR CLASS uuid_ops DEFAULT FOR TYPE uuid USING btree AS OPERATOR 1 <, -- 1: less than OPERATOR 2 <=, -- 2: less than or equal OPERATOR 3 =, -- 3: equal OPERATOR 4 >=, -- 4: greater than or equal OPERATOR 5 >, -- 5: greater than FUNCTION 1 uuid_cmp(uuid, uuid); -- -- epilog -- COMMIT; @ 1.9 log @Adjust copyright messages for new year 2007. @ text @@ 1.8 log @Disable PostgreSQL "(CSTRING AS uuid)" and "(uuid AS CSTRING)" CASTS as PostgreSQL 8.2 and higher explicitly disallow this. Submitted by: David Wheeler @ text @d3 2 a4 2 -- Copyright (c) 2004-2006 Ralf S. Engelschall -- Copyright (c) 2004-2006 The OSSP Project @ 1.7 log @Fix PostgreSQL bindings by mapping the correct DSO symbol to the functions "uuid_send" and "uuid_recv". @ text @d106 5 a110 5 CREATE CAST (CSTRING AS uuid) WITH FUNCTION uuid_in(CSTRING) AS ASSIGNMENT; CREATE CAST (uuid AS CSTRING) WITH FUNCTION uuid_out(uuid) AS ASSIGNMENT; @ 1.6 log @Silence PostgreSQL processing messages Submitted by: David Wheeler @ text @d86 1 a86 1 LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_in'; d91 1 a91 1 LANGUAGE C AS 'MODULE_PATHNAME', 'pg_uuid_out'; @ 1.5 log @Use "MODULE_PATHNAME" instead of "@@MODULE_PATHNAME@@" in uuid.sql.in to be more aligned to the PostgreSQL styles. Submitted by: Simon "janus" Dassow @ text @d35 1 @ 1.4 log @- Add Hash indexing support UUID data type of PostgreSQL bindings. - Add comparison operators and B-Tree indexing support UUID data type of PostgreSQL bindings. Submitted by: Roman Neuhauser @ text @d75 1 a75 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_in'; d80 1 a80 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_out'; d85 1 a85 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_in'; d90 1 a90 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_out'; d118 1 a118 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_in'; d123 1 a123 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_make'; d128 1 a128 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_make'; d137 1 a137 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_eq'; d142 1 a142 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_ne'; d147 1 a147 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_lt'; d152 1 a152 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_gt'; d157 1 a157 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_le'; d162 1 a162 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_ge'; d217 1 a217 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_hash'; d222 1 a222 1 LANGUAGE C AS '@@MODULE_PATHNAME@@', 'pg_uuid_cmp'; @ 1.3 log @Adjust copyright messages for new year 2006. @ text @d36 29 a64 10 DROP FUNCTION uuid_in(CSTRING) CASCADE; DROP FUNCTION uuid_out(uuid) CASCADE; DROP FUNCTION uuid_recv(INTERNAL) CASCADE; DROP FUNCTION uuid_send(uuid) CASCADE; DROP TYPE uuid CASCADE; DROP FUNCTION uuid(uuid) CASCADE; DROP FUNCTION uuid_eq(uuid) CASCADE; DROP FUNCTION uuid_ne(uuid) CASCADE; DROP OPERATOR =(uuid,uuid) CASCADE; DROP OPERATOR <>(uuid,uuid) CASCADE; d105 6 d144 20 d178 60 @ 1.2 log @more dropping of existing stuff and use a transaction @ text @d3 2 a4 2 -- Copyright (c) 2004-2005 Ralf S. Engelschall -- Copyright (c) 2004-2005 The OSSP Project @ 1.1 log @Added experimental PostgreSQL bindings. @ text @d30 4 d36 12 a47 4 -- DROP FUNCTION uuid_in(CSTRING) CASCADE; -- DROP FUNCTION uuid_out(uuid) CASCADE; -- DROP FUNCTION uuid_recv(INTERNAL) CASCADE; -- DROP FUNCTION uuid_send(uuid) CASCADE; d133 6 @