pgsql: Apply all available functional dependencies

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

pgsql: Apply all available functional dependencies

Tomas Vondra-5
Apply all available functional dependencies

When considering functional dependencies during selectivity estimation,
it's not necessary to bother with selecting the best extended statistic
object and then use just dependencies from it. We can simply consider
all applicable functional dependencies at once.

This means we need to deserialie all (applicable) dependencies before
applying them to the clauses. This is a bit more expensive than picking
the best statistics and deserializing dependencies for it. To minimize
the additional cost, we ignore statistics that are not applicable.

Author: Tomas Vondra
Reviewed-by: Mark Dilger



Modified Files
src/backend/statistics/dependencies.c   | 116 +++++++++++++++++++++-----------
src/test/regress/expected/stats_ext.out |  57 ++++++++++++++++
src/test/regress/sql/stats_ext.sql      |  35 ++++++++++
3 files changed, 169 insertions(+), 39 deletions(-)