-------------------------------- * ExecStoreAllNullTuple * Set up the slot to contain a null in every column. * * At first glance this might sound just like ExecClearTuple, but it's * entirely different: the slot ends up full, not empty. * -------------------------------- */
| 1590 | * -------------------------------- |
| 1591 | */ |
| 1592 | TupleTableSlot * |
| 1593 | ExecStoreAllNullTuple(TupleTableSlot *slot) |
| 1594 | { |
| 1595 | /* |
| 1596 | * sanity checks |
| 1597 | */ |
| 1598 | Assert(slot != NULL); |
| 1599 | Assert(slot->tts_tupleDescriptor != NULL); |
| 1600 | |
| 1601 | /* Clear any old contents */ |
| 1602 | ExecClearTuple(slot); |
| 1603 | |
| 1604 | /* |
| 1605 | * Fill all the columns of the virtual tuple with nulls |
| 1606 | */ |
| 1607 | MemSet(slot->tts_values, 0, |
| 1608 | slot->tts_tupleDescriptor->natts * sizeof(Datum)); |
| 1609 | memset(slot->tts_isnull, true, |
| 1610 | slot->tts_tupleDescriptor->natts * sizeof(bool)); |
| 1611 | |
| 1612 | return ExecStoreVirtualTuple(slot); |
| 1613 | } |
| 1614 | |
| 1615 | /* |
| 1616 | * Store a HeapTuple in datum form, into a slot. That always requires |
no test coverage detected