Re: Using multiple extended statistics for estimates
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Mark Dilger <hornschnorter@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-11-13T15:28:23Z
Lists: pgsql-hackers
Attachments
Hi, here's an updated patch, with some minor tweaks based on the review and added tests (I ended up reworking those a bit, to make them more like the existing ones). There's also a new piece, dealing with functional dependencies. Until now we did the same thing as for MCV lists - we picketd the "best" extended statistics (with functional dependencies built) and just used that. At first I thought we might simply do the same loop as for MCV lists, but that does not really make sense because we might end up applying "weaker" dependency first. Say for example we have table with columns (a,b,c,d,e) and functional dependencies on (a,b,c,d) and (c,d,e) where all the dependencies on (a,b,c,d) are weaker than (c,d => e). In a query with clauses on all attributes this is guaranteed to apply all dependencies from the first statistic first, which si clearly wrong. So what this does instead is simply merging all the dependencies from all the relevant stats, and treating them as a single collection. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Apply multiple multivariate MCV lists when possible
- eae056c19ee8 13.0 landed
-
Apply all available functional dependencies
- aaa6761876ba 13.0 landed