Separate TBM[Shared|Private]Iterator and TBMIterateResult
Melanie Plageman <melanieplageman@gmail.com>
Separate TBM[Shared|Private]Iterator and TBMIterateResult Remove the TBMIterateResult member from the TBMPrivateIterator and TBMSharedIterator and make tbm_[shared|private_]iterate() take a TBMIterateResult as a parameter. This allows tidbitmap API users to manage multiple TBMIterateResults per scan. This is required for bitmap heap scan to use the read stream API, with which there may be multiple I/Os in flight at once, each one with a TBMIterateResult. Reviewed-by: Tomas Vondra <tomas@vondra.me> Discussion: https://postgr.es/m/d4bb26c9-fe07-439e-ac53-c0e244387e01%40vondra.me
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/gin/ginget.c | modified | +16 −17 |
| src/backend/access/gin/ginscan.c | modified | +1 −1 |
| src/backend/access/heap/heapam_handler.c | modified | +13 −15 |
| src/backend/executor/nodeBitmapHeapscan.c | modified | +19 −20 |
| src/backend/nodes/tidbitmap.c | modified | +52 −44 |
| src/include/access/gin_private.h | modified | +6 −1 |
| src/include/nodes/tidbitmap.h | modified | +3 −3 |
Discussion
- BitmapHeapScan streaming read user and prelim refactoring 248 messages · 2024-02-13 → 2025-04-17