Обсуждение: pgsql: Make ANALYZE compute basic statistics even for types with no "="

Поиск
Список
Период
Сортировка

pgsql: Make ANALYZE compute basic statistics even for types with no "="

От
Tom Lane
Дата:
Make ANALYZE compute basic statistics even for types with no "=" operator.

Previously, ANALYZE simply ignored columns of datatypes that have neither
a btree nor hash opclass (which means they have no recognized equality
operator).  Without a notion of equality, we can't identify most-common
values nor estimate the number of distinct values.  But we can still
count nulls and compute the average physical column width, and those
stats might be of value.  Moreover there are some tools out there that
don't work so well if rows are missing from pg_statistic.  So let's
add suitable logic for this case.

While this is arguably a bug fix, it also has the potential to change
query plans, and the gain seems not worth taking a risk of that in
stable branches.  So back-patch into 9.5 but not further.

Oleksandr Shulgin, rewritten a bit by me.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/82e1ba7fd6cc9ac3fb1d9b819dc7295b268d3703

Modified Files
--------------
src/backend/commands/analyze.c |  118 +++++++++++++++++++++++++++++++++++-----
1 file changed, 104 insertions(+), 14 deletions(-)