Re: [DBmirror Issue] recordchange() dies in packageData unless there is a PRIMARY KEY on DELETE and UPDATEs.

Поиск
Список
Период
Сортировка
От
Тема Re: [DBmirror Issue] recordchange() dies in packageData unless there is a PRIMARY KEY on DELETE and UPDATEs.
Дата
Msg-id 48619.203.145.129.4.1032818630.squirrel@mail.trade-india.com
обсуждение исходный текст
Ответ на [DBmirror Issue] recordchange() dies in packageData unless there is aPRIMARY KEY on DELETE and UPDATEs.  ("Rajesh Kumar Mallah." <mallah@trade-india.com>)
Список pgsql-admin
Hi Steven ,

thanks for the reply and letting me know that a primary key is
essential for the replicated tables.

For your information pending.c used to crash postmaster even
when it was not in debug mode. (it was only then i defined
DEBUG_OUTPUT to see whats going on).

Thanks for the patch. But what will it say when there is no
primary key in the table?

anyway i will apply the patch and let u know.

I am using dbmirror for asynchronous replication so speen of
replication is not important.

Regards
Mallah.

> 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



-----------------------------------------
Get your free web based email at trade-india.com.
   "India's Leading B2B eMarketplace.!"
http://www.trade-india.com/



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

Предыдущее
От: "Rajesh Kumar Mallah."
Дата:
Сообщение: [DBmirror Issue] recordchange() dies in packageData unless there is aPRIMARY KEY on DELETE and UPDATEs.
Следующее
От: "Nick Fankhauser"
Дата:
Сообщение: logging queries