• konstantin@mysql.com's avatar
    - don't call JOIN::join_free(1) twice for every join in JOIN::cleanup(). · 56a37f8e
    konstantin@mysql.com authored
    The reason it happened was that both, JOIN::cleanup() and JOIN::join_free(),
    went over all nested joins and called cleanup/join_free for them.
    For that:
    - split recursive and non-recursive parts of JOIN::cleanup() and
    JOIN::join_free()
    - rename JOIN::cleanup to JOIN::destroy, as it actually destroys its
      argument
    - move the recursive part of JOIN::cleanup to st_select_lex::cleanup
    - move the non-recursive part of JOIN::join_free to the introduced
      method JOIN::cleanup().
    56a37f8e
sql_select.cc 419 KB