Re: modifying new tuple on insert in c trigger - Mailing list pgsql-general

From Damjan Pipan
Subject Re: modifying new tuple on insert in c trigger
Date
Msg-id 001d01c295f0$c8b5c300$6700010a@valhala
Whole thread Raw
In response to modifying new tuple on insert in c trigger  ("Damjan Pipan" <damjan.pipan@xlab.si>)
List pgsql-general
Thanks for the help, but I have solved the problem already.

The problem was that I tried to do
char *a = DatumGetCString(SPI_getbinval(...)) for a varchar field
and it did not work. I'm using now SPI_getvalue

Damjan

----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Damjan Pipan" <damjan.pipan@xlab.si>
Cc: <pgsql-general@postgresql.org>
Sent: Wednesday, November 27, 2002 4:57 AM
Subject: Re: [GENERAL] modifying new tuple on insert in c trigger


> "Damjan Pipan" <damjan.pipan@xlab.si> writes:
> > I'm trying to write a c trigger function which would change an
> > attribute of tuple being inserted. I have read this value
> > from some other table and now I have a problem, because
> > even if I change the tuple with SPI_modifytuple and return
> > modified tuple it does not show in db (it did not change the tuple)
> > but tuple is inserted.
>
> Before groveling through the C code ... did you declare the trigger
> as BEFORE or AFTER?  Only BEFORE triggers get to change the inserted
> tuple.
>
> Also, I think the "r" array needs to contain 'r' not ' ' at the
> positions where you want to replace columns.
>
> regards, tom lane
>
>


pgsql-general by date:

Previous
From: Jeff Sacksteder
Date:
Subject: null date comparison
Next
From: 史绪良
Date:
Subject: consultation!