• Mattias Jonsson's avatar
    Bug#11766249 bug#59316: PARTITIONING AND INDEX_MERGE MEMORY LEAK · e0887df8
    Mattias Jonsson authored
    When executing row-ordered-retrieval index merge,
    the handler was cloned, but it used the wrong
    memory root, so instead of allocating memory
    on the thread/query's mem_root, it used the table's
    mem_root, resulting in non released memory in the
    table object, and was not freed until the table was
    closed.
    
    Solution was to ensure that memory used during cloning
    of a handler was allocated from the correct memory root.
    
    This was implemented by fixing handler::clone() to also
    take a name argument, so it can be used with partitioning.
    And in ha_partition only allocate the ha_partition's ref, and
    call the original ha_partition partitions clone() and set at cloned
    partitions.
    
    Fix of .bzrignore on Windows with VS 2010
    e0887df8
ha_heap.h 4.6 KB