Hi, 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 machine too. > 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 ... regards -- 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 --- a/src/backend/optimizer/path/clausesel.c +++ b/src/backend/optimizer/path/clausesel.c @@ -279,6 +279,10 @@ clauselist_selectivity(PlannerInfo *root, List *solution = choose_mv_statistics(root, relid, stats, clauses, conditions); + /* 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 (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers