Re: multivariate statistics / patch v7

From: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Cc: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>, Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
Subject: Re: multivariate statistics / patch v7
Date: 2015-05-25 20:43:46
Views: Raw Message | Whole Thread | Download mbox
Lists: pgsql-hackers


attached is v7 of the multivariate stats patch. The main improvement is
major refactoring of the clausesel.c portion - splitting the awfully
long spaghetti-style functions into smaller pieces, making it much more
understandable etc.

I do assume some of those pieces are unnecessary because there already
is a helper function with the same purpose (but I'm not aware of that).
But IMHO this piece of code begins to look reasonable (especially when
compared to the previous state).

The other major improvement it review of the comments (including FIXMEs
and TODOs), and removal of the obsolete / misplaced ones. And there was
plenty of those ...

These changes made this version ~20k smaller than v6.

The patch also rebases to current master, which I assume shall be quite
stable - so hopefully no more duplicate OIDs for a while.

There are 6 files attached, but only 0002-0006 are actually part of the
multivariate statistics patch itself. The first part makes it possible
to use pull_varnos() with expression trees containing RestrictInfo
nodes, but maybe this is not the right way to fix this (there's another
thread where this was discussed).

Also, the regression tests testing plan choice with multivariate stats
(e.g. that a bitmap index scan is chosen instead of index scan) fail
from time to time. I suppose this happens because the invalidation after
ANALYZE is not processed before executing the query, so the optimizer
does not see the stats, or something like that.


Tomas Vondra
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachment Content-Type Size
0001-teach-expression-walker-about-RestrictInfo-v7.patch text/x-patch 920 bytes
0002-shared-infrastructure-and-functional-dependencies-v7.patch text/x-patch 87.4 KB
0003-clause-reduction-using-functional-dependencies-v7.patch text/x-patch 57.4 KB
0004-multivariate-MCV-lists-v7.patch text/x-patch 124.7 KB
0005-multivariate-histograms-v7.patch text/x-patch 137.1 KB
0006-multi-statistics-estimation-v7.patch text/x-patch 93.5 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Josh Berkus 2015-05-25 21:11:34 Re: [CORE] [BUGS] BUG #13350: blindly fsyncing data dir considered harmful
Previous Message Josh Berkus 2015-05-25 20:41:10 Re: fsync-pgdata-on-recovery tries to write to more files than previously