Re: [DBmirror Issue] recordchange() dies in packageData unless

Поиск
Список
Период
Сортировка
От Steven Singer
Тема Re: [DBmirror Issue] recordchange() dies in packageData unless
Дата
Msg-id Pine.LNX.4.33.0209232040340.14610-100000@pcNavYkfAdm1.ykf.navtechinc.com
обсуждение исходный текст
Ответ на [DBmirror Issue] recordchange() dies in packageData unless there is aPRIMARY KEY on DELETE and UPDATEs.  ("Rajesh Kumar Mallah." <mallah@trade-india.com>)
Ответы Re: [DBmirror Issue] recordchange() dies in packageData unless
Re: [DBmirror Issue] recordchange() dies in packageData unless
Список pgsql-admin
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);





--
Steven Singer                                       ssinger@navtechinc.com
Aircraft Performance Systems                Phone:  519-747-1170 ext 282
Navtech Systems Support Inc.                AFTN:   CYYZXNSX SITA: YYZNSCR
Waterloo, Ontario                           ARINC:  YKFNSCR


В списке pgsql-admin по дате отправления:

Предыдущее
От: Lucas Madar
Дата:
Сообщение: Problem with bulk inserts
Следующее
От: "Waruna Geekiyanage"
Дата:
Сообщение: Sub SELECTS