Commit 26339663 authored by unknown's avatar unknown
Browse files

table.cc:

  Bug #6802 MySQL 4.0's VARCHAR(NN) BINARY is interpreted as VARBINARY(NN) in 4.1


sql/table.cc:
  Bug #6802 MySQL 4.0's VARCHAR(NN) BINARY is interpreted as VARBINARY(NN) in 4.1
parent 9fc190e6
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -463,7 +463,26 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,

      /* old frm file */
      field_type= (enum_field_types) f_packtype(pack_flag);
      charset=f_is_binary(pack_flag) ? &my_charset_bin : outparam->table_charset;
      if (f_is_binary(pack_flag))
      {
        /*
          Try to choose the best 4.1 type:
          - for 4.0 "CHAR(N) BINARY" or "VARCHAR(N) BINARY" 
            try to find a binary collation for character set.
          - for other types (e.g. BLOB) just use my_charset_bin. 
        */
        if (!f_is_blob(pack_flag))
        {
          // 3.23 or 4.0 string
          if (!(charset= get_charset_by_csname(outparam->table_charset->csname,
                                               MY_CS_BINSORT, MYF(0))))
            charset= &my_charset_bin;
        }
        else
          charset= &my_charset_bin;
      }
      else
        charset= outparam->table_charset;
      bzero((char*) &comment, sizeof(comment));
    }
    *field_ptr=reg_field=