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 <[email protected]> Reviewed-by: Dean Rasheed <[email protected]> Discussion: https://postgr.es/m/[email protected] 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(-)
