]> granicus.if.org Git - postgresql/commit
Allow to use HeapTupleData embedded in [Buffer]HeapTupleTableSlot.
authorAndres Freund <andres@anarazel.de>
Wed, 27 Feb 2019 02:15:59 +0000 (18:15 -0800)
committerAndres Freund <andres@anarazel.de>
Wed, 27 Feb 2019 02:15:59 +0000 (18:15 -0800)
commit5408e233f0667478e7f2a3e4b914e14217e20729
tree9646e1504de1383d51f8f256bf74b8134ceaeab8
parent8aa02b52db11039925191912eca71e3584b68860
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
src/include/executor/tuptable.h