pgsql: Identify simple column references in extended statistics
От | Tomas Vondra |
---|---|
Тема | pgsql: Identify simple column references in extended statistics |
Дата | |
Msg-id | E1mLTHA-0004z5-BC@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Identify simple column references in extended statistics Until now, when defining extended statistics, everything except a plain column reference was treated as complex expression. So for example "a" was a column reference, but "(a)" would be an expression. In most cases this does not matter much, but there were a couple strange consequences. For example CREATE STATISTICS s ON a FROM t; would fail, because extended stats require at least two columns. But CREATE STATISTICS s ON (a) FROM t; would succeed, because that requirement does not apply to expressions. Moreover, that statistics object is useless - the optimizer will always use the regular statistics collected for attribute "a". So do a bit more work to identify those expressions referencing a single column, and translate them to a simple column reference. Backpatch to 14, where support for extended statistics on expressions was introduced. Reported-by: Justin Pryzby Backpatch-through: 14 Discussion: https://postgr.es/m/20210816013255.GS10479%40telsasoft.com Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/50ba70a957f9e018495a111fc4b5e5eb2ea62044 Modified Files -------------- src/backend/commands/statscmds.c | 37 +++++++++++++++++++++++++++------ src/test/regress/expected/stats_ext.out | 2 ++ src/test/regress/sql/stats_ext.sql | 1 + 3 files changed, 34 insertions(+), 6 deletions(-)
В списке pgsql-committers по дате отправления: