• unknown's avatar
    Bug #18895: BIT values cause joins to fail · 89ce81ce
    unknown authored
    The Field::eq() considered instances of Field_bit that differ only in 
    bit_ptr/bit_ofs equal. This caused equality conditions optimization 
    (build_equal_items_for_cond()) to make bad field substitutions that result
    in wrong predicates. 
    Field_bit requires an overloaded eq() function that checks the bit_ptr/bit_ofs
    in addition to Field::eq().
    
    
    mysql-test/r/select.result:
      Bug #18895: BIT values cause joins to fail
      
      - test case
    mysql-test/t/select.test:
      Bug #18895: BIT values cause joins to fail
      
      - test case
    sql/field.h:
      Bug #18895: BIT values cause joins to fail
      
      - eq() method overloaded for Field_bit
    89ce81ce
field.h 59.4 KB