Re: Dissecting Tuples in C

From: "Nigel J(dot) Andrews" <nandrews(at)investsystems(dot)co(dot)uk>
To: Clay Luther <claycle(at)cisco(dot)com>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: Dissecting Tuples in C
Date: 2003-06-26 20:58:32
Message-ID: Pine.LNX.4.21.0306262152010.15389-100000@ponder.fairway2k.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

On 26 Jun 2003, Clay Luther wrote:

> I am trying to get up to speed writing C triggers and I have a question
> about the relation between HeapTuples and other tuple-related types,
> like TupleTableSlots, and the routines and macros used to manipulate
> them. I am reading and re-reading the online docs, but still have some
> broad questions.
>
> For example, suppose I just wanted a trigger to iterate through the
> HeapTuple pointed at by the tirgger data tg_trigtuple, printing out the
> column names, types, and values (lets say, only ints and strings for
> simplicity). How would I do this?
>
> A pointer to a good document would be just as good as a detailed answer.

Take a browse around the things in contrib. However, I'd say the easiest way to
do the specific thing you ask about is to look up the SPI utility functions in
the docs and then write something like the psuedo code:

i = 1;
while (i < tupdesc->natts)
{
char *colname = SPI_fname(tg_trigtuple, i);
char *coltype = SPI_gettype(tg_trigtuple, i);
char *colvalue = SPI_getvalue(tg_trigtuple, i);

i++;
}

That's very much psuedo code. It's bad that I can't remember the exact names
and parameters considering I was doing such things only a week ago but, that's
what being busy does to my memory.

But really, you can't go wrong looking in chapter 9 (server side
programming) at the spi functions. Well you can just watch out that the column
numbering starts at 1 for spi.

--
Nigel J. Andrews

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Clay Luther 2003-06-26 22:15:01 Re: Dissecting Tuples in C
Previous Message Clay Luther 2003-06-26 20:45:53 Dissecting Tuples in C