• Konstantin Osipov's avatar
    A test case for Bug#50788 "main.merge fails on HPUX", · 1afe6ff0
    Konstantin Osipov authored
    and a backport of relevant changes from the 6.0
    version of the fix done by Ingo Struewing.
    The bug itself was fixed by the patch for Bug#54811.
    
    
    MyISAMMRG engine would try to use MMAP on its children
    even on platforms that don't support it and even if
    myisam_use_mmap option was off.
    This lead to an infinite hang in INSERT ... SELECT into 
    a MyISAMMRG table when the destination MyISAM table
    was also selected from.
    
    A bug in duplicate detection fixed by 54811 was essential to 
    the hang - when a duplicate is detected, the optimizer 
    disables the use of memory mapped files, and it wasn't the case.
    
    The patch below is also to not turn on MMAP on children tables
    if myisam_use_mmap is off.
    A test case is added to cover MyISAMMRG and myisam_use_mmap
    option.
    
    
    mysql-test/r/merge_mmap.result:
      Result file - Bug#50788.
    mysql-test/t/merge_mmap-master.opt:
      An option file for the test for Bug#50788 -- use mmap.
    mysql-test/t/merge_mmap.test:
      Try INSERT ... SELECT into a merge table when myisam_use_mmap is on (Bug#50788).
    storage/myisam/mi_statrec.c:
      Fixed misinterpretation of the return value of my_b_read().
    storage/myisammrg/ha_myisammrg.cc:
      Skip HA_EXTRA_MMAP if MyISAM memory mapping is disabled.
    1afe6ff0
merge_mmap.test 1.48 KB