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-12-09T22:00:17Z
Lists: pgsql-hackers
On Mon, Dec 09, 2019 at 11:56:39AM -0800, Mark Dilger wrote: > > >On 12/5/19 9:51 AM, Tomas Vondra wrote: >>On Thu, Dec 05, 2019 at 06:15:54PM +0100, Tomas Vondra wrote: >>>On Sun, Dec 01, 2019 at 08:08:58PM +0100, Tomas Vondra wrote: >>>>On Sat, Nov 30, 2019 at 03:01:31PM -0800, Mark Dilger wrote: >>>>> >>>>>Are you planning to submit a revised patch for this? >>>>> >>>> >>>>Yes, I'll submit a rebased version of this patch shortly. I got broken >>>>because of the recent fix in choose_best_statistics, shouldn't take long >>>>to update the patch. I do have a couple more related patches in the >>>>queue, so I want to submit them all at once. >>>> >>> >>>OK, here we go - these two patched allow applying multiple extended >>>statistics, both for MCV and functional dependencies. Functional >>>dependencies are simply merged and then applied at once (so withouth >>>choose_best_statistics), statistics are considered in greedy manner by >>>calling choose_best_statistics in a loop. >>> >> >>OK, this time with the patches actually attached ;-) > >These look good to me. I added extra tests (not included in this email) >to verify the code on more interesting test cases, such as partitioned >tables and within joins. Your test cases are pretty trivial, just being >selects from a single table. > Adding such more complex tests seem like a good idea, maybe you'd like to share them? >I'll go mark this "ready for committer". > Thanks for the review. I'll hold-off with the commit until the next CF, though, just to give others a proper opportunity to look at it. 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