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