From: Jeff Davis <jdavis@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Transfer statistics during pg_upgrade.
Date: Thu, 20 Feb 2025 09:29:38 +0000
Message-ID: <E1tl2sF-000HZG-2w@gemulon.postgresql.org> (raw)
Transfer statistics during pg_upgrade.
Add support to pg_dump for dumping stats, and use that during
pg_upgrade so that statistics are transferred during upgrade. In most
cases this removes the need for a costly re-analyze after upgrade.
Some statistics are not transferred, such as extended statistics or
statistics with a custom stakind.
Now pg_dump accepts the options --schema-only, --no-schema,
--data-only, --no-data, --statistics-only, and --no-statistics; which
allow all combinations of schema, data, and/or stats. The options are
named this way to preserve compatibility with the previous
--schema-only and --data-only options.
Statistics are in SECTION_DATA, unless the object itself is in
SECTION_POST_DATA.
The stats are represented as calls to pg_restore_relation_stats() and
pg_restore_attribute_stats().
Author: Corey Huinker, Jeff Davis
Reviewed-by: Jian He
Discussion: https://postgr.es/m/CADkLM=fzX7QX6r78fShWDjNN3Vcr4PVAnvXxQ4DiGy6V=0bCUA@mail.gmail.com
Discussion: https://postgr.es/m/CADkLM%3DcB0rF3p_FuWRTMSV0983ihTRpsH%2BOCpNyiqE7Wk0vUWA%40mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/1fd1bd871012732e3c6c482667d2f2c56f1a9395
Modified Files
--------------
doc/src/sgml/ref/pg_dump.sgml | 75 ++++-
doc/src/sgml/ref/pg_dumpall.sgml | 41 ++-
doc/src/sgml/ref/pg_restore.sgml | 48 ++-
doc/src/sgml/ref/pgupgrade.sgml | 9 +
src/bin/pg_dump/pg_backup.h | 2 +
src/bin/pg_dump/pg_backup_archiver.c | 83 +++--
src/bin/pg_dump/pg_backup_archiver.h | 3 +-
src/bin/pg_dump/pg_backup_directory.c | 2 +-
src/bin/pg_dump/pg_dump.c | 415 ++++++++++++++++++++++++-
src/bin/pg_dump/pg_dump.h | 12 +
src/bin/pg_dump/pg_dump_sort.c | 37 ++-
src/bin/pg_dump/pg_dumpall.c | 24 +-
src/bin/pg_dump/pg_restore.c | 25 +-
src/bin/pg_dump/t/001_basic.pl | 18 ++
src/bin/pg_dump/t/002_pg_dump.pl | 106 ++++++-
src/bin/pg_upgrade/dump.c | 3 +-
src/bin/pg_upgrade/option.c | 7 +
src/bin/pg_upgrade/pg_upgrade.h | 1 +
src/bin/pg_upgrade/t/002_pg_upgrade.pl | 7 +
src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm | 10 +
src/test/recovery/t/027_stream_regress.pl | 4 +-
src/tools/pgindent/typedefs.list | 1 +
22 files changed, 858 insertions(+), 75 deletions(-)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-committers@postgresql.org
Cc: jdavis@postgresql.org, pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: Transfer statistics during pg_upgrade.
In-Reply-To: <E1tl2sF-000HZG-2w@gemulon.postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox