• Alexander Barkov's avatar
    MDEV-34417 Wrong result set with utf8mb4_danish_ci and BNLH join · 6cecf61a
    Alexander Barkov authored
    There were erroneous calls for charpos() in key_hashnr() and key_buf_cmp().
    These functions are never called with prefix segments.
    
    The charpos() calls were wrong. Before the change BNHL joins
    - could return wrong result sets, as reported in MDEV-34417
    - were extremely slow for multi-byte character sets, because
      the hash was calculated on string prefixes, which increased
      the amount of collisions drastically.
    
    This patch fixes the wrong result set as reported in MDEV-34417,
    as well as (partially) the performance problem reported in MDEV-34352.
    6cecf61a
key.cc 25.8 KB