3569 Luis Soares 2011-07-11 [merge]
BUG#12695969
Manually merged mysql-5.0 into mysql-5.1.
conflicts
=========
client/mysqlibinlog.cc
added:
include/welcome_copyright_notice.h
modified:
client/mysqlbinlog.cc
3568 kevin.lewis@stripped 2011-07-07
Bug#12637786 was fixed with rb:692 by marko. But that fix has a remaining
bug. It added this assert;
ut_ad(ind_field->prefix_len);
before a section of code that assumes there is a prefix_len.
The patch replaced code that explicitly avoided this with a check for
prefix_len. It turns out that the purge thread can get to that assert
without a prefix_len because it does not use a row_ext_t* .
When UNIV_DEBUG is not defined, the affect of this is that the purge thread
sets the dfield->len to zero and then cannot find the entry in the index to
purge. So secondary index entries remain unpurged.
This patch does not do the assert. Instead, it uses
'if (ind_field->prefix_len) {...}'
around the section of code that assumes a prefix_len. This is the way the
patch I provided to Marko did it.
The test case is simply modified to do a sleep(10) in order to give the
purge thread a chance to run. Without the code change to row0row.c, this
modified testcase will assert if InnoDB was compiled with UNIV_DEBUG.
I tried to sleep(5), but it did not always assert.
modified:
mysql-test/suite/innodb_plugin/r/innodb-index.result
mysql-test/suite/innodb_plugin/t/innodb-index.test
storage/innodb_plugin/row/row0row.c
=== modified file 'client/mysqlbinlog.cc'
--- a/client/mysqlbinlog.cc 2011-07-03 15:47:37 +0000
+++ b/client/mysqlbinlog.cc 2011-07-11 16:13:27 +0000
@@ -36,6 +36,7 @@
#include "mysql_priv.h"
#include "log_event.h"
#include "sql_common.h"
+#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
#define BIN_LOG_HEADER_SIZE 4
#define PROBE_HEADER_LEN (EVENT_LEN_OFFSET+4)
@@ -1249,10 +1250,7 @@ static void print_version()
static void usage()
{
print_version();
- puts("By Monty and Sasha, for your professional use\n\
-This software comes with NO WARRANTY: This is free software,\n\
-and you are welcome to modify and redistribute it under the GPL license.\n");
-
+ puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
printf("\
Dumps a MySQL binary log in a format usable for viewing or for piping to\n\
the mysql command line client.\n\n");
=== added file 'include/welcome_copyright_notice.h'
--- a/include/welcome_copyright_notice.h 1970-01-01 00:00:00 +0000
+++ b/include/welcome_copyright_notice.h 2011-07-11 16:11:41 +0000
@@ -0,0 +1,31 @@
+/* Copyright (c) 2011, 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 Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
+
+#ifndef _welcome_copyright_notice_h_
+#define _welcome_copyright_notice_h_
+
+/*
+ This define specifies copyright notice which is displayed by every MySQL
+ program on start, or on help screen.
+*/
+
+#define ORACLE_WELCOME_COPYRIGHT_NOTICE(years) \
+ "Copyright (c) " years ", Oracle and/or its affiliates. All rights reserved.\n" \
+ "\n" \
+ "Oracle is a registered trademark of Oracle Corporation and/or its\n" \
+ "affiliates. Other names may be trademarks of their respective\n" \
+ "owners.\n"
+
+#endif /* _welcome_copyright_notice_h_ */
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.1 branch (luis.soares:3568 to 3569) Bug#12695969 | Luis Soares | 11 Jul |