Re: ExecStoreTuple going into infinite loop - Mailing list pgsql-hackers

From Tom Lane
Subject Re: ExecStoreTuple going into infinite loop
Date
Msg-id 10308.1338991902@sss.pgh.pa.us
Whole thread Raw
In response to ExecStoreTuple going into infinite loop  (Atri Sharma <atri.jiit@gmail.com>)
List pgsql-hackers
Atri Sharma <atri.jiit@gmail.com> writes:
> Hi all,
> I am trying to build and store multiple tuples.The code is:

> ExecClearTuple(slot);

> /The code for fetching the data from which tuple will be formed../
> for(;x<y;x++){
> tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(node->ss.ss_currentRelation->rd_att),
> values);
> ExecStoreTuple(tuple, slot, InvalidBuffer, false);
> }

> return (slot);

> When I am including the ExecClearTuple(slot),the result only includes
> the last tuple that was built.

I am not sure why you find this surprising.  A tuple slot can only hold
one tuple.

If you're trying to build a set-returning function, you need a
tuplestore not a tuple slot.  Or else restructure the code to return
each tuple as it's built.  Look at existing SRFs for examples.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Honza Horak
Date:
Subject: Ability to listen on two unix sockets
Next
From: Florian Pflug
Date:
Subject: Re: Ability to listen on two unix sockets