Re: Tid scan improvements
David Rowley <david.rowley@2ndquadrant.com>
From: David Rowley <david.rowley@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>
Cc: Edmund Horner <ejrh00@gmail.com>, Thomas Munro <thomas.munro@gmail.com>, David Steele <david@pgmasters.net>, Tom Lane <tgl@sss.pgh.pa.us>, Tomas Vondra <tomas.vondra@2ndquadrant.com>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2019-07-22T07:24:51Z
Lists: pgsql-hackers
On Sat, 20 Jul 2019 at 06:21, Andres Freund <andres@anarazel.de> wrote: > > Hi, > > On 2019-07-19 13:54:59 +1200, David Rowley wrote: > > Did you imagined two additional callbacks, 1 to set the TID range, > > then one to scan it? Duplicating the logic in heapgettup_pagemode() > > and heapgettup() looks pretty horrible, but I guess we could add a > > wrapper around it that loops until it gets the first tuple and bails > > once it scans beyond the final tuple. > > > > Is that what you had in mind? > > Yea, I was thinking of something like 2. We already have a few extra > types of scan nodes (bitmap heap and sample scan), it'd not be bad to > add another. And as you say, they can just share most of the guts: For > heap I'd just implement pagemode, and perhaps split heapgettup_pagemode > into two parts (one to do the page processing, the other to determine > the relevant page). > > You say that we'd need new fields in HeapScanDescData - not so sure > about that, it seems feasible to just provide the boundaries in the > call? But I think it'd also just be fine to have the additional fields. Thanks for explaining. I've set the CF entry for the patch back to waiting on author. I think if we get this part the way Andres would like it, then we're pretty close. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Add TID Range Scans to support efficient scanning ranges of TIDs
- bb437f995d47 14.0 landed
-
Improve planner's selectivity estimates for inequalities on CTID.
- f7111f72d2fd 12.0 landed