pgsql: Preserve the owner of extended statistics rebuilt by ALTER TABLE - Mailing list pgsql-committers

From Noah Misch
Subject pgsql: Preserve the owner of extended statistics rebuilt by ALTER TABLE
Date
Msg-id E1wtQFk-00000000y11-05t7@gemulon.postgresql.org
Whole thread
Responses pgsql: Fix potential buffer overrun in regexp match/split functions.
List pgsql-committers
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 <sawada.mshk@gmail.com>
Reviewed-by: Noah Misch <noah@leadboat.com>
Backpatch-through: 14
Security: CVE-2026-6469

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/6713a6e04cbb24ec3f3c1dda10e703f138109e71
Author: Masahiko Sawada <msawada@postgresql.org>

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(-)


pgsql-committers by date:

Previous
From: Noah Misch
Date:
Subject: pgsql: Harden PL/Perl code against "tied" Perl arrays and hashes.
Next
From: Noah Misch
Date:
Subject: pgsql: Guard against overlength time zone abbreviations in to_char().