--- rserv-cvs-current.c	2003-08-06 01:07:47.000000000 +0200
+++ rserv.c	2003-08-06 00:36:40.000000000 +0200
@@ -49,7 +49,7 @@
 	char	   *key;
 	char	   *okey;
 	char	   *newkey = NULL;
-	int			deleted;
+	int			deleted, inserted, updated;
 	char		sql[8192];
 	char		outbuf[8192];
 	char		oidbuf[64];
@@ -87,8 +87,13 @@
 	deleted = (TRIGGER_FIRED_BY_DELETE(CurrentTriggerData->tg_event)) ?
 		1 : 0;
 
-	if (TRIGGER_FIRED_BY_UPDATE(CurrentTriggerData->tg_event))
+	inserted = (TRIGGER_FIRED_BY_INSERT(CurrentTriggerData->tg_event)) ? 1 : 0;
+
+	updated = 0;
+	if (TRIGGER_FIRED_BY_UPDATE(CurrentTriggerData->tg_event)) {
+		updated = 1;
 		newtuple = CurrentTriggerData->tg_newtuple;
+	}
 
 #ifndef PG_FUNCTION_INFO_V1
 
@@ -137,8 +142,8 @@
 		okey = key;
 
 	snprintf(sql, 8192, "update _RSERV_LOG_ set logid = %d, logtime = now(), "
-			 "deleted = %d where reloid = %u and key = '%s'",
-			 GetCurrentTransactionId(), deleted, rel->rd_id, okey);
+			"insert = %d, update = %d, delete = %d where reloid = %u and key = '%s'",
+			GetCurrentTransactionId(), inserted, updated, deleted, rel->rd_id, okey);
 
 	if (debug)
 		elog(DEBUG4, "sql: %s", sql);
@@ -161,10 +166,10 @@
 	else if (SPI_processed == 0)
 	{
 		snprintf(sql, 8192, "insert into _RSERV_LOG_ "
-				 "(reloid, logid, logtime, deleted, key) "
-				 "values (%u, %d, now(), %d, '%s')",
+				"(reloid, logid, logtime, insert, update, delete, key) "
+				"values (%u, %d, now(), %d, %d, %d, '%s')",
 				 rel->rd_id, GetCurrentTransactionId(),
-				 deleted, okey);
+				inserted, updated, deleted, okey);
 
 		if (debug)
 			elog(DEBUG4, "sql: %s", sql);
@@ -188,9 +193,9 @@
 			okey = newkey;
 
 		snprintf(sql, 8192, "insert into _RSERV_LOG_ "
-				 "(reloid, logid, logtime, deleted, key) "
-				 "values (%u, %d, now(), 0, '%s')",
-				 rel->rd_id, GetCurrentTransactionId(), okey);
+				 "(reloid, logid, logtime, insert, update, deleted, key) "
+				 "values (%u, %d, now(), %d, %d, 0, '%s')",
+				 rel->rd_id, GetCurrentTransactionId(), inserted, updated, okey);
 
 		if (debug)
 			elog(DEBUG4, "sql: %s", sql);
