Re: Whats the correct way to change trigdata->tg_relation

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Charles Gomes <charlesrg(at)outlook(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Whats the correct way to change trigdata->tg_relation
Date: 2013-01-02 21:51:40
Message-ID: CA+Tgmoa6j-_fiknTUosq8vyTC6=RdW543f4ymM2jWgp=TeZBpQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Dec 28, 2012 at 1:06 PM, Charles Gomes <charlesrg(at)outlook(dot)com> wrote:
> I'm creating a simple trigger that will be called during an insert and change the destination table.
> All values are going to be preserved, just the destination table will be different.
>
> From what I see I can't modify trigdata->tg_relation.
>
> All examples use: return Datum(trigdata->tg_trigtuple); // however tg_relation does not belong there. I'm trying to avoind having to do a SPI_EXEC;
> Should I create a new heap_tuple and call heap_insert() and then Return Datum(NULL); ? Or is there another more straight forward way of doing it? Looks like if I call heap_insert I will have to update the indexes somehow.

I think you need to use SPI_EXEC. Otherwise something horrible will
probably happen.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2013-01-02 22:36:33 Re: multiple CREATE FUNCTION AS items for PLs
Previous Message Robert Haas 2013-01-02 21:45:35 Re: json api WIP patch