Thread: optimizer pruning problem

optimizer pruning problem

From
Roberto Cornacchia
Date:
Just a month ago, we posted a bug-report on the BUGS mailing list
concerning the optimizer plan enumeration in the 6.5.0 release.
We haven't seen any comment about it and the problem is still unfixed in
the last release, so we wish to have a feedback from someone of the
developers.
We also posted a patch in the PATCHES mailing list.
The details of the bug can be found in the posted report still available
in the archives of the mailing list, here we just briefly redescribe the
problem:
the problem is in the pruning algorithm (functions add_pathlist,
better_path in optimizer/util/pathnode.c): it appens sometimes (see the
report) that in the path list of a RelOptInfo are kept more than one
path with the same order insted of only the best one. This is not
dangerous for the correctness of the algorithm, but it badly affects the
performance since the growth (exponential in the join number) in the
enumeration space.
Best regards

Roberto Cornacchia (cornacch@cs.unibo.it)
Andrea Ghidini     (ghidini@cs.unibo.it)


Re: [HACKERS] optimizer pruning problem

From
Tom Lane
Date:
Roberto Cornacchia <rcorna@tin.it> writes:
> Just a month ago, we posted a bug-report on the BUGS mailing list
> concerning the optimizer plan enumeration in the 6.5.0 release.
> We haven't seen any comment about it and the problem is still unfixed in
> the last release, so we wish to have a feedback from someone of the
> developers.

I believe I have taken care of this problem as part of the optimizer
overhaul I am doing for 6.6.  I was not planning to back-patch any of
this work for 6.5.2, however --- too many changes, not yet enough
testing.  If you pull down a current snapshot you should be able to
see what I have done with add_pathlist.
        regards, tom lane