From b8b94ea129ffc988c2d30eb2b5aa65a93329b8fa Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Fri, 19 Apr 2019 11:25:48 -0700 Subject: Fix slot type issue for fuzzy distance index scan over out-of-core table AM. For amcanreorderby scans the nodeIndexscan.c's reorder queue holds heap tuples, but the underlying table likely does not. Before this fix we'd return different types of slots, depending on whether the tuple came from the reorder queue, or from the index + table. While that could be fixed by signalling that the node doesn't return a fixed type of slot, it seems better to instead remove the separate slot for the reorder queue, and use ExecForceStoreHeapTuple() to store tuples from the queue. It's not particularly common to need reordering, after all. This reverts most of the iss_ReorderQueueSlot related changes to nodeIndexscan.c made in 1a0586de3657cd3, except that now ExecForceStoreHeapTuple() is used instead of ExecStoreHeapTuple(). Noticed when testing zheap against the in-core version of tableam. Author: Andres Freund --- src/include/nodes/execnodes.h | 1 - 1 file changed, 1 deletion(-) (limited to 'src/include/nodes/execnodes.h') diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index a5e4b7ef2e0..ff3328752e7 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -1387,7 +1387,6 @@ typedef struct IndexScanState bool *iss_OrderByTypByVals; int16 *iss_OrderByTypLens; Size iss_PscanLen; - TupleTableSlot *iss_ReorderQueueSlot; } IndexScanState; /* ---------------- -- cgit v1.2.3