Thu Dec 14 07:40:57 PST 2006
- Previous message: [Slony1-commit] By cbbrowne: Add to slonik_build_env.pl a -schema option to by default
- Next message: [Slony1-commit] By cbbrowne: xxid makefile update - "make clean" should no longer purge
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Log Message: ----------- xxid SQL now starts with v74, not v73 Tags: ---- REL_1_2_STABLE Added Files: ----------- slony1-engine/src/xxid: xxid.v74.sql (r1.1.2.1) -------------- next part -------------- --- /dev/null +++ src/xxid/xxid.v74.sql @@ -0,0 +1,185 @@ +-- ---------- +-- xxid.v73.sql.in +-- +-- SQL script for loading the transaction ID compatible datatype +-- +-- Copyright (c) 2003-2006, PostgreSQL Global Development Group +-- Author: Jan Wieck, Afilias USA INC. +-- +-- $Id: xxid.v74.sql,v 1.1.2.1 2006/12/14 15:40:57 cbbrowne Exp $ +-- ---------- + +-- +-- Type specific input and output functions +-- +CREATE FUNCTION @NAMESPACE at ."xxidin"(cstring) RETURNS @NAMESPACE at ."xxid" + AS '$libdir/xxid', '_Slony_I_xxidin' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."xxidout"(@NAMESPACE at ."xxid") RETURNS cstring + AS '$libdir/xxid', '_Slony_I_xxidout' + LANGUAGE C; + + +-- +-- The data type itself +-- +CREATE TYPE @NAMESPACE at ."xxid" ( + INPUT = @NAMESPACE at ."xxidin", + OUTPUT = @NAMESPACE at ."xxidout", + EXTERNALLENGTH = 12, + INTERNALLENGTH = 4, + PASSEDBYVALUE, + ALIGNMENT = int4 +); + + +-- +-- Since our xxid type has special cases for values 0-3, it +-- in fact IS xid, so allow implicit type casting to and from. +-- +CREATE CAST (xid AS @NAMESPACE at .xxid) + WITHOUT FUNCTION AS IMPLICIT; +CREATE CAST (@NAMESPACE at .xxid AS xid) + WITHOUT FUNCTION AS IMPLICIT; + + +-- +-- Comparision functions for the new datatype +-- +CREATE FUNCTION @NAMESPACE at ."xxideq"(@NAMESPACE at ."xxid", @NAMESPACE at ."xxid") RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxideq' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."xxidne"(@NAMESPACE at ."xxid", @NAMESPACE at ."xxid") RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxidne' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."xxidlt"(@NAMESPACE at ."xxid", @NAMESPACE at ."xxid") RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxidlt' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."xxidle"(@NAMESPACE at ."xxid", @NAMESPACE at ."xxid") RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxidle' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."xxidgt"(@NAMESPACE at ."xxid", @NAMESPACE at ."xxid") RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxidgt' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."xxidge"(@NAMESPACE at ."xxid", @NAMESPACE at ."xxid") RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxidge' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."btxxidcmp"(@NAMESPACE at ."xxid", @NAMESPACE at ."xxid") RETURNS int4 + AS '$libdir/xxid', '_Slony_I_btxxidcmp' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at .getCurrentXid() RETURNS @NAMESPACE at ."xxid" + AS '$libdir/xxid', '_Slony_I_getCurrentXid' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at .getMinXid() RETURNS @NAMESPACE at ."xxid" + AS '$libdir/xxid', '_Slony_I_getMinXid' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at .getMaxXid() RETURNS @NAMESPACE at ."xxid" + AS '$libdir/xxid', '_Slony_I_getMaxXid' + LANGUAGE C; + + +-- +-- Operators on these comparision functions +-- +CREATE OPERATOR < ( + PROCEDURE = @NAMESPACE at ."xxidlt", + LEFTARG = @NAMESPACE at ."xxid", + RIGHTARG = @NAMESPACE at ."xxid", + COMMUTATOR = >, NEGATOR = >=, + RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); +CREATE OPERATOR = ( + PROCEDURE = @NAMESPACE at ."xxideq", + LEFTARG = @NAMESPACE at ."xxid", + RIGHTARG = @NAMESPACE at ."xxid", + COMMUTATOR = =, NEGATOR = <>, + RESTRICT = eqsel, JOIN = eqjoinsel, + SORT1 = <, SORT2 = < +); +CREATE OPERATOR <> ( + PROCEDURE = @NAMESPACE at ."xxidne", + LEFTARG = @NAMESPACE at ."xxid", + RIGHTARG = @NAMESPACE at ."xxid", + COMMUTATOR = <>, NEGATOR = =, + RESTRICT = neqsel, JOIN = neqjoinsel +); +CREATE OPERATOR > ( + PROCEDURE = @NAMESPACE at ."xxidgt", + LEFTARG = @NAMESPACE at ."xxid", + RIGHTARG = @NAMESPACE at ."xxid", + COMMUTATOR = <, NEGATOR = <=, + RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); +CREATE OPERATOR <= ( + PROCEDURE = @NAMESPACE at ."xxidle", + LEFTARG = @NAMESPACE at ."xxid", + RIGHTARG = @NAMESPACE at ."xxid", + COMMUTATOR = >=, NEGATOR = >, + RESTRICT = scalarltsel, JOIN = scalarltjoinsel +); +CREATE OPERATOR >= ( + PROCEDURE = @NAMESPACE at ."xxidge", + LEFTARG = @NAMESPACE at ."xxid", + RIGHTARG = @NAMESPACE at ."xxid", + COMMUTATOR = <=, NEGATOR = <, + RESTRICT = scalargtsel, JOIN = scalargtjoinsel +); + + +-- +-- Finally the default operator class so that we can use our +-- new data type in btree indexes. +-- +CREATE OPERATOR CLASS @NAMESPACE at ."xxid_ops" + DEFAULT FOR TYPE @NAMESPACE at ."xxid" USING btree AS + OPERATOR 1 < (@NAMESPACE at ."xxid", @NAMESPACE at ."xxid"), + OPERATOR 2 <= (@NAMESPACE at ."xxid", @NAMESPACE at ."xxid"), + OPERATOR 3 = (@NAMESPACE at ."xxid", @NAMESPACE at ."xxid"), + OPERATOR 4 >= (@NAMESPACE at ."xxid", @NAMESPACE at ."xxid"), + OPERATOR 5 > (@NAMESPACE at ."xxid", @NAMESPACE at ."xxid"), + FUNCTION 1 @NAMESPACE at ."btxxidcmp" (@NAMESPACE at ."xxid", @NAMESPACE at ."xxid"); + + +-- +-- A special transaction snapshot data type for faster visibility checks +-- +CREATE FUNCTION @NAMESPACE at ."xxid_snapshot_in"(cstring) +RETURNS @NAMESPACE at ."xxid_snapshot" + AS '$libdir/xxid', '_Slony_I_xxid_snapshot_in' + LANGUAGE C; +CREATE FUNCTION @NAMESPACE at ."xxid_snapshot_out"(@NAMESPACE at ."xxid_snapshot") +RETURNS cstring + AS '$libdir/xxid', '_Slony_I_xxid_snapshot_out' + LANGUAGE C; + + +-- +-- The data type itself +-- +CREATE TYPE @NAMESPACE at ."xxid_snapshot" ( + INPUT = @NAMESPACE at ."xxid_snapshot_in", + OUTPUT = @NAMESPACE at ."xxid_snapshot_out", + INTERNALLENGTH = variable, + ALIGNMENT = int4 +); + + +-- +-- Special comparision functions used by the remote worker +-- for sync chunk selection +-- +CREATE FUNCTION @NAMESPACE at ."xxid_lt_snapshot"( + @NAMESPACE at ."xxid", + @NAMESPACE at ."xxid_snapshot") +RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxid_lt_snapshot' + LANGUAGE C; + +CREATE FUNCTION @NAMESPACE at ."xxid_ge_snapshot"( + @NAMESPACE at ."xxid", + @NAMESPACE at ."xxid_snapshot") +RETURNS boolean + AS '$libdir/xxid', '_Slony_I_xxid_ge_snapshot' + LANGUAGE C; + +
- Previous message: [Slony1-commit] By cbbrowne: Add to slonik_build_env.pl a -schema option to by default
- Next message: [Slony1-commit] By cbbrowne: xxid makefile update - "make clean" should no longer purge
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list