postgresql/src/include/nodes
Andres Freund bfbcad478f tableam: bitmap table scan.
This moves bitmap heap scan support to below an optional tableam
callback. It's optional as the whole concept of bitmap heapscans is
fairly block specific.

This basically moves the work previously done in bitgetpage() into the
new scan_bitmap_next_block callback, and the direct poking into the
buffer done in BitmapHeapNext() into the new scan_bitmap_next_tuple()
callback.

The abstraction is currently somewhat leaky because
nodeBitmapHeapscan.c's prefetching and visibilitymap based logic
remains - it's likely that we'll later have to move more into the
AM. But it's not trivial to do so without introducing a significant
amount of code duplication between the AMs, so that's a project for
later.

Note that now nodeBitmapHeapscan.c and the associated node types are a
bit misnamed. But it's not clear whether renaming wouldn't be a cure
worse than the disease. Either way, that'd be best done in a separate
commit.

Author: Andres Freund
Reviewed-By: Robert Haas (in an older version)
Discussion: https://postgr.es/m/20180703070645.wchpu5muyto5n647@alap3.anarazel.de
2019-03-31 18:37:57 -07:00
..
bitmapset.h Add support for multivariate MCV lists 2019-03-27 18:32:18 +01:00
execnodes.h tableam: bitmap table scan. 2019-03-31 18:37:57 -07:00
extensible.h Rename nodes/relation.h to nodes/pathnodes.h. 2019-01-29 16:49:25 -05:00
lockoptions.h Don't include heapam.h from others headers. 2019-01-14 16:24:41 -08:00
makefuncs.h Make some small planner API cleanups. 2019-01-29 15:26:44 -05:00
memnodes.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeFuncs.h Make some small planner API cleanups. 2019-01-29 15:26:44 -05:00
nodes.h tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
params.h Refactor ParamListInfo initialization 2019-03-14 13:30:09 +01:00
parsenodes.h Generated columns 2019-03-30 08:15:57 +01:00
pathnodes.h Avoid passing query tlist around separately from root->processed_tlist. 2019-03-27 12:57:49 -04:00
pg_list.h Standardize some more loops that chase down parallel lists. 2019-02-28 14:25:01 -05:00
plannodes.h Speed up planning when partitions can be pruned at plan time. 2019-03-30 18:58:55 -04:00
primnodes.h tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
print.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
readfuncs.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
replnodes.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
supportnodes.h Allow extensions to generate lossy index conditions. 2019-02-11 21:26:14 -05:00
tidbitmap.h tableam: bitmap table scan. 2019-03-31 18:37:57 -07:00
value.h Update copyright for 2019 2019-01-02 12:44:25 -05:00