Re: lifetime of TubleTableSlot* returned by ExecProcNode - Mailing list pgsql-hackers

From Bramandia Ramadhana
Subject Re: lifetime of TubleTableSlot* returned by ExecProcNode
Date
Msg-id 700260640812152145j507a2f4ejb63838207a29c1cc@mail.gmail.com
Whole thread Raw
In response to Re: lifetime of TubleTableSlot* returned by ExecProcNode  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
After reading the source code for nodeHash.c and tuplesort.c, I decided to create new struct containing MinimumTuple and few members.

I am still wondering in one thing:
typedef struct HashJoinTupleData
{
    struct HashJoinTupleData *next;        /* link to next tuple in same bucket */
    uint32        hashvalue;        /* tuple's hash code */
    /* Tuple data, in MinimalTuple format, follows on a MAXALIGN boundary */
} HashJoinTupleData;

typedef struct
{
    void       *tuple;            /* the tuple proper */
    Datum        datum1;            /* value of first key column */
    bool        isnull1;        /* is first key column NULL? */
    int            tupindex;        /* see notes above */
} SortTuple;

In HashJoinTupleData, the MinimalTupleData is appended at the end of the struct whereas in SortTuple, a pointer to MinimalTupleData is stored in tuple member.
What are the reasons for the difference? And when does one approach is more preferable than another?

Regards,

Bramandia R.


On Sat, Dec 13, 2008 at 10:36 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
"Bramandia Ramadhana" <bramandia@gmail.com> writes:
> Hmm how if an upper level node needs to store (for future use) the
> TupleTableSlot* returned by lower level node, e.g. I create a specialized
> Sort Node which needs to read all tuples from lower level nodes. In this
> case, would it be necessary and sufficient to make a copy the TupleTableSlot

It would be a pretty crummy way to approach it, because a Slot is not
intended to be a compact representation.  You probably want to use a
tuplestore or tuplesort object instead.

                       regards, tom lane

pgsql-hackers by date:

Previous
From: "Fujii Masao"
Date:
Subject: Coding TODO for 8.4: Synch Rep
Next
From: "Rushabh Lathia"
Date:
Subject: Re: Function with defval returns error