mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Allow to use HeapTupleData embedded in [Buffer]HeapTupleTableSlot.
That avoids having to care about the lifetime of the HeapTupleHeaderData passed to ExecStore[Buffer]HeapTuple(). That doesn't make a huge difference for a plain HeapTupleTableSlot, but for BufferHeapTupleTableSlot it can be a significant advantage, avoiding the need to materialize slots where it's inconvenient to provide a HeapTupleData with appropriate lifetime to point to the on-disk tuple. It's quite possible that we'll want to add support functions for constructing HeapTuples using that embedded HeapTupleData, but for now callers do so themselves. Author: Andres Freund Discussion: https://postgr.es/m/20180703070645.wchpu5muyto5n647@alap3.anarazel.de
This commit is contained in:
@ -16,6 +16,7 @@
|
||||
|
||||
#include "access/htup.h"
|
||||
#include "access/tupdesc.h"
|
||||
#include "access/htup_details.h"
|
||||
#include "storage/buf.h"
|
||||
|
||||
/*----------
|
||||
@ -246,6 +247,7 @@ typedef struct HeapTupleTableSlot
|
||||
HeapTuple tuple; /* physical tuple */
|
||||
#define FIELDNO_HEAPTUPLETABLESLOT_OFF 2
|
||||
uint32 off; /* saved state for slot_deform_heap_tuple */
|
||||
HeapTupleData tupdata; /* optional workspace for storing tuple */
|
||||
} HeapTupleTableSlot;
|
||||
|
||||
/* heap tuple residing in a buffer */
|
||||
|
Reference in New Issue
Block a user