On 10-11-18 08:11 AM, Jaime Casanova wrote:
On Wed, Nov 17, 2010 at 3:14 PM, Jaime Casanova<[email protected]>  wrote:
On Wed, Nov 17, 2010 at 11:07 AM, Steve Singer<[email protected]>  wrote:

Other than that I am not aware of any issues 1.2 will have with 9.0.  I
haven't done much testing of 1.2 with 9.0 (have others?) but while I was
testing 2.0.x against 9.0 betas I don't recall seeing anything that
needed back-porting.



mmm... well, i have postgresql 9.0.1 installed on a node (this was
installed via the yum repository) and because the repo have 2.0.4 and
i don't want to kill my existing slony installation so i'm compiling
1.2.21 and get this error:


once i solved this, i encounter another problem when trying to store
the node with 9.0... it told me that it can't open the xxid.v84.sql
file... i think that datatype isn't used anymore so it shouldn't be
looking for that file at al... right?


This is with the tip of REL_1_2_STABLE right?

1.2 still uses xxid, (2.0 does not).

That change to add 8.4/9.0 compatibility is missing somethings (a copy of the xxid.v84.sql).

I propose the following patch for 1.2


>From 4f4ea8d4255e5139ba39512b146efba7533c00c8 Mon Sep 17 00:00:00 2001
From: Steve Singer <[email protected]>
Date: Thu, 18 Nov 2010 08:46:27 -0500
Subject: [PATCH] Adding .sql files for .v84
 commit 0d1781229fd3cc6a2abac083174166945d08ed7f  did not
 update xxid and introduce a 1.2 base_funcs file for v.84
 even thought it brought over a 8.4 compatibility mode

---
 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 @namesp...@."xxidin"(cstring) RETURNS @namesp...@."xxid"
+	AS '$libdir/xxid', '_Slony_I_xxidin'
+	LANGUAGE C STRICT;
+CREATE FUNCTION @namesp...@."xxidout"(@namesp...@."xxid") RETURNS cstring
+	AS '$libdir/xxid', '_Slony_I_xxidout'
+	LANGUAGE C STRICT;
+
+
+--
+-- The data type itself
+--
+CREATE TYPE @namesp...@."xxid" (
+	INPUT = @namesp...@."xxidin",
+	OUTPUT = @namesp...@."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 @[email protected])
+	WITHOUT FUNCTION AS IMPLICIT;
+CREATE CAST (@[email protected] AS xid)
+	WITHOUT FUNCTION AS IMPLICIT;
+
+
+--
+-- Comparision functions for the new datatype
+--
+CREATE FUNCTION @namesp...@."xxideq"(@namesp...@."xxid", @namesp...@."xxid") RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxideq'
+	LANGUAGE C;
+CREATE FUNCTION @namesp...@."xxidne"(@namesp...@."xxid", @namesp...@."xxid") RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxidne'
+	LANGUAGE C;
+CREATE FUNCTION @namesp...@."xxidlt"(@namesp...@."xxid", @namesp...@."xxid") RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxidlt'
+	LANGUAGE C;
+CREATE FUNCTION @namesp...@."xxidle"(@namesp...@."xxid", @namesp...@."xxid") RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxidle'
+	LANGUAGE C;
+CREATE FUNCTION @namesp...@."xxidgt"(@namesp...@."xxid", @namesp...@."xxid") RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxidgt'
+	LANGUAGE C;
+CREATE FUNCTION @namesp...@."xxidge"(@namesp...@."xxid", @namesp...@."xxid") RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxidge'
+	LANGUAGE C;
+CREATE FUNCTION @namesp...@."btxxidcmp"(@namesp...@."xxid", @namesp...@."xxid") RETURNS int4
+	AS '$libdir/xxid', '_Slony_I_btxxidcmp'
+	LANGUAGE C;
+CREATE FUNCTION @[email protected]() RETURNS @namesp...@."xxid"
+	AS '$libdir/xxid', '_Slony_I_getCurrentXid'
+	LANGUAGE C;
+CREATE FUNCTION @[email protected]() RETURNS @namesp...@."xxid"
+	AS '$libdir/xxid', '_Slony_I_getMinXid'
+	LANGUAGE C;
+CREATE FUNCTION @[email protected]() RETURNS @namesp...@."xxid"
+	AS '$libdir/xxid', '_Slony_I_getMaxXid'
+	LANGUAGE C;
+
+
+--
+-- Operators on these comparision functions
+--
+CREATE OPERATOR < (
+	PROCEDURE = @namesp...@."xxidlt",
+	LEFTARG = @namesp...@."xxid",
+	RIGHTARG = @namesp...@."xxid",
+	COMMUTATOR = >, NEGATOR = >=,
+	RESTRICT = scalarltsel, JOIN = scalarltjoinsel
+);
+CREATE OPERATOR = (
+	PROCEDURE = @namesp...@."xxideq",
+	LEFTARG = @namesp...@."xxid",
+	RIGHTARG = @namesp...@."xxid",
+	COMMUTATOR = =, NEGATOR = <>,
+	RESTRICT = eqsel, JOIN = eqjoinsel,
+	SORT1 = <, SORT2 = <
+);
+CREATE OPERATOR <> (
+	PROCEDURE = @namesp...@."xxidne",
+	LEFTARG = @namesp...@."xxid",
+	RIGHTARG = @namesp...@."xxid",
+	COMMUTATOR = <>, NEGATOR = =,
+	RESTRICT = neqsel, JOIN = neqjoinsel
+);
+CREATE OPERATOR > (
+	PROCEDURE = @namesp...@."xxidgt",
+	LEFTARG = @namesp...@."xxid",
+	RIGHTARG = @namesp...@."xxid",
+	COMMUTATOR = <, NEGATOR = <=,
+	RESTRICT = scalargtsel, JOIN = scalargtjoinsel
+);
+CREATE OPERATOR <= (
+	PROCEDURE = @namesp...@."xxidle",
+	LEFTARG = @namesp...@."xxid",
+	RIGHTARG = @namesp...@."xxid",
+	COMMUTATOR = >=, NEGATOR = >,
+	RESTRICT = scalarltsel, JOIN = scalarltjoinsel
+);
+CREATE OPERATOR >= (
+	PROCEDURE = @namesp...@."xxidge",
+	LEFTARG = @namesp...@."xxid",
+	RIGHTARG = @namesp...@."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 @namesp...@."xxid_ops"
+	DEFAULT FOR TYPE @namesp...@."xxid" USING btree AS
+	OPERATOR 1 <  (@namesp...@."xxid", @namesp...@."xxid"),
+	OPERATOR 2 <= (@namesp...@."xxid", @namesp...@."xxid"),
+	OPERATOR 3 =  (@namesp...@."xxid", @namesp...@."xxid"),
+	OPERATOR 4 >= (@namesp...@."xxid", @namesp...@."xxid"),
+	OPERATOR 5 >  (@namesp...@."xxid", @namesp...@."xxid"),
+	FUNCTION 1 @namesp...@."btxxidcmp" (@namesp...@."xxid", @namesp...@."xxid");
+
+
+--
+-- A special transaction snapshot data type for faster visibility checks
+--
+CREATE FUNCTION @namesp...@."xxid_snapshot_in"(cstring)
+RETURNS @namesp...@."xxid_snapshot"
+	AS '$libdir/xxid', '_Slony_I_xxid_snapshot_in'
+	LANGUAGE C STRICT;
+CREATE FUNCTION @namesp...@."xxid_snapshot_out"(@namesp...@."xxid_snapshot")
+RETURNS cstring
+	AS '$libdir/xxid', '_Slony_I_xxid_snapshot_out'
+	LANGUAGE C STRICT;
+
+
+--
+-- The data type itself
+--
+CREATE TYPE @namesp...@."xxid_snapshot" (
+	INPUT = @namesp...@."xxid_snapshot_in",
+	OUTPUT = @namesp...@."xxid_snapshot_out",
+	INTERNALLENGTH = variable,
+	ALIGNMENT = int4
+);
+
+
+--
+-- Special comparision functions used by the remote worker
+-- for sync chunk selection
+--
+CREATE FUNCTION @namesp...@."xxid_lt_snapshot"(
+		@namesp...@."xxid",
+		@namesp...@."xxid_snapshot")
+RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxid_lt_snapshot'
+	LANGUAGE C;
+
+CREATE FUNCTION @namesp...@."xxid_ge_snapshot"(
+		@namesp...@."xxid",
+		@namesp...@."xxid_snapshot")
+RETURNS boolean
+	AS '$libdir/xxid', '_Slony_I_xxid_ge_snapshot'
+	LANGUAGE C;
+
+
-- 
1.7.0.4

_______________________________________________
Slony1-general mailing list
[email protected]
http://lists.slony.info/mailman/listinfo/slony1-general

Reply via email to