]> granicus.if.org Git - postgresql/commit
Fix GEQO to work again in CVS tip, by being more careful about memory
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 16 Dec 2002 21:30:30 +0000 (21:30 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 16 Dec 2002 21:30:30 +0000 (21:30 +0000)
commit9f76d0d926ffe72e32248b7c79f585c47e643981
tree5fc47061415534dab7ff97519aea1603bccce0c9
parent9cecff0314c3c75248f29fea6b80c19d9a8a8c70
Fix GEQO to work again in CVS tip, by being more careful about memory
allocation in best_inner_indexscan().  While at it, simplify GEQO's
interface to the main planner --- make_join_rel() offers exactly the
API it really wants, whereas calling make_rels_by_clause_joins() and
make_rels_by_clauseless_joins() required jumping through hoops.
Rewrite gimme_tree for clarity (sometimes iteration is much better than
recursion), and approximately halve GEQO's runtime by recognizing that
tours of the forms (a,b,c,d,...) and (b,a,c,d,...) are equivalent
because of symmetry in make_join_rel().
src/backend/optimizer/geqo/geqo_eval.c
src/backend/optimizer/geqo/geqo_main.c
src/backend/optimizer/geqo/geqo_misc.c
src/backend/optimizer/path/indxpath.c
src/backend/optimizer/path/joinrels.c
src/include/optimizer/geqo.h
src/include/optimizer/paths.h