You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
Rejigger materializing and fetching a HeapTuple from a slot.
Previously materializing a slot always returned a HeapTuple. Ascurrent work aims to reduce the reliance on HeapTuples (so otherstorage systems can work efficiently), that needs to change. Thussplit the tasks of materializing a slot (i.e. making it independentfrom the underlying storage / other memory contexts) from fetching aHeapTuple from the slot. For brevity, allow to fetch a HeapTuple froma slot and materializing the slot at the same time, controlled by aparameter.For now some callers of ExecFetchSlotHeapTuple, with materialize =true, expect that changes to the heap tuple will be reflected in theunderlying slot. Those places will be adapted in due course, so whilenot pretty, that's OK for now.Also rename ExecFetchSlotTuple to ExecFetchSlotHeapTupleDatum andExecFetchSlotTupleDatum to ExecFetchSlotHeapTupleDatum, as it's likelythat future storage methods will need similar methods. There alreadyis ExecFetchSlotMinimalTuple, so the new names make the naming schememore coherent.Author: Ashutosh Bapat and Andres Freund, with changes by Amit KhandekarDiscussion:https://postgr.es/m/20181105210039.hh4vvi4vwoq5ba2q@alap3.anarazel.de