-------------------------------- * ExecStoreVirtualTuple * Mark a slot as containing a virtual tuple. * * The protocol for loading a slot with virtual tuple data is: * * Call ExecClearTuple to mark the slot empty. * * Store data into the Datum/isnull arrays. * * Call ExecStoreVirtualTuple to mark the slot valid. * This is a bit unclean but it avoids one round of data copying. * ----
| 1566 | * -------------------------------- |
| 1567 | */ |
| 1568 | TupleTableSlot * |
| 1569 | ExecStoreVirtualTuple(TupleTableSlot *slot) |
| 1570 | { |
| 1571 | /* |
| 1572 | * sanity checks |
| 1573 | */ |
| 1574 | Assert(slot != NULL); |
| 1575 | Assert(slot->tts_tupleDescriptor != NULL); |
| 1576 | Assert(TTS_EMPTY(slot)); |
| 1577 | |
| 1578 | slot->tts_flags &= ~TTS_FLAG_EMPTY; |
| 1579 | slot->tts_nvalid = slot->tts_tupleDescriptor->natts; |
| 1580 | |
| 1581 | return slot; |
| 1582 | } |
| 1583 | |
| 1584 | /* -------------------------------- |
| 1585 | * ExecStoreAllNullTuple |
no outgoing calls
no test coverage detected