public inbox for [email protected]  
help / color / mirror / Atom feed
From: Melanie Plageman <[email protected]>
To: [email protected]
Subject: pgsql: Separate TBM[Shared|Private]Iterator and TBMIterateResult
Date: Sat, 15 Mar 2025 14:12:03 +0000
Message-ID: <[email protected]> (raw)

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 <[email protected]>
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(-)



reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: pgsql: Separate TBM[Shared|Private]Iterator and TBMIterateResult
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox