postgresql/src/include/access
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
..
amapi.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
amvalidate.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
attnum.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
brin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
brin_internal.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
brin_page.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
brin_pageops.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
brin_revmap.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
brin_tuple.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
brin_xlog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
bufmask.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
clog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
commit_ts.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
genam.h Compute XID horizon for page level index vacuum on primary. 2019-03-26 16:52:54 -07:00
generic_xlog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
gin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
gin_private.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
ginblock.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
ginxlog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
gist.h Delete empty pages during GiST VACUUM. 2019-03-22 13:21:45 +02:00
gist_private.h Delete empty pages during GiST VACUUM. 2019-03-22 13:21:45 +02:00
gistscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
gistxlog.h Delete empty pages during GiST VACUUM. 2019-03-22 13:21:45 +02:00
hash.h Move hash_any prototype from access/hash.h to utils/hashutils.h 2019-03-11 13:17:50 -03:00
hash_xlog.h Compute XID horizon for page level index vacuum on primary. 2019-03-26 16:52:54 -07:00
heapam.h Compute XID horizon for page level index vacuum on primary. 2019-03-26 16:52:54 -07:00
heapam_xlog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
hio.h Don't include heapam.h from others headers. 2019-01-14 16:24:41 -08:00
htup.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
htup_details.h Fix heap_getattr() handling of fast defaults. 2019-02-06 01:09:32 -08:00
itup.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
multixact.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nbtree.h Tweak some nbtree-related code comments. 2019-03-29 12:29:05 -07:00
nbtxlog.h Compute XID horizon for page level index vacuum on primary. 2019-03-26 16:52:54 -07:00
parallel.h Enable parallel query with SERIALIZABLE isolation. 2019-03-15 17:47:04 +13:00
printsimple.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
printtup.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
relation.h Introduce access/{table.h, relation.h}, for generic functions from heapam.h. 2019-01-21 10:51:36 -08:00
reloptions.h Finish reverting "recheck_on_update" patch. 2019-01-15 12:07:10 -05:00
relscan.h tableam: Add and use scan APIs. 2019-03-11 12:46:41 -07:00
rewriteheap.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
rmgr.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
rmgrlist.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
sdir.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
session.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
skey.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
slru.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
spgist.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
spgist_private.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
spgxlog.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
stratnum.h Move hash_any prototype from access/hash.h to utils/hashutils.h 2019-03-11 13:17:50 -03:00
subtrans.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
sysattr.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
table.h Introduce access/{table.h, relation.h}, for generic functions from heapam.h. 2019-01-21 10:51:36 -08:00
tableam.h tableam: bitmap table scan. 2019-03-31 18:37:57 -07:00
timeline.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
transam.h Use FullTransactionId for the transaction stack. 2019-03-28 18:24:43 +13:00
tsmapi.h tableam: sample scan. 2019-03-31 18:37:57 -07:00
tupconvert.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
tupdesc.h Generated columns 2019-03-30 08:15:57 +01:00
tupdesc_details.h Make naming of tupdesc related structs more consistent with the rest of PG. 2019-01-14 16:25:50 -08:00
tupmacs.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
tuptoaster.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
twophase.h Make release of 2PC identifier and locks consistent in COMMIT PREPARED 2019-02-25 14:19:34 +09:00
twophase_rmgr.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
valid.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
visibilitymap.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
xact.h Use FullTransactionId for the transaction stack. 2019-03-28 18:24:43 +13:00
xlog.h Add basic infrastructure for 64 bit transaction IDs. 2019-03-28 18:12:20 +13:00
xlog_internal.h Compute XID horizon for page level index vacuum on primary. 2019-03-26 16:52:54 -07:00
xlogdefs.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
xloginsert.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
xlogreader.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
xlogrecord.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
xlogutils.h Update copyright for 2019 2019-01-02 12:44:25 -05:00