From 04e401f97ff905c0dad3b3e409a43f4ac671bea2 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 29 Sep 2003 18:16:48 +0000
Subject: [PATCH] A) Fixes a bug that prevented mirroring of data on a table
 that has had a column dropped.

B) Updated the documentation for the 7.4 release.

Steven Singer
---
 contrib/dbmirror/README.dbmirror |  5 +++--
 contrib/dbmirror/pending.c       | 12 +++++++++++-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/contrib/dbmirror/README.dbmirror b/contrib/dbmirror/README.dbmirror
index f6201f7de96..48412ab2bf5 100644
--- a/contrib/dbmirror/README.dbmirror
+++ b/contrib/dbmirror/README.dbmirror
@@ -66,7 +66,7 @@ time a row inside of a table being mirrored changes.
 
 To build the trigger run  make on the "Makefile" in the DBMirror directory.
 
-Postgres-7.3 Make Instructions:
+Postgres-7.3 & 7.4  Make Instructions:
 
   If you have already run "configure" in the pgsql-server directory 
   then run "make" in the dbmirror directory to compile the trigger.
@@ -78,7 +78,7 @@ Postgres-7.1 & Postgres-7.2 Make Instructions:
 
   Run the following commands
 
-  gcc -fpic -I/usr/local/pgsql/include/server -c pending.c -DNOSCHEMAS
+  gcc -fpic -I/usr/local/pgsql/include/server -c pending.c -DNOSCHEMAS -DNODROPCOLUMN
   ld -shared -o pending.so pending.o
 
   Assuming the postgres include files are in /usr/local/pgsql/include/server.  
@@ -236,6 +236,7 @@ RedHat Linux 7.1 & 6.2
 Mandrake Linux 8.0(Limited Testing)
  -Postgres 7.2
  -Postgres 7.3
+ -Postgres 7.4
  -Perl 5.6
 
 
diff --git a/contrib/dbmirror/pending.c b/contrib/dbmirror/pending.c
index cf00276a8f1..110a6308dc8 100644
--- a/contrib/dbmirror/pending.c
+++ b/contrib/dbmirror/pending.c
@@ -1,6 +1,6 @@
 /****************************************************************************
  * pending.c
- * $Id: pending.c,v 1.13 2003/08/04 00:43:10 momjian Exp $
+ * $Id: pending.c,v 1.14 2003/09/29 18:16:48 momjian Exp $
  *
  * This file contains a trigger for Postgresql-7.x to record changes to tables
  * to a pending table for mirroring.
@@ -437,6 +437,16 @@ packageData(HeapTuple tTupleData, TupleDesc tTupleDesc,
 				continue;
 			}
 		}						/* KeyUsage!=ALL */
+#ifndef  NODROPCOLUMN
+		if(tTupleDesc->attrs[iColumnCounter-1]->attisdropped)
+		  {
+		    /**
+		     * This column has been dropped.
+		     * Do not mirror it.
+		     */
+		    continue;
+		  }
+#endif
 		cpFieldName = DatumGetPointer(NameGetDatum(&tTupleDesc->attrs
 										 [iColumnCounter - 1]->attname));
 #if defined DEBUG_OUTPUT
-- 
GitLab