On Wed, 2016-03-09 at 08:45 -0800, Jeff Janes wrote:
> On Wed, Mar 9, 2016 at 7:02 AM, Tomas Vondra
> <tomas.von...@2ndquadrant.com> wrote:
> > Hi,
> > thanks for the feedback. Attached is v14 of the patch series, fixing
> > most of the points you've raised.
> Hi Tomas,
> Applied to aa09cd242fa7e3a694a31f, I still get the seg faults in make
> check if I configure without --enable-cassert.
Ah, after disabling asserts I can reproduce it too. And the reason why
it fails is quite simple - clauselist_selectivity modifies the original
list of clauses, which then confuses cost_qual_eval.
Can you try if the attached patch fixes the issue? I'll need to rework a
bit more of the code, but let's see if this fixes the issue on your
> With --enable-cassert, it passes the regression test.
I wonder how can it work with casserts and fail without them. That's
kinda exactly the opposite to what I'd expect ...
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
diff --git a/src/backend/optimizer/path/clausesel.c b/src/backend/optimizer/path/clausesel.c
index 2540da9..ddfdc3b 100644
@@ -279,6 +279,10 @@ clauselist_selectivity(PlannerInfo *root,
List *solution = choose_mv_statistics(root, relid, stats,
+ /* FIXME we must not scribble over the original list */
+ if (solution)
+ clauses = list_copy(clauses);
* We have a good solution, which is merely a list of statistics that
* we need to apply. We'll apply the statistics one by one (in the order
Sent via pgsql-hackers mailing list (firstname.lastname@example.org)
To make changes to your subscription: