--- lib/rserv.c 2003/08/06 16:14:53 1.3 +++ lib/rserv.c 2003/10/28 18:43:15 1.4 @@ -3,10 +3,10 @@ * (c) 2000 Vadim Mikheev, PostgreSQL Inc. */ -#include "executor/spi.h" /* this is what you need to work with SPI */ +#include "executor/spi.h" /* this is what you need to work with SPI */ #include "commands/trigger.h" /* -"- and triggers */ -#include "utils/tqual.h" /* -"- and SnapshotData */ -#include /* tolower () */ +#include "utils/tqual.h" /* -"- and SnapshotData */ +#include /* tolower () */ #ifdef PG_FUNCTION_INFO_V1 #define CurrentTriggerData ((TriggerData *) fcinfo->context) @@ -54,6 +54,7 @@ char outbuf[8192]; char oidbuf[64]; int ret; + int server; /* Called by trigger manager ? */ if (!CurrentTriggerData) @@ -69,10 +70,11 @@ nargs = trigger->tgnargs; args = trigger->tgargs; - if (nargs != 1) /* odd number of arguments! */ - elog(ERROR, "_rserv_log_: need in *one* argument"); + if (nargs != 2) /* odd number of arguments! */ + elog(ERROR, "_rserv_log_: need in *two* arguments, key number and server number"); keynum = atoi(args[0]); + server = atoi(args[1]); if (keynum < 0 && keynum != ObjectIdAttributeNumber) elog(ERROR, "_rserv_log_: invalid keynum %d", keynum); @@ -152,10 +154,10 @@ else if (SPI_processed == 0) { snprintf(sql, 8192, "insert into _RSERV_LOG_ " - "(reloid, logid, logtime, insert, update, delete, key) " - "values (%u, %d, now(), %d, %d, %d, '%s')", + "(reloid, logid, logtime, insert, update, delete, key, server) " + "values (%u, %d, now(), %d, %d, %d, '%s', %d)", rel->rd_id, GetCurrentTransactionId(), - inserted, updated, deleted, okey); + inserted, updated, deleted, okey, server); if (debug) elog(DEBUG3, "sql: %s", sql); @@ -177,9 +179,9 @@ okey = newkey; snprintf(sql, 8192, "insert into _RSERV_LOG_ " - "(reloid, logid, logtime, insert, update, deleted, key) " - "values (%u, %d, now(), %d, %d, 0, '%s')", - rel->rd_id, GetCurrentTransactionId(), inserted, updated, okey); + "(reloid, logid, logtime, insert, update, deleted, key, server) " + "values (%u, %d, now(), %d, %d, 0, '%s', %d)", + rel->rd_id, GetCurrentTransactionId(), inserted, updated, okey, server); if (debug) elog(DEBUG3, "sql: %s", sql);