Re: Use streaming read API in ANALYZE

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Mats Kindahl <mats@timescale.com>
Cc: Melanie Plageman <melanieplageman@gmail.com>, Nazir Bilal Yavuz <byavuz81@gmail.com>, Andres Freund <andres@anarazel.de>, Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, jakub.wartak@enterprisedb.com
Date: 2024-08-24T03:33:19Z
Lists: pgsql-hackers
On Thu, Aug 22, 2024 at 7:31 PM Mats Kindahl <mats@timescale.com> wrote:
> The alternate version proposed by Nazir allows you to decide which interface to use.
> Reverting the patch entirely would also solve the problem.
> Passing down the block sampler and the strategy to scan_begin() and move the ReadStream setup in analyze.c into initscan() in heapam.c, but this requires adding new parameters to this function.
> Having accessors that allow you to get the block sampler and strategy from the ReadStream object.

I'm a bit confused about how it can make sense to use the same
BlockSampler with a side relation/fork.  Could you point me at the
code?

> It would be great if this could be fixed before the PG17 release now that 27bc1772fc8 was reverted.

Ack.  Thinking...

Random thought: is there a wiki page or something where we can find
out about all the table AM projects?  For the successor to
27bc1772fc8, I hope they'll be following along.



Commits

  1. Allow ReadStream to be consumed as raw block numbers.

  2. Generalize relation analyze in table AM interface