Chris Browne cbbrowne at lists.slony.info
Wed Jun 27 08:53:13 PDT 2007
Update of /home/cvsd/slony1/slony1-engine/src/xxid
In directory main.slony.info:/tmp/cvs-serv9192

Modified Files:
	Makefile 
Added Files:
	xxid.v83.sql 
Log Message:
Introduce v83 changes - xxid.v83.sql becomes the "base" SQL script
version in Slony-I 2.0


--- NEW FILE: xxid.v83.sql ---
-- ----------
-- xxid.v74.sql.in
--
--	SQL script for loading the transaction ID compatible datatype 
--
--	Copyright (c) 2003-2004, PostgreSQL Global Development Group
--	Author: Jan Wieck, Afilias USA INC.
--
-- $Id: xxid.v83.sql,v 1.1 2007-06-27 15:53:11 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 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;



Index: Makefile
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/src/xxid/Makefile,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** Makefile	7 Feb 2007 19:17:50 -0000	1.27
--- Makefile	27 Jun 2007 15:53:11 -0000	1.28
***************
*** 18,26 ****
  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)
! GENSQLNAMES = $(filter-out $(SQL_NAME74), $(SQL_NAMES))
  
  SO_OBJS		= xxid.o $(WIN32RES)
--- 18,24 ----
  NAME		= xxid
  
! SQL_NAME83	= $(NAME).v83.sql
! SQL_NAMES	= $(SQL_NAME83)
! GENSQLNAMES = $(filter-out $(SQL_NAME83), $(SQL_NAMES))
  
  SO_OBJS		= xxid.o $(WIN32RES)
***************
*** 30,41 ****
  	$(SQL_NAMES)		\
  
! DISTFILES = Makefile xxid.c xxid.v74.sql
  
  all:	$(ALL)
  
! $(SQL_NAME80):	$(SQL_NAME74)
! 	cp $< $@
! 
! $(SQL_NAME81):	$(SQL_NAME80)
  	cp $< $@
  
--- 28,36 ----
  	$(SQL_NAMES)		\
  
! DISTFILES = Makefile xxid.c xxid.v83.sql
  
  all:	$(ALL)
  
! #$(SQL_NAME84):	$(SQL_NAME83)
  	cp $< $@
  



More information about the Slony1-commit mailing list