Re: [HACKERS] getting the oid for a new tuple in a BEFORE

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: "Mikheev, Vadim" <vmikheev(at)SECTORBASE(dot)COM>
Cc: "'Markus Wagner'" <wagner(at)imsd(dot)uni-mainz(dot)de>, pgsql-general(at)postgresql(dot)org, pgsql-sql(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [HACKERS] getting the oid for a new tuple in a BEFORE
Date: 2001-09-04 15:33:30
Message-ID: 200109041533.f84FXUc09905@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers pgsql-sql

> > we need to control database changes within BEFORE triggers.
> > There is no problem with triggers called by update, but there is
> > a problem with triggers called by insert.
> >
> > We strongly need to know the oid of a newly inserted tuple.
> > In this case, we use tg_newtuple of the TriggerData structure
> > passed to thetrigger function, and its t_data -> t_oid will
> > have the value '0'.
> >
> > Using BEFORE and AFTER triggers would make our lives much harder.
> >
> > Is there any way (even hack) to get the oid the newly
> > inserted tuple will receive?
>
> Just set t_data->t_oid = newoid() - this is what backend does
> in heapam.c:heap_insert().

Does that work? Doesn't that get overwritten when the actual INSERT
happens?

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Martijn van Oosterhout 2001-09-04 15:33:40 Re: many junction tables
Previous Message Tom Lane 2001-09-04 15:30:51 Re: upgrade from 7.1.2 to 7.1.3 and uh, where are my databases?

Browse pgsql-hackers by date

  From Date Subject
Next Message Joe Conway 2001-09-04 15:37:35 Re: Bytea/Base64 encoders for libpq - interested?
Previous Message Tom Lane 2001-09-04 15:01:08 Re: Table vs. row level locks confusion

Browse pgsql-sql by date

  From Date Subject
Next Message postgresql 2001-09-06 17:11:30
Previous Message Jeff Eckermann 2001-09-04 15:10:08 Re: 2 tables, joins and same name...