* Store a HeapTuple in datum form, into a slot. That always requires * deforming it and storing it in virtual form. * * Until the slot is materialized, the contents of the slot depend on the * datum. */
| 1620 | * datum. |
| 1621 | */ |
| 1622 | void |
| 1623 | ExecStoreHeapTupleDatum(Datum data, TupleTableSlot *slot) |
| 1624 | { |
| 1625 | HeapTupleData tuple = {0}; |
| 1626 | HeapTupleHeader td; |
| 1627 | |
| 1628 | td = DatumGetHeapTupleHeader(data); |
| 1629 | |
| 1630 | tuple.t_len = HeapTupleHeaderGetDatumLength(td); |
| 1631 | tuple.t_self = td->t_ctid; |
| 1632 | tuple.t_data = td; |
| 1633 | |
| 1634 | ExecClearTuple(slot); |
| 1635 | |
| 1636 | heap_deform_tuple(&tuple, slot->tts_tupleDescriptor, |
| 1637 | slot->tts_values, slot->tts_isnull); |
| 1638 | ExecStoreVirtualTuple(slot); |
| 1639 | } |
| 1640 | |
| 1641 | /* |
| 1642 | * ExecFetchSlotHeapTuple - fetch HeapTuple representing the slot's content |
no test coverage detected