List:Commits« Previous MessageNext Message »
From:marko.makela Date:February 2 2012 12:04pm
Subject:bzr push into mysql-5.5 branch (marko.makela:3697 to 3699)
View as plain text  
 3699 Marko Mäkelä	2012-02-02
      ha_innobase::records_in_range(): Remove a debug assertion
      that prohibits an open range (full table).
      This assertion catches unnecessary calls to this method, but such calls
      are not harming correctness.

    modified:
      storage/innobase/handler/ha_innodb.cc
 3698 Marko Mäkelä	2012-02-02 [merge]
      Merge mysql-5.1 to mysql-5.5.

    modified:
      mysql-test/suite/innodb/r/innodb-index.result
      mysql-test/suite/innodb/t/innodb-index.test
      storage/innobase/row/row0merge.c
 3697 Marko Mäkelä	2012-02-02
      Bug #13651627 Move ut_ad(0) from the beginning to the end of buf_page_print(),
      print page dump
      
      buf_page_print(): Remove the ut_ad(0) from the beginning. Add two flags
      (enum buf_page_print_flags) that can be bitwise-ORed together:
      
      BUF_PAGE_PRINT_NO_CRASH:
        Do not crash debug builds at the end of buf_page_print().
      BUF_PAGE_PRINT_NO_FULL:
        Do not print the full page dump. This can be useful when adding
        diagnostic printout to flushing or to the doublewrite buffer.
      
      trx_sys_doublewrite_init_or_restore_page(): Replace exit(1) with ut_error,
      so that we can get a core dump if this extraordinary condition happens.
      
      rb:924 approved by Sunny Bains

    modified:
      storage/innobase/btr/btr0btr.c
      storage/innobase/btr/btr0sea.c
      storage/innobase/buf/buf0buf.c
      storage/innobase/buf/buf0flu.c
      storage/innobase/ibuf/ibuf0ibuf.c
      storage/innobase/include/btr0btr.ic
      storage/innobase/include/buf0buf.h
      storage/innobase/include/page0page.ic
      storage/innobase/lock/lock0lock.c
      storage/innobase/page/page0cur.c
      storage/innobase/page/page0page.c
      storage/innobase/row/row0sel.c
      storage/innobase/trx/trx0sys.c
=== modified file 'mysql-test/suite/innodb/r/innodb-index.result'
--- a/mysql-test/suite/innodb/r/innodb-index.result	revid:marko.makela@oracle.com-20120202103157-r8jdotfqbnt96tgv
+++ b/mysql-test/suite/innodb/r/innodb-index.result	revid:marko.makela@oracle.com-20120202115427-1dhniitgfygmo799
@@ -114,6 +114,10 @@ t12963823	CREATE TABLE `t12963823` (
   KEY `ndx_o` (`o`(500)),
   KEY `ndx_p` (`p`(500))
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+create table t1(a varchar(2) primary key) engine=innodb;
+insert into t1 values('');
+create index t1a1 on t1(a(1));
+drop table t1;
 set global innodb_file_per_table=0;
 set global innodb_file_format=Antelope;
 create table t1(a int not null, b int, c char(10) not null, d varchar(20)) engine = innodb;

=== modified file 'mysql-test/suite/innodb/t/innodb-index.test'
--- a/mysql-test/suite/innodb/t/innodb-index.test	revid:marko.makela@strippedtgv
+++ b/mysql-test/suite/innodb/t/innodb-index.test	revid:marko.makela@stripped9
@@ -119,6 +119,11 @@ show create table t12963823;
 # this file complete before dropping the table.  By then, the purge thread
 # will have delt with the updates above.
 
+# 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;
 
 eval set global innodb_file_per_table=$per_table;
 eval set global innodb_file_format=$format;

=== modified file 'storage/innobase/handler/ha_innodb.cc'
--- a/storage/innobase/handler/ha_innodb.cc	revid:marko.makela@stripped157-r8jdotfqbnt96tgv
+++ b/storage/innobase/handler/ha_innodb.cc	revid:marko.makela@strippediitgfygmo799
@@ -7611,7 +7611,6 @@ ha_innobase::records_in_range(
 	mem_heap_t*	heap;
 
 	DBUG_ENTER("records_in_range");
-	DBUG_ASSERT(min_key || max_key);
 
 	ut_a(prebuilt->trx == thd_to_trx(ha_thd()));
 

=== modified file 'storage/innobase/row/row0merge.c'
--- a/storage/innobase/row/row0merge.c	revid:marko.makela@stripped157-r8jdotfqbnt96tgv
+++ b/storage/innobase/row/row0merge.c	revid:marko.makela@strippedygmo799
@@ -1,6 +1,6 @@
 /*****************************************************************************
 
-Copyright (c) 2005, 2010, Innobase Oy. 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
@@ -582,7 +582,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-5.5 branch (marko.makela:3697 to 3699) marko.makela2 Feb