• unknown's avatar
    Bug#18908: ERROR 1406 (22001): Data too long for column :: using utf8 · 00c1c19e
    unknown authored
    Problem: Too confusing error message when cannot convert
    between string and column character sets on INSERT and UPDATE.
    Fix: producing a better error message, instead of "Data too long"
    in such cases
    Additional changes: Adding "DROP TABLE IF EXISTS" into several
    tests to be safe against failures in previous tests. 
    
    
    mysql-test/include/strict_autoinc.inc:
      Adding DROP TABLE to be safe against previous tests failure.
    mysql-test/r/ctype_recoding.result:
      Fixing test results
    mysql-test/r/ctype_utf8.result:
      Fixing test results
    mysql-test/r/fulltext.result:
      Fixing test results
    mysql-test/r/strict_autoinc_1myisam.result:
      Adding DROP TABLE to be safe against previous tests failure.
    mysql-test/r/strict_autoinc_2innodb.result:
      Adding DROP TABLE to be safe against previous tests failure.
    mysql-test/r/strict_autoinc_3heap.result:
      Adding DROP TABLE to be safe against previous tests failure.
    mysql-test/r/strict_autoinc_4bdb.result:
      Adding DROP TABLE to be safe against previous tests failure.
    mysql-test/r/strict_autoinc_5ndb.result:
      Adding DROP TABLE to be safe against previous tests failure.
    sql/field.cc:
      - producing better error messages than
        "DATA TRUNCATED" or "DATA TOO LONG" (in strict mode)
        in case of "not well formed source" and
        "cannot convert to field character set"
      - Performance improvements: copying directly to
        the target, instead of using an intermediate
        String.
      - Moving duplicate code into report_data_too_long() function.
    sql/sql_string.cc:
      Adding a new function to convert strings between character sets,
      but not more than "nchar" characters - a helper function for
      Field_string::store(), Field_varstring::store() and Field_blob::store().
    sql/sql_string.h:
      Adding new function prototype.
    00c1c19e
strict_autoinc_2innodb.result 681 Bytes