Hi Steven,
Your most recent version pending.c does not crashes postmaster anymore when PRIMARY KEYS are missing. Instead it raises notices and errors: tradein_clients=> BEGIN work; UPDATE iid_listing set city='DELHI testing' where list_id=23312; BEGIN NOTICE: Could not select primary index key NOTICE: Error obtaining primary key values ERROR: Operation could not be mirrored Regds Mallah. On Tuesday 24 September 2002 02:18, Steven Singer wrote: > On Mon, 23 Sep 2002, Rajesh Kumar Mallah. wrote: > > Hi > > > > Is anyone using dbmirror in production? > > We've been using it in production for sometime now and haven't been having > any problems with it. > > > I Intend to replicate a set of tables between local and remote servers. > > and plan to use dbmirror. > > The speed of replicating edits over a WAN isn't that great. > If you perform a lot of edits in a short period of time there could be a > backlog. > > > I observe that unless a table has a primary key the trigger > > recordchange() which is supposed to be attached to a replicated table > > does not works properly and causes postmaster to crash. > > dbmirror requires that all tables that you replicate have primary > keys(This should be said more explictly in the README) > > However it still should not crash(In defence it will only crash the > postmaster when you compile dbmirror in debug mode). > > The attatched patch to pending.c should prevent it from crashing the > postmaster. Let me know if it fixes the problem and I'll submit it to > pgpatches. > > > *** pending.c Mon Sep 23 20:24:04 2002 > --- /tmp/pending.c Mon Sep 23 20:23:43 2002 > *************** > *** 226,232 **** > /* pplan = SPI_saveplan(pplan); */ > cpKeyData = packageData(tTupleData, tTupleDesc, tpTrigData, > PRIMARY); > #if defined DEBUG_OUTPUT > ! elog(NOTICE, cpKeyData); > #endif > saPlanData[0] = PointerGetDatum(cpKeyData); > > --- 226,235 ---- > /* pplan = SPI_saveplan(pplan); */ > cpKeyData = packageData(tTupleData, tTupleDesc, tpTrigData, > PRIMARY); > #if defined DEBUG_OUTPUT > ! if(cpKeyData != NULL ) > ! { > ! elog(NOTICE, cpKeyData); > ! } > #endif > saPlanData[0] = PointerGetDatum(cpKeyData); -- Rajesh Kumar Mallah, Project Manager (Development) Infocom Network Limited, New Delhi phone: +91(11)6152172 (221) (L) ,9811255597 (M) Visit http://www.trade-india.com , India's Leading B2B eMarketplace. ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]