Commit 4621d480 authored by Ramil Kalimullin's avatar Ramil Kalimullin

Auto-merge.

parents 4338e06f 06be03f7
...@@ -1853,6 +1853,21 @@ CHECK TABLE t1; ...@@ -1853,6 +1853,21 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
DROP TABLE t1; DROP TABLE t1;
#
# Bug #49465: valgrind warnings and incorrect live checksum...
#
CREATE TABLE t1(
a VARCHAR(1), b VARCHAR(1), c VARCHAR(1),
f VARCHAR(1), g VARCHAR(1), h VARCHAR(1),
i VARCHAR(1), j VARCHAR(1), k VARCHAR(1)) CHECKSUM=1;
INSERT INTO t1 VALUES('', '', '', '', '', '', '', '', '');
CHECKSUM TABLE t1 QUICK;
Table Checksum
test.t1 467455460
CHECKSUM TABLE t1 EXTENDED;
Table Checksum
test.t1 467455460
DROP TABLE t1;
End of 5.0 tests End of 5.0 tests
create table t1 (a int not null, key `a` (a) key_block_size=1024); create table t1 (a int not null, key `a` (a) key_block_size=1024);
show create table t1; show create table t1;
......
...@@ -1184,6 +1184,20 @@ SELECT a FROM t1; ...@@ -1184,6 +1184,20 @@ SELECT a FROM t1;
CHECK TABLE t1; CHECK TABLE t1;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # Bug #49465: valgrind warnings and incorrect live checksum...
--echo #
CREATE TABLE t1(
a VARCHAR(1), b VARCHAR(1), c VARCHAR(1),
f VARCHAR(1), g VARCHAR(1), h VARCHAR(1),
i VARCHAR(1), j VARCHAR(1), k VARCHAR(1)) CHECKSUM=1;
INSERT INTO t1 VALUES('', '', '', '', '', '', '', '', '');
CHECKSUM TABLE t1 QUICK;
CHECKSUM TABLE t1 EXTENDED;
DROP TABLE t1;
--echo End of 5.0 tests --echo End of 5.0 tests
......
...@@ -782,12 +782,21 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, ...@@ -782,12 +782,21 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
restore_record(table,s->default_values); // Get empty record restore_record(table,s->default_values); // Get empty record
else else
{ {
TABLE_SHARE *share= table->s;
/* /*
Fix delete marker. No need to restore rest of record since it will Fix delete marker. No need to restore rest of record since it will
be overwritten by fill_record() anyway (and fill_record() does not be overwritten by fill_record() anyway (and fill_record() does not
use default values in this case). use default values in this case).
*/ */
table->record[0][0]= table->s->default_values[0]; table->record[0][0]= share->default_values[0];
/* Fix undefined null_bits. */
if (share->null_bytes > 1 && share->last_null_bit_pos)
{
table->record[0][share->null_bytes - 1]=
share->default_values[share->null_bytes - 1];
}
} }
if (fill_record_n_invoke_before_triggers(thd, table->field, *values, 0, if (fill_record_n_invoke_before_triggers(thd, table->field, *values, 0,
table->triggers, table->triggers,
......
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