| From: | Etsuro Fujita <etsuro(dot)fujita(at)gmail(dot)com> |
|---|---|
| To: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Corey Huinker <corey(dot)huinker(at)gmail(dot)com> |
| Subject: | Re: postgres_fdw: fix cumulative stats after imported foreign-table stats |
| Date: | 2026-07-03 09:10:36 |
| Message-ID: | CAPmGK17uDi89_D16UHrcct5_JwbtY_ojFtkd5gXsvJNiVJDg5Q@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi Chao,
On Fri, Jun 12, 2026 at 12:49 PM Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
> I think the root cause is that, with 28972b6fc, when stats are imported successfully for a foreign table, do_analyze_rel() is skipped. But do_analyze_rel() is the only place that calls pgstat_report_analyze() to update cumulative stats.
>
> To fix this, I think we need to add an output parameter to ImportForeignStatistics to pass out total live rows. AFAIK, the imported remote relation stats have no dead-tuple estimate, so analyze_rel() can pass 0 as the dead-tuple estimate when calling pgstat_report_analyze(). That gives us the needed data to call pgstat_report_analyze() after a successful import.
The root-cause analysis is correct, but I don't think that the fix is
the right way to go, because if we modified pgstat_report_analyze() to
report more ANALYZE stats, we would need to modify the
ImportForeignStatistics API as well, which isn't great. To avoid
that, how about calling pgstat_report_analyze() in
postgresImportForeignStatistics(), like the attached? (Actually, I
designed the API as something we entirely replace do_analyze_rel()
with.) I modified the test case as well.
Sorry for the delay.
Best regards,
Etsuro Fujita
| Attachment | Content-Type | Size |
|---|---|---|
| Fix-ANALYZE-report-in-postgres-fdw-stat-import-efujita.patch | application/octet-stream | 6.9 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Heikki Linnakangas | 2026-07-03 09:25:10 | Re: libpq: Process buffered SSL read bytes to support records >8kB on async API |
| Previous Message | Bertrand Drouvot | 2026-07-03 09:03:24 | Re: Re-read subscription state after lock in AlterSubscription |