Commit a6350b1d authored by unknown's avatar unknown

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.
parent 57c537c6
...@@ -2524,11 +2524,19 @@ row_sel_store_mysql_rec( ...@@ -2524,11 +2524,19 @@ row_sel_store_mysql_rec(
(byte) (templ->mysql_null_bit_mask); (byte) (templ->mysql_null_bit_mask);
switch (templ->type) { switch (templ->type) {
case DATA_VARCHAR: case DATA_VARCHAR:
case DATA_CHAR:
case DATA_BINARY: 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_FIXBINARY:
case DATA_MYSQL: case DATA_MYSQL:
case DATA_VARMYSQL:
/* MySQL pads all non-BLOB and non-TEXT /* MySQL pads all non-BLOB and non-TEXT
string types with space ' ' */ string types with space ' ' */
if (UNIV_UNLIKELY(templ->mbminlen == 2)) { if (UNIV_UNLIKELY(templ->mbminlen == 2)) {
......
...@@ -1452,16 +1452,16 @@ Error 1146 Table 'test.t4' doesn't exist ...@@ -1452,16 +1452,16 @@ Error 1146 Table 'test.t4' doesn't exist
checksum table t1, t2, t3, t4; checksum table t1, t2, t3, t4;
Table Checksum Table Checksum
test.t1 2948697075 test.t1 2948697075
test.t2 1157260244 test.t2 3835700799
test.t3 1157260244 test.t3 3835700799
test.t4 NULL test.t4 NULL
Warnings: Warnings:
Error 1146 Table 'test.t4' doesn't exist Error 1146 Table 'test.t4' doesn't exist
checksum table t1, t2, t3, t4 extended; checksum table t1, t2, t3, t4 extended;
Table Checksum Table Checksum
test.t1 3092701434 test.t1 3092701434
test.t2 1157260244 test.t2 3835700799
test.t3 1157260244 test.t3 3835700799
test.t4 NULL test.t4 NULL
Warnings: Warnings:
Error 1146 Table 'test.t4' doesn't exist Error 1146 Table 'test.t4' doesn't exist
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment