• Alexander Barkov's avatar
    Bug#52520 Difference in tinytext utf column metadata · eed26e92
    Alexander Barkov authored
          Problems:
          - regression (compating to version 5.1) in metadata for BLOB types
          - inconsistency between length metadata in server and embedded for BLOB types
          - wrong max_length calculation in items derived from BLOB columns
         @ libmysqld/lib_sql.cc
            Calculating length metadata in embedded similary to server version,
            using new function char_to_byte_length_safe().
         @ mysql-test/r/ctype_utf16.result
            Adding tests
         @ mysql-test/r/ctype_utf32.result
            Adding tests
         @ mysql-test/r/ctype_utf8.result
            Adding tests
         @ mysql-test/r/ctype_utf8mb4.result
            Adding tests
         @ mysql-test/t/ctype_utf16.test
            Adding tests
         @ mysql-test/t/ctype_utf32.test
            Adding tests
         @ mysql-test/t/ctype_utf8.test
            Adding tests
         @ mysql-test/t/ctype_utf8mb4.test
            Adding tests
         @ sql/field.cc
            Overriding char_length() for Field_blob:
            unlike in generic Item::char_length() we don't
            divide to mbmaxlen for BLOBs.
         @ sql/field.h
            - Making Field::char_length() virtual
            - Adding prototype for Field_blob::char_length()
         @ sql/item.h
            - Adding new helper function char_to_byte_length_safe()
            - Using new function
         @ sql/protocol.cc
            Using new function char_to_byte_length_safe().
    
        modified:
          libmysqld/lib_sql.cc
          mysql-test/r/ctype_utf16.result
          mysql-test/r/ctype_utf32.result
          mysql-test/r/ctype_utf8.result
          mysql-test/r/ctype_utf8mb4.result
          mysql-test/t/ctype_utf16.test
          mysql-test/t/ctype_utf32.test
          mysql-test/t/ctype_utf8.test
          mysql-test/t/ctype_utf8mb4.test
          sql/field.cc
          sql/field.h
          sql/item.h
          sql/protocol.cc
    eed26e92
field.cc 284 KB