row_sel_store_mysql_rec(): Convert NULL true VARCHAR columns

correctly.


innobase/row/row0sel.c:
  Initialize NULL true VARCHAR columns with NUL bytes, as that is
  what the columns will contain in handler::write_row().  (Bug #12186)
mysql-test/r/innodb.result:
  Update table checksums to reflect the new handling of
  true VARCHAR columns that are NULL.
This commit is contained in:
unknown 2005-07-28 12:30:52 +03:00
commit a6350b1d05
2 changed files with 14 additions and 6 deletions

View file

@ -2524,11 +2524,19 @@ row_sel_store_mysql_rec(
(byte) (templ->mysql_null_bit_mask);
switch (templ->type) {
case DATA_VARCHAR:
case DATA_CHAR:
case DATA_BINARY:
case DATA_VARMYSQL:
if (templ->mysql_type
== DATA_MYSQL_TRUE_VARCHAR) {
/* This is a >= 5.0.3 type
true VARCHAR. Zero the field. */
pad_char = 0x00;
break;
}
/* Fall through */
case DATA_CHAR:
case DATA_FIXBINARY:
case DATA_MYSQL:
case DATA_VARMYSQL:
/* MySQL pads all non-BLOB and non-TEXT
string types with space ' ' */
if (UNIV_UNLIKELY(templ->mbminlen == 2)) {