Steve Singer ssinger at ca.afilias.info
Thu Nov 18 05:46:27 PST 2010
---
 src/backend/Makefile            |    7 ++-
 src/backend/slony1_base.v84.sql |   12 +++
 src/xxid/Makefile               |    3 +-
 src/xxid/xxid.v84.sql           |  185 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 205 insertions(+), 2 deletions(-)
 create mode 100644 src/backend/slony1_base.v84.sql
 create mode 100644 src/xxid/xxid.v84.sql

diff --git a/src/backend/Makefile b/src/backend/Makefile
index 053b9f5..8b14eb3 100644
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -31,6 +31,9 @@ FUNCS_80		= slony1_funcs.v80.sql
 BASE_81			= slony1_base.v81.sql
 FUNCS_81		= slony1_funcs.v81.sql
 
+BASE_84			= slony1_base.v84.sql
+FUNCS_84		= slony1_funcs.v84.sql
+
 SQL_NAMES =				\
 	$(BASE_COMMON)		\
 	$(FUNCS_COMMON)		\
@@ -39,7 +42,9 @@ SQL_NAMES =				\
 	$(BASE_80)			\
 	$(FUNCS_80)			\
 	$(BASE_81)			\
-	$(FUNCS_81)
+	$(FUNCS_81) \
+	$(BASE_84) \
+	$(FUNCS_84)
 
 DISTFILES = Makefile README README.events $(wildcard *.sql) $(wildcard *.in) $(wildcard *.c)
 
diff --git a/src/backend/slony1_base.v84.sql b/src/backend/slony1_base.v84.sql
new file mode 100644
index 0000000..0ccb1c1
--- /dev/null
+++ b/src/backend/slony1_base.v84.sql
@@ -0,0 +1,12 @@
+-- ----------------------------------------------------------------------
+-- slony1_base.v84.sql
+--
+--    Version 8.4 specific parts of the basic replication schema.
+--
+--	Copyright (c) 2003-2009, PostgreSQL Global Development Group
+--	Author: Jan Wieck, Afilias USA INC.
+--
+-- 
+-- ----------------------------------------------------------------------
+
+
diff --git a/src/xxid/Makefile b/src/xxid/Makefile
index f6be086..49b2a11 100644
--- a/src/xxid/Makefile
+++ b/src/xxid/Makefile
@@ -20,7 +20,8 @@ NAME		= xxid
 SQL_NAME74	= $(NAME).v74.sql
 SQL_NAME80	= $(NAME).v80.sql
 SQL_NAME81	= $(NAME).v81.sql
-SQL_NAMES	= $(SQL_NAME74) $(SQL_NAME80) $(SQL_NAME81)
+SQL_NAME84  = $(NAME).v84.sql
+SQL_NAMES	= $(SQL_NAME74) $(SQL_NAME80) $(SQL_NAME81) $(SQL_NAME84)
 GENSQLNAMES = $(filter-out $(SQL_NAME74), $(SQL_NAMES))
 
 SO_OBJS		= xxid.o $(WIN32RES)
diff --git a/src/xxid/xxid.v84.sql b/src/xxid/xxid.v84.sql
new file mode 100644
index 0000000..653c036
--- /dev/null
+++ b/src/xxid/xxid.v84.sql
@@ -0,0 +1,185 @@
+-- ----------
+-- xxid.v74.sql.in
+--
+--	SQL script for loading the transaction ID compatible datatype 
+--
+--	Copyright (c) 2003-2009, PostgreSQL Global Development Group
+--	Author: Jan Wieck, Afilias USA INC.
+--
+-- 
+-- ----------
+
+--
+-- Type specific input and output functions
+--
+CREATE FUNCTION @NAMESPACE at ."xxidin"(cstring) RETURNS @NAMESPACE at ."xxid"
+	AS '$libdir/xxid', '_Slony_I_xxidin'
+	LANGUAGE C STRICT;
+CREATE FUNCTION @NAMESPACE at ."xxidout"(@NAMESPACE at ."xxid") RETURNS cstring
+	AS '$libdir/xxid', '_Slony_I_xxidout'
+	LANGUAGE C STRICT;
+
+
+--
+-- 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 STRICT;
+CREATE FUNCTION @NAMESPACE at ."xxid_snapshot_out"(@NAMESPACE at ."xxid_snapshot")
+RETURNS cstring
+	AS '$libdir/xxid', '_Slony_I_xxid_snapshot_out'
+	LANGUAGE C STRICT;
+
+
+--
+-- 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;
+
+
-- 
1.7.0.4


--------------010800000900040405030100--


More information about the Slony1-general mailing list