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