• unknown's avatar
    Bug#15776: 32-bit signed int used for length of blob · 9efddcf6
    unknown authored
    Based on contributed patch from Martin Friebe, CLA from 2007-02-24.
    
    The parser lacked support for field sizes after signed long,
    when it should extend to 2**32-1.
    
    Now, we correct that limitation, and also make the error handling
    consistent for casts.
    ---
    Fix minor complaints of Marc Alff, for patch against B-g#15776.
    ---
    Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my50-bug15776
    into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776
    ---
    Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776
    into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-build
    ---
    testing
    
    
    mysql-test/r/type_blob.result:
      Verify that blobs may be created with the size that is already
      documented.
      
      Additionally, test the limits of several other types.
    mysql-test/t/type_blob.test:
      Verify that blobs may be created with the size that is already
      documented.
      
      Additionally, test the limits of several other types.
      ---
      Drop table in case we start from a bad state.
    sql/field.cc:
      atoi() insufficient to gauge the length of some fields.  Change
      it to strtoul().
    sql/item_create.cc:
      atoi() insufficient to gauge the length of some fields.  Change
      it to strtoul().
      
      If a casted length is too long, raise an error.
    sql/share/errmsg.txt:
      Change ER_TOO_BIG_FIELDLENGTH so that it can accept sizes larger
      than 2**15 -- instead, 2**32.
      ---
      Manual merge.
    sql/sql_yacc.yy:
      Make lengths take, in addition to NUM, LONG_NUM, ULONGLONG_NUM,
      and DECIMAL_NUM.
      ---
      yacc/bison is left-recursive, so FIXME statement is wrong.
      ---
      Manual merge and reformatting.
    sql/unireg.h:
      Define new constant.
    9efddcf6
item_create.cc 113 KB