pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Jim Buttafuoco <jim@contactbda.com>
To: pw <p.willis@telus.net>
To: pgsql-interfaces@postgresql.org
Subject: Re: Question about accessing current row data inside trigger
Date: Tue, 8 Mar 2005 18:27:06 -0500
Message-ID: <20050308232604.M14503@contactbda.com> (raw)
In-Reply-To: <422E2DD4.1070509@telus.net>
References: <422E2DD4.1070509@telus.net>

have you looked in the contrib directory (Postgresql 7.4.6).   I just checked and the dbmirror/pending.c looks like 
some good code to follow.

Jim



---------- Original Message -----------
From: pw <p.willis@telus.net>
To: pgsql-interfaces@postgresql.org
Sent: Tue, 08 Mar 2005 14:57:24 -0800
Subject: [INTERFACES] Question about accessing current row data inside trigger

> *previously posted this to pgsql-general*
> 
> -Hello,
> -
> -I have a trigger function written in C.
> -The trigger function is called via:
> -
> -CREATE TRIGGER after_update AFTER UPDATE ON some_table
> -   FOR EACH ROW EXECUTE PROCEDURE  my_trigger_function();
> -
> -   Since the trigger is called after each row update the actual
> -row data
> -should be available in some way to the trigger.
> -
> -	What functionality (SPI ?) do I use to use the column values -from the
> -current row in the actual trigger?
> -
> -	Does SPI_cursor_fetch automatically give me the current trigger -row or
> -do I need to query again for the proper row?
> -
> -thanks for any insight,
> -
> -Peter
> 
> I am now using :
> 
> TupleTableSlot  *t = (TupleTableSlot *) PG_GETARG_POINTER(0);
> bool isnull;
> 
> char *buffer=(char *)DatumGetPointer(GetAttributeByName(t, 
> "some_column_name", &isnull));
> 
> The pointer always comes back NULL though there is data
> in the column.
> 
> I'm still not sure this is the correct way to access
> the data from the updated row.
> 
> Is this the correct way to get a string back from
> the data in the column named 'some_column_name'?
> 
> Do I have the correct TupleTableSlot pointer?
> 
> Thanks for any insight,
> 
> Peter
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
------- End of Original Message -------




view thread (2+ messages)

Message-ID: <20050308232604.M14503@contactbda.com>
Permalink:  ../20050308232604.M14503@contactbda.com/
Also on:    postgresql.org/message-id/20050308232604.M14503@contactbda.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: jim@contactbda.com, p.willis@telus.net
  Subject: Re: Question about accessing current row data inside trigger
  In-Reply-To: <20050308232604.M14503@contactbda.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox