• Monty's avatar
    MDEV-32476 LeakSanitizer errors in get_quick_select or Assertion ... · 6a674c31
    Monty authored
    Problem was that JOIN_TAB::cleanup() was not run because
    JOIN::top_join_tab_count was not set in case of early errors.
    
    Fixed by setting JOIN::tab_join_tab_count when JOIN_TAB's are allocated.
    
    Something that should eventually be fixed:
    - Cleaning up JOIN_TAB's is now done in 3 different loops.
      JOIN_TAB::cleanup() is only doing a partial cleanup. Other cleanups
      are done outside of JOIN_TAB::cleanup().
    
    The above should be fixed so that JOIN_TAB::cleanup() is freeing
    everything related to it's own memory, including all its sub JOIN_ TAB's.
    JOIN::cleanup() should only loop over all it's top JOIN_TAB's and call
    JOIN_TAB::cleanup() on these.
    This will greatly simplify and speedup the current code (as we now do some
    cleanup's twice).
    6a674c31
leaks.test 562 Bytes