Thread: pgsql: Separate TBM[Shared|Private]Iterator and TBMIterateResult
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 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/944e81bf99db2b5b70b8a389d4f273534da73f74 Modified Files -------------- src/backend/access/gin/ginget.c | 33 ++++++----- src/backend/access/gin/ginscan.c | 2 +- src/backend/access/heap/heapam_handler.c | 28 +++++---- src/backend/executor/nodeBitmapHeapscan.c | 39 ++++++------- src/backend/nodes/tidbitmap.c | 96 +++++++++++++++++-------------- src/include/access/gin_private.h | 7 ++- src/include/nodes/tidbitmap.h | 6 +- 7 files changed, 110 insertions(+), 101 deletions(-)