Commit a6350b1d authored by unknown's avatar unknown
Browse files

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
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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)) {
+4 −4
Original line number Diff line number Diff line
@@ -1452,16 +1452,16 @@ Error 1146 Table 'test.t4' doesn't exist
checksum table t1, t2, t3, t4;
Table	Checksum
test.t1	2948697075
test.t2	1157260244
test.t3	1157260244
test.t2	3835700799
test.t3	3835700799
test.t4	NULL
Warnings:
Error	1146	Table 'test.t4' doesn't exist
checksum table t1, t2, t3, t4 extended;
Table	Checksum
test.t1	3092701434
test.t2	1157260244
test.t3	1157260244
test.t2	3835700799
test.t3	3835700799
test.t4	NULL
Warnings:
Error	1146	Table 'test.t4' doesn't exist