Preserve the owner of extended statistics rebuilt by ALTER TABLE. When ALTER TABLE ... ALTER COLUMN TYPE (or any subcommand that rebuilds them) drops and re-creates the extended statistics objects depending on the altered column, the re-created objects were owned by the role running ALTER TABLE rather than by the original owner of the statistics.
Remember each object's owner before dropping it, and restore it on re-creation. CreateStatistics()'s signature changes and CreateStatsStmt gains a field, but no known third-party code calls the former or constructs the latter. Author: Masahiko Sawada <[email protected]> Reviewed-by: Noah Misch <[email protected]> Backpatch-through: 14 Security: CVE-2026-6469 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/6713a6e04cbb24ec3f3c1dda10e703f138109e71 Author: Masahiko Sawada <[email protected]> Modified Files -------------- src/backend/commands/statscmds.c | 48 ++++++++++++++---------------- src/backend/commands/tablecmds.c | 52 ++++++++++++++++++++++++--------- src/backend/tcop/utility.c | 19 ++++++++++-- src/include/commands/defrem.h | 2 +- src/include/nodes/parsenodes.h | 1 + src/test/regress/expected/stats_ext.out | 29 ++++++++++++++++++ src/test/regress/sql/stats_ext.sql | 20 +++++++++++++ 7 files changed, 129 insertions(+), 42 deletions(-)
