]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Add support for importing statistics from remote servers.
authorEtsuro Fujita <efujita@postgresql.org>
Wed, 8 Apr 2026 10:15:00 +0000 (19:15 +0900)
committerEtsuro Fujita <efujita@postgresql.org>
Wed, 8 Apr 2026 10:15:00 +0000 (19:15 +0900)
commit28972b6fc3dcd1296e844246b635eddfa29c38e1
tree9bd5343f977d7e140863afe66424cbcbba978249
parentd1c01b79d4ae90e52bf9db9c05c9de17b7313e85
Add support for importing statistics from remote servers.

Add a new FDW callback routine that allows importing remote statistics
for a foreign table directly to the local server, instead of collecting
statistics locally.  The new callback routine is called at the beginning
of the ANALYZE operation on the table, and if the FDW failed to import
the statistics, the existing callback routine is called on the table to
collect statistics locally.

Also implement this for postgres_fdw.  It is enabled by "restore_stats"
option both at the server and table level.  Currently, it is the user's
responsibility to ensure remote statistics to import are up-to-date, so
the default is false.

Author: Corey Huinker <corey.huinker@gmail.com>
Co-authored-by: Etsuro Fujita <etsuro.fujita@gmail.com>
Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Reviewed-by: Matheus Alcantara <matheusssilv97@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Etsuro Fujita <etsuro.fujita@gmail.com>
Discussion: https://postgr.es/m/CADkLM%3DchrYAx%3DX2KUcDRST4RLaRLivYDohZrkW4LLBa0iBhb5w%40mail.gmail.com
13 files changed:
contrib/postgres_fdw/deparse.c
contrib/postgres_fdw/expected/postgres_fdw.out
contrib/postgres_fdw/option.c
contrib/postgres_fdw/postgres_fdw.c
contrib/postgres_fdw/sql/postgres_fdw.sql
doc/src/sgml/fdwhandler.sgml
doc/src/sgml/postgres-fdw.sgml
src/backend/commands/analyze.c
src/backend/statistics/extended_stats.c
src/include/commands/vacuum.h
src/include/foreign/fdwapi.h
src/include/statistics/statistics.h
src/tools/pgindent/typedefs.list