Re: Import Statistics in postgres_fdw before resorting to sampling.
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
From: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
To: Corey Huinker <corey.huinker@gmail.com>
Cc: Etsuro Fujita <etsuro.fujita@gmail.com>,
Michael Paquier <michael@paquier.xyz>, pgsql-hackers@postgresql.org, jkatz@postgresql.org, nathandbossart@gmail.com
Date: 2026-01-27T05:47:08Z
Lists: pgsql-hackers
On Fri, Jan 23, 2026 at 10:45 PM Corey Huinker <corey.huinker@gmail.com> wrote: >> >> >> There's an advantage if we can combine stats across multiple relations >> >> - we don't have to sample children twice when analyzing the parent >> >> without ONLY. Instead we could produce parent statistics by combining >> >> statistics across children and the parent. To me this looks like >> >> altogether a different beast just like partial aggregates. >> > >> > >> > I think this patch is only ever going to get us out of 1 of the 2 samples, which isn't ideal but it is a savings. >> > >> >> I am not suggesting to synthesize sample rows. Calculate the >> statistics of the parent table from that of its children. > > > I'm not sure we can actually do that. The functions that compute the statistics are all based off of row samples, not already computed statistics. I don't think we can synthesize a rowsample from the imported statistics, at least not accurately. If I'm misunderstanding what you're suggesting, please correct me. I am comparing the calculation of statistics to the calculation of aggregates. We have code to compute aggregates on a partitioned table from the partial aggregates computed from the individual partitions. (Even though I am mentioning the partitioned table, the technique can be used for an inheritance hierarchy.) Similarly if we could come up with a representation of partial statistics, we could get partial statistics computed for the children (and the parent in non-partitioned inheritance). Use the partial statistics to compute the statistics for the parent without the need to synthesize row samples from the children. I haven't looked at all the kinds of statistics to see whether this is feasible. -- Best Wishes, Ashutosh Bapat
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
postgres_fdw: Replace buffers in RemoteAttributeMapping with pointers.
- aa1f93a3387a 19 (unreleased) landed
-
Add support for importing statistics from remote servers.
- 28972b6fc3dc 19 (unreleased) landed