1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-27 22:56:53 +03:00

Fix outdated comments regarding TupleTableSlots

The tts_flag is named TTS_FLAG_SHOULDFREE, so use that instead of
TTS_SHOULDFREE, which is the name of the macro that checks for that flag.

Additionally, 4da597edf got rid of the TupleTableSlot.tts_tuple field but
forgot to update a comment which referenced that field.  Fix that.

Reported-by: Zhen Mingyang <zhenmingyang@yeah.net>
Reported-by: Richard Guo <guofenglinux@gmail.com>
Discussion: https://postgr.es/m/1a96696c.9d3.187193989c3.Coremail.zhenmingyang@yeah.net
This commit is contained in:
David Rowley 2023-03-30 16:37:03 +13:00
parent 7f5b19817e
commit 902ecd3bd4
2 changed files with 10 additions and 9 deletions

View File

@ -385,8 +385,8 @@ tts_heap_materialize(TupleTableSlot *slot)
{ {
/* /*
* The tuple contained in this slot is not allocated in the memory * The tuple contained in this slot is not allocated in the memory
* context of the given slot (else it would have TTS_SHOULDFREE set). * context of the given slot (else it would have TTS_FLAG_SHOULDFREE
* Copy the tuple into the given slot's memory context. * set). Copy the tuple into the given slot's memory context.
*/ */
hslot->tuple = heap_copytuple(hslot->tuple); hslot->tuple = heap_copytuple(hslot->tuple);
} }
@ -554,8 +554,9 @@ tts_minimal_materialize(TupleTableSlot *slot)
{ {
/* /*
* The minimal tuple contained in this slot is not allocated in the * The minimal tuple contained in this slot is not allocated in the
* memory context of the given slot (else it would have TTS_SHOULDFREE * memory context of the given slot (else it would have
* set). Copy the minimal tuple into the given slot's memory context. * TTS_FLAG_SHOULDFREE set). Copy the minimal tuple into the given
* slot's memory context.
*/ */
mslot->mintuple = heap_copy_minimal_tuple(mslot->mintuple); mslot->mintuple = heap_copy_minimal_tuple(mslot->mintuple);
} }

View File

@ -68,8 +68,8 @@
* A TupleTableSlot can also be "empty", indicated by flag TTS_FLAG_EMPTY set * A TupleTableSlot can also be "empty", indicated by flag TTS_FLAG_EMPTY set
* in tts_flags, holding no valid data. This is the only valid state for a * in tts_flags, holding no valid data. This is the only valid state for a
* freshly-created slot that has not yet had a tuple descriptor assigned to * freshly-created slot that has not yet had a tuple descriptor assigned to
* it. In this state, TTS_SHOULDFREE should not be set in tts_flags, tts_tuple * it. In this state, TTS_FLAG_SHOULDFREE should not be set in tts_flags and
* must be NULL and tts_nvalid zero. * tts_nvalid should be set to zero.
* *
* The tupleDescriptor is simply referenced, not copied, by the TupleTableSlot * The tupleDescriptor is simply referenced, not copied, by the TupleTableSlot
* code. The caller of ExecSetSlotDescriptor() is responsible for providing * code. The caller of ExecSetSlotDescriptor() is responsible for providing
@ -79,8 +79,8 @@
* mechanism to do more. However, the slot will increment the tupdesc * mechanism to do more. However, the slot will increment the tupdesc
* reference count if a reference-counted tupdesc is supplied.) * reference count if a reference-counted tupdesc is supplied.)
* *
* When TTS_SHOULDFREE is set in tts_flags, the physical tuple is "owned" by * When TTS_FLAG_SHOULDFREE is set in tts_flags, the physical tuple is "owned"
* the slot and should be freed when the slot's reference to the tuple is * by the slot and should be freed when the slot's reference to the tuple is
* dropped. * dropped.
* *
* tts_values/tts_isnull are allocated either when the slot is created (when * tts_values/tts_isnull are allocated either when the slot is created (when
@ -268,7 +268,7 @@ typedef struct BufferHeapTupleTableSlot
* If buffer is not InvalidBuffer, then the slot is holding a pin on the * If buffer is not InvalidBuffer, then the slot is holding a pin on the
* indicated buffer page; drop the pin when we release the slot's * indicated buffer page; drop the pin when we release the slot's
* reference to that buffer. (TTS_FLAG_SHOULDFREE should not be set in * reference to that buffer. (TTS_FLAG_SHOULDFREE should not be set in
* such a case, since presumably tts_tuple is pointing into the buffer.) * such a case, since presumably base.tuple is pointing into the buffer.)
*/ */
Buffer buffer; /* tuple's buffer, or InvalidBuffer */ Buffer buffer; /* tuple's buffer, or InvalidBuffer */
} BufferHeapTupleTableSlot; } BufferHeapTupleTableSlot;