| From: | Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Add support for extended statistics on virtual generated columns |
| Date: | 2026-04-01 16:06:56 |
| Message-ID: | E1w7y5n-002Tth-0w@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Add support for extended statistics on virtual generated columns.
This allows both univariate and multivariate statistics to be built on
virtual generated columns and expressions that refer to virtual
generated columns. The restriction disallowing extended statistics on
a single column is lifted in the case of a single virtual generated
column, since it is treated as a single expression.
In the catalogs, references to virtual generated columns are stored
as-is. They are expanded at ANALYZE time to build the statistics, and
at planning time to allow the optimizer to make use of the statistics.
This allows the statistics to be correctly rebuilt using ANALYZE, if a
column's generation expression is altered (which causes any existing
statistics data to be deleted).
Author: Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>
Reviewed-by: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
Discussion: https://postgr.es/m/20250422181006.dd6f9d1d81299f5b2ad55e1a@sraoss.co.jp
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/f7f4052a4e959ded803417b14af2b45316445940
Modified Files
--------------
doc/src/sgml/ref/alter_table.sgml | 12 ++-
doc/src/sgml/ref/create_statistics.sgml | 30 +++++--
src/backend/commands/statscmds.c | 143 +++++++++++++++++---------------
src/backend/optimizer/util/plancat.c | 3 +
src/backend/statistics/extended_stats.c | 13 ++-
src/test/regress/expected/stats_ext.out | 95 ++++++++++++++++-----
src/test/regress/sql/stats_ext.sql | 54 ++++++++----
7 files changed, 233 insertions(+), 117 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Álvaro Herrera | 2026-04-01 16:17:55 | pgsql: Fix vicinity of tuple_insert to use uint32, not int, for options |
| Previous Message | Nathan Bossart | 2026-04-01 14:49:46 | pgsql: doc: Add missing description for DROP SUBSCRIPTION IF EXISTS. |