3827 Marko Mäkelä 2012-02-02 [merge]
Merge mysql-5.5 to mysql-trunk.
modified:
mysql-test/suite/innodb/r/innodb-index.result
mysql-test/suite/innodb/t/innodb-index.test
storage/innobase/row/row0merge.cc
3826 Alexander Barkov 2012-02-02
Bug#13616434 ASSERTION FAILED: NANOSECONDS< 1000000000
Problem:
negative lldiv_t values with zero integer part and non-zero fractional part
(e.g. -0.1111) were not detected, so negative fractional part was
later casted to a big unsigned number, which made the assertion crash.
Fix:
Return error if lld.rem is negative.
modified:
mysql-test/r/type_temporal_fractional.result
mysql-test/t/type_temporal_fractional.test
sql/sql_time.cc
modified:
mysql-test/r/type_temporal_fractional.result
mysql-test/t/type_temporal_fractional.test
sql/sql_time.cc
=== modified file 'mysql-test/suite/innodb/r/innodb-index.result'
--- a/mysql-test/suite/innodb/r/innodb-index.result revid:alexander.barkov@stripped
+++ b/mysql-test/suite/innodb/r/innodb-index.result revid:marko.makela@stripped
@@ -1,5 +1,9 @@
set global innodb_file_per_table=on;
set global innodb_file_format='Barracuda';
+create table t1(a varchar(2) primary key) engine=innodb;
+insert into t1 values('');
+create index t1a1 on t1(a(1));
+drop table t1;
create table t1(a int not null, b int, c char(10) not null, d varchar(20)) engine = innodb;
insert into t1 values (5,5,'oo','oo'),(4,4,'tr','tr'),(3,4,'ad','ad'),(2,3,'ak','ak');
commit;
=== modified file 'mysql-test/suite/innodb/t/innodb-index.test'
--- a/mysql-test/suite/innodb/t/innodb-index.test revid:alexander.barkov@strippedm-20120202105818-0dgbyv80h1hs9hdj
+++ b/mysql-test/suite/innodb/t/innodb-index.test revid:marko.makela@stripped20120202120050-zmqb0lpch6w2ype5
@@ -7,6 +7,12 @@ let $format=`select @@innodb_file_format
set global innodb_file_per_table=on;
set global innodb_file_format='Barracuda';
+# Bug#13654923 BOGUS DEBUG ASSERTION IN INDEX CREATION FOR ZERO-LENGTH RECORD
+create table t1(a varchar(2) primary key) engine=innodb;
+insert into t1 values('');
+create index t1a1 on t1(a(1));
+drop table t1;
+
create table t1(a int not null, b int, c char(10) not null, d varchar(20)) engine = innodb;
insert into t1 values (5,5,'oo','oo'),(4,4,'tr','tr'),(3,4,'ad','ad'),(2,3,'ak','ak');
commit;
=== modified file 'storage/innobase/row/row0merge.cc'
--- a/storage/innobase/row/row0merge.cc revid:alexander.barkov@stripped
+++ b/storage/innobase/row/row0merge.cc revid:marko.makela@oracle.com-20120202120050-zmqb0lpch6w2ype5
@@ -1,6 +1,6 @@
/*****************************************************************************
-Copyright (c) 2005, 2011, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
@@ -664,7 +664,7 @@ row_merge_buf_write(
REC_STATUS_ORDINARY,
entry, n_fields,
&extra_size);
- ut_ad(size > extra_size);
+ ut_ad(size >= extra_size);
ut_ad(extra_size >= REC_N_NEW_EXTRA_BYTES);
extra_size -= REC_N_NEW_EXTRA_BYTES;
size -= REC_N_NEW_EXTRA_BYTES;
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk branch (marko.makela:3826 to 3827) | marko.makela | 2 Feb |