• Michael Widenius's avatar
    Fixed all reported bugs for dynamic columns. · 052d1bfb
    Michael Widenius authored
    Bugs fixed:
    - Added automatic detection of unsigned arguments to COLUMN_CREATE()
    - If string length is not know for COLUMN_GET() use MAX_DYNAMIC_COLUMN_LENGTH instead of MAX_FIELD_BLOBLENGTH
    - null_value flag was not propery reset for COLUMN_LIST() and COLUMN_CREATE() which could lead to crashes later:
    - lp:778905 Assertion `value->year <= 9999' failed in dynamic_column_date_store
    - lp:778912 Assertion `field_pos < field_count' failed in Protocol_text::store in maria-5.3-mwl34
    
    include/ma_dyncol.h:
      Added define for max dynamic column length.
    mysql-test/r/cast.result:
      Added test of cast big unsigned int to signed (this test case was missing)
    mysql-test/r/dyncol.result:
      Added tests from reported bugs
      Added testing of automatic store of signed/unsigned integers
    mysql-test/t/cast.test:
      Added test of cast big unsigned int to signed (this test case was missing)
    mysql-test/t/dyncol.test:
      Added tests from reported bugs
      Added testing of automatic store of signed/unsigned integers
    sql/item.cc:
      Added assert to catch cases where null_value is not set properly
    sql/item_strfunc.cc:
      Added automatic detection of unsigned arguments to COLUMN_CREATE()
      COLUMN_GET() returned wrong value for illegal strings which lead to assert later
      null_value flag was not propery reset for COLUMN_LIST() and COLUMN_CREATE() which could lead to crashes later.
    sql/item_strfunc.h:
      If string length is not know for COLUMN_GET() use MAX_DYNAMIC_COLUMN_LENGTH
    052d1bfb
item_strfunc.cc 109 KB