Wed May 9 06:39:18 PDT 2007
- Previous message: [Slony1-commit] slony1-www/content news.txt
- Next message: [Slony1-commit] slony1-engine/src/xxid xxid.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /home/cvsd/slony1/slony1-engine/src/xxid
In directory main.slony.info:/tmp/cvs-serv11860
Modified Files:
xxid.c
Log Message:
Fix the xxid_snapshot for 8.3's packed varlena headers.
Jan
Index: xxid.c
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/src/xxid/xxid.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** xxid.c 22 Jun 2006 14:14:42 -0000 1.12
--- xxid.c 9 May 2007 13:39:16 -0000 1.13
***************
*** 24,27 ****
--- 24,37 ----
#endif
+ #ifndef SET_VARSIZE
+ #define SET_VARSIZE(PTR,len) (*((uint32 *)(PTR)) = (len) & 0x3FFFFFFF)
+ #endif
+ #ifndef VARDATA_ANY
+ #define VARDATA_ANY(PTR) VARDATA(PTR)
+ #endif
+ #ifndef PG_DETOAST_DATUM_PACKED
+ #define PG_DETOAST_DATUM_PACKED(X) PG_DETOAST_DATUM(X)
+ #endif
+
#ifndef PG_GETARG_TRANSACTIONID
#define PG_GETARG_TRANSACTIONID(n) DatumGetTransactionId(PG_GETARG_DATUM(n))
***************
*** 34,38 ****
typedef struct
{
- int32 varsz;
TransactionId xmin;
TransactionId xmax;
--- 44,47 ----
***************
*** 261,264 ****
--- 270,274 ----
TransactionId xmin;
TransactionId xmax;
+ void *result;
xxid_snapshot *snap;
int size;
***************
*** 318,323 ****
size = offsetof(xxid_snapshot, xip) + sizeof(TransactionId) * a_used;
! snap = (xxid_snapshot *) palloc(size);
! snap->varsz = size;
snap->xmin = xmin;
snap->xmax = xmax;
--- 328,334 ----
size = offsetof(xxid_snapshot, xip) + sizeof(TransactionId) * a_used;
! result = (void *) palloc(size + VARHDRSZ);
! SET_VARSIZE(result, size + VARHDRSZ);
! snap = (xxid_snapshot *) VARDATA(result);
snap->xmin = xmin;
snap->xmax = xmax;
***************
*** 326,330 ****
memcpy(&(snap->xip[0]), xip, sizeof(TransactionId) * a_used);
! PG_RETURN_POINTER(snap);
}
--- 337,341 ----
memcpy(&(snap->xip[0]), xip, sizeof(TransactionId) * a_used);
! PG_RETURN_POINTER(result);
}
***************
*** 336,340 ****
_Slony_I_xxid_snapshot_out(PG_FUNCTION_ARGS)
{
! xxid_snapshot *snap = (xxid_snapshot *) PG_GETARG_VARLENA_P(0);
char *str = palloc(28 + snap->nxip * 13);
--- 347,351 ----
_Slony_I_xxid_snapshot_out(PG_FUNCTION_ARGS)
{
! xxid_snapshot *snap = (xxid_snapshot *) VARDATA_ANY(PG_DETOAST_DATUM_PACKED((PG_GETARG_DATUM(0))));
char *str = palloc(28 + snap->nxip * 13);
***************
*** 364,368 ****
{
TransactionId value = PG_GETARG_TRANSACTIONID(0);
! xxid_snapshot *snap = (xxid_snapshot *) PG_GETARG_VARLENA_P(1);
int i;
--- 375,379 ----
{
TransactionId value = PG_GETARG_TRANSACTIONID(0);
! xxid_snapshot *snap = (xxid_snapshot *) VARDATA_ANY(PG_DETOAST_DATUM_PACKED((PG_GETARG_DATUM(1))));
int i;
***************
*** 390,394 ****
{
TransactionId value = PG_GETARG_TRANSACTIONID(0);
! xxid_snapshot *snap = (xxid_snapshot *) PG_GETARG_VARLENA_P(1);
int i;
--- 401,405 ----
{
TransactionId value = PG_GETARG_TRANSACTIONID(0);
! xxid_snapshot *snap = (xxid_snapshot *) VARDATA_ANY(PG_DETOAST_DATUM_PACKED((PG_GETARG_DATUM(1))));
int i;
- Previous message: [Slony1-commit] slony1-www/content news.txt
- Next message: [Slony1-commit] slony1-engine/src/xxid xxid.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list