From f67ad80280407fb457dd1e5fc953b306e726ef4f Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Fri, 13 Nov 2009 21:32:29 +0100 Subject: [PATCH 01/20] Solve a "make" rule issue in the context of dtarce and shared objects: Replace a correct dependency in "storage/Makefile.am" (which "make" cannot handle correctly, because it is to a "libtool" convenience module) by a hack which it should. --- storage/archive/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/storage/archive/Makefile.am b/storage/archive/Makefile.am index 143d684025e..871acd673d1 100644 --- a/storage/archive/Makefile.am +++ b/storage/archive/Makefile.am @@ -80,6 +80,9 @@ ha_archive_la_DEPENDENCIES = probes_sh_mysql.o dtrace_shared_files dtrace_provid CLEANFILES = $(DTRACEPROVIDER) dtrace_files dtrace_providers dtrace_shared_files DTRACEFILES = libarchive_a-ha_archive.o DTRACESHAREDFILES = .libs/ha_archive_la-ha_archive.o +# Hack: We "depend" on ".libs/" but have no rule for it, +# but it is created as a byproduct of the ".lo" +DTRACESHAREDDEPEND = ha_archive_la-ha_archive.lo DTRACEPROVIDER = probes_mysql.d dtrace_files: @@ -93,7 +96,7 @@ probes_mysql.d: $(CP) $(top_srcdir)/include/probes_mysql.d.base probes_mysql.d echo timestamp > dtrace_sources -probes_sh_mysql.o: $(DTRACEPROVIDER) $(DTRACESHAREDFILES) +probes_sh_mysql.o: $(DTRACEPROVIDER) $(DTRACESHAREDDEPEND) $(DTRACE) $(DTRACEFLAGS) -G -s $(DTRACEPROVIDER) $(DTRACESHAREDFILES) -o $@ probes_mysql.o: $(DTRACEPROVIDER) $(DTRACEFILES) From 9cdfff3135da6a62db71dc1e6c8dcf47e7f3a6ee Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Fri, 13 Nov 2009 23:07:41 +0100 Subject: [PATCH 02/20] Add missing cleanup, needed for "make distcheck" to succeed. --- storage/archive/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/archive/Makefile.am b/storage/archive/Makefile.am index 871acd673d1..bb88ff2e8d1 100644 --- a/storage/archive/Makefile.am +++ b/storage/archive/Makefile.am @@ -77,7 +77,7 @@ libarchive_a_DEPENDENCIES = probes_mysql.o dtrace_files dtrace_providers ha_archive_la_LIBADD = probes_sh_mysql.o ha_archive_la_DEPENDENCIES = probes_sh_mysql.o dtrace_shared_files dtrace_providers -CLEANFILES = $(DTRACEPROVIDER) dtrace_files dtrace_providers dtrace_shared_files +CLEANFILES = $(DTRACEPROVIDER) dtrace_files dtrace_providers dtrace_shared_files dtrace_sources DTRACEFILES = libarchive_a-ha_archive.o DTRACESHAREDFILES = .libs/ha_archive_la-ha_archive.o # Hack: We "depend" on ".libs/" but have no rule for it, From a26aa84388702bb43629b4a0b611f21ce2849c56 Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Mon, 16 Nov 2009 19:36:55 +0100 Subject: [PATCH 03/20] In a C file, use C style comments and not C++ style. --- mysys/typelib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysys/typelib.c b/mysys/typelib.c index a0fe8a96a89..cb72c91e20d 100644 --- a/mysys/typelib.c +++ b/mysys/typelib.c @@ -184,7 +184,7 @@ my_ulonglong find_typeset(char *x, TYPELIB *lib, int *err) i= x; while (*x && *x != field_separator) x++; - if (x[0] && x[1]) // skip separator if found + if (x[0] && x[1]) /* skip separator if found */ x++; if ((find= find_type(i, lib, 2 | 8) - 1) < 0) DBUG_RETURN(0); From 0487a1a0e53c7c8b98958f273cee8cbcaa8767e5 Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Tue, 17 Nov 2009 13:55:42 +0100 Subject: [PATCH 04/20] The "hash_*" functions have got a prefix "my_" in 2008. Recently, the "#define" directives mapping the old names to the new ones have been removed, so now all callers must use the new names. This change was missing in the DB2 storage handler modules. --- storage/ibmdb2i/db2i_charsetSupport.cc | 12 ++++++------ storage/ibmdb2i/ha_ibmdb2i.cc | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/storage/ibmdb2i/db2i_charsetSupport.cc b/storage/ibmdb2i/db2i_charsetSupport.cc index 83bf1b9448b..f5a3a74025e 100644 --- a/storage/ibmdb2i/db2i_charsetSupport.cc +++ b/storage/ibmdb2i/db2i_charsetSupport.cc @@ -164,10 +164,10 @@ int32 initCharsetSupport() } VOID(pthread_mutex_init(&textDescMapHashMutex,MY_MUTEX_INIT_FAST)); - hash_init(&textDescMapHash, &my_charset_bin, 10, offsetof(TextDescMap, hashKey), sizeof(TextDescMap::hashKey), 0, 0, HASH_UNIQUE); + my_hash_init(&textDescMapHash, &my_charset_bin, 10, offsetof(TextDescMap, hashKey), sizeof(TextDescMap::hashKey), 0, 0, HASH_UNIQUE); VOID(pthread_mutex_init(&iconvMapHashMutex,MY_MUTEX_INIT_FAST)); - hash_init(&iconvMapHash, &my_charset_bin, 10, offsetof(IconvMap, hashKey), sizeof(IconvMap::hashKey), 0, 0, HASH_UNIQUE); + my_hash_init(&iconvMapHash, &my_charset_bin, 10, offsetof(IconvMap, hashKey), sizeof(IconvMap::hashKey), 0, 0, HASH_UNIQUE); init_alloc_root(&textDescMapMemroot, 2048, 0); init_alloc_root(&iconvMapMemroot, 256, 0); @@ -191,9 +191,9 @@ void doneCharsetSupport() free_root(&iconvMapMemroot, 0); pthread_mutex_destroy(&textDescMapHashMutex); - hash_free(&textDescMapHash); + my_hash_free(&textDescMapHash); pthread_mutex_destroy(&iconvMapHashMutex); - hash_free(&iconvMapHash); + my_hash_free(&iconvMapHash); free_aligned(QlgCvtTextDescToDesc_sym); } @@ -415,7 +415,7 @@ static int32 convertTextDesc(const int32 inType, const int32 outType, const char memcpy(hashKey.inDesc, inDescOverride, len); memset(hashKey.inDesc+len, 0, sizeof(hashKey.inDesc) - len); - if (!(mapping=(TextDescMap *) hash_search(&textDescMapHash, + if (!(mapping=(TextDescMap *) my_hash_search(&textDescMapHash, (const uchar*)&hashKey, sizeof(hashKey)))) { @@ -748,7 +748,7 @@ int32 getConversion(enum_conversionDirection direction, const CHARSET_INFO* cs, /* Look for the conversion in the cache and add it if it is not there. */ IconvMap *mapping; - if (!(mapping= (IconvMap *) hash_search(&iconvMapHash, + if (!(mapping= (IconvMap *) my_hash_search(&iconvMapHash, (const uchar*)&hashKey, sizeof(hashKey)))) { diff --git a/storage/ibmdb2i/ha_ibmdb2i.cc b/storage/ibmdb2i/ha_ibmdb2i.cc index 0fc2d1e83dc..759562e3217 100644 --- a/storage/ibmdb2i/ha_ibmdb2i.cc +++ b/storage/ibmdb2i/ha_ibmdb2i.cc @@ -284,8 +284,8 @@ static int ibmdb2i_init_func(void *p) was_ILE_inited = false; ibmdb2i_hton= (handlerton *)p; VOID(pthread_mutex_init(&ibmdb2i_mutex,MY_MUTEX_INIT_FAST)); - (void) hash_init(&ibmdb2i_open_tables,system_charset_info,32,0,0, - (hash_get_key) ibmdb2i_get_key,0,0); + (void) my_hash_init(&ibmdb2i_open_tables,system_charset_info,32,0,0, + (my_hash_get_key) ibmdb2i_get_key,0,0); ibmdb2i_hton->state= SHOW_OPTION_YES; ibmdb2i_hton->create= ibmdb2i_create_handler; @@ -340,7 +340,7 @@ static int ibmdb2i_done_func(void *p) doneCharsetSupport(); - hash_free(&ibmdb2i_open_tables); + my_hash_free(&ibmdb2i_open_tables); pthread_mutex_destroy(&ibmdb2i_mutex); DBUG_RETURN(0); @@ -356,7 +356,7 @@ IBMDB2I_SHARE *ha_ibmdb2i::get_share(const char *table_name, TABLE *table) pthread_mutex_lock(&ibmdb2i_mutex); length=(uint) strlen(table_name); - if (!(share=(IBMDB2I_SHARE*) hash_search(&ibmdb2i_open_tables, + if (!(share=(IBMDB2I_SHARE*) my_hash_search(&ibmdb2i_open_tables, (uchar*)table_name, length))) { @@ -387,7 +387,7 @@ IBMDB2I_SHARE *ha_ibmdb2i::get_share(const char *table_name, TABLE *table) if (rc) { delete share->db2Table; - hash_delete(&ibmdb2i_open_tables, (uchar*) share); + my_hash_delete(&ibmdb2i_open_tables, (uchar*) share); thr_lock_delete(&share->lock); my_errno = rc; goto error; @@ -420,7 +420,7 @@ int ha_ibmdb2i::free_share(IBMDB2I_SHARE *share) delete share->db2Table; db2Table = NULL; - hash_delete(&ibmdb2i_open_tables, (uchar*) share); + my_hash_delete(&ibmdb2i_open_tables, (uchar*) share); thr_lock_delete(&share->lock); pthread_mutex_destroy(&share->mutex); my_free(share, MYF(0)); From 8a5904aef2bedb0229281e65be57bf681bcfd7ae Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Tue, 17 Nov 2009 14:35:05 +0100 Subject: [PATCH 05/20] Type change: "fk->name" is no "const char *" any more, rather a "LEX_STRING". To access its string part, the ".str" element must be accessed. This change was missing in "storage/ibmdb2i/db2i_constraints.cc", add it now. --- storage/ibmdb2i/db2i_constraints.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/storage/ibmdb2i/db2i_constraints.cc b/storage/ibmdb2i/db2i_constraints.cc index 9a96eda1173..50af6c27898 100644 --- a/storage/ibmdb2i/db2i_constraints.cc +++ b/storage/ibmdb2i/db2i_constraints.cc @@ -102,7 +102,7 @@ int ha_ibmdb2i::buildDB2ConstraintString(LEX* lex, Foreign_key* fk = (Foreign_key*)curKey; char db2LibName[MAX_DB2_SCHEMANAME_LENGTH+1]; - if (fk->name) + if (fk->name.str) { char db2FKName[MAX_DB2_FILENAME_LENGTH+1]; appendHere.append(STRING_WITH_LEN("CONSTRAINT ")); @@ -120,7 +120,7 @@ int ha_ibmdb2i::buildDB2ConstraintString(LEX* lex, appendHere.append('.'); - convertMySQLNameToDB2Name(fk->name, db2FKName, sizeof(db2FKName)); + convertMySQLNameToDB2Name(fk->name.str, db2FKName, sizeof(db2FKName)); appendHere.append(db2FKName); } @@ -139,7 +139,7 @@ int ha_ibmdb2i::buildDB2ConstraintString(LEX* lex, } firstTime = false; - convertMySQLNameToDB2Name(curColumn->field_name, colName, sizeof(colName)); + convertMySQLNameToDB2Name(curColumn->field_name.str, colName, sizeof(colName)); appendHere.append(colName); // DB2 requires that the sort sequence on the child table match the parent table's @@ -148,7 +148,7 @@ int ha_ibmdb2i::buildDB2ConstraintString(LEX* lex, Field** field = fields; do { - if (strcmp((*field)->field_name, curColumn->field_name) == 0) + if (strcmp((*field)->field_name, curColumn->field_name.str) == 0) { int rc = updateAssociatedSortSequence((*field)->charset(), fileSortSequenceType, @@ -199,7 +199,7 @@ int ha_ibmdb2i::buildDB2ConstraintString(LEX* lex, } firstTime = false; - convertMySQLNameToDB2Name(curRef->field_name, colName, sizeof(colName)); + convertMySQLNameToDB2Name(curRef->field_name.str, colName, sizeof(colName)); appendHere.append(colName); } From 04bf4eeea9fa387722b7bf95ffdd6957791b4241 Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Tue, 17 Nov 2009 17:05:36 +0100 Subject: [PATCH 06/20] Disable WL#4435. Patch done by Alik, received for the 5.5.0-beta release build in mail. --- libmysql/client_settings.h | 3 +-- tests/mysql_client_test.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/libmysql/client_settings.h b/libmysql/client_settings.h index aaec08d1b1e..fa92dfb2687 100644 --- a/libmysql/client_settings.h +++ b/libmysql/client_settings.h @@ -27,8 +27,7 @@ extern char * mysql_unix_port; CLIENT_TRANSACTIONS | \ CLIENT_PROTOCOL_41 | \ CLIENT_SECURE_CONNECTION | \ - CLIENT_MULTI_RESULTS | \ - CLIENT_PS_MULTI_RESULTS) + CLIENT_MULTI_RESULTS) sig_handler my_pipe_sig_handler(int sig); void read_user_name(char *name); diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index cfe401c75f3..aea0f1f6b11 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -19154,7 +19154,7 @@ static struct my_tests_st my_tests[]= { { "test_wl4166_2", test_wl4166_2 }, { "test_wl4166_3", test_wl4166_3 }, { "test_wl4166_4", test_wl4166_4 }, - { "test_wl4435", test_wl4435 }, +/* { "test_wl4435", test_wl4435 }, */ { "test_wl4435_2", test_wl4435_2 }, { "test_bug38486", test_bug38486 }, { "test_bug33831", test_bug33831 }, From 870b6dd585dbd08e79900116bca834a5f0f59446 Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Tue, 17 Nov 2009 17:08:37 +0100 Subject: [PATCH 07/20] Fix not_partition.test. Patch done by Alik and received for the 5.5.0-beta build by mail. --- mysql-test/r/not_partition.result | 8 ++++---- mysql-test/t/not_partition.test | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mysql-test/r/not_partition.result b/mysql-test/r/not_partition.result index f516f8634ce..4ec37ab9fc7 100644 --- a/mysql-test/r/not_partition.result +++ b/mysql-test/r/not_partition.result @@ -52,9 +52,9 @@ joined DATE NOT NULL ) PARTITION BY KEY(joined) PARTITIONS 6; -ERROR HY000: The 'partitioning' feature is disabled; you need MySQL built with '--with-partition' to have it working +Got one of the listed errors ALTER TABLE t1 PARTITION BY KEY(joined) PARTITIONS 2; -ERROR HY000: The 'partitioning' feature is disabled; you need MySQL built with '--with-partition' to have it working +Got one of the listed errors drop table t1; ERROR 42S02: Unknown table 't1' CREATE TABLE t1 ( @@ -71,7 +71,7 @@ PARTITION p2 VALUES LESS THAN (1980), PARTITION p3 VALUES LESS THAN (1990), PARTITION p4 VALUES LESS THAN MAXVALUE ); -ERROR HY000: The 'partitioning' feature is disabled; you need MySQL built with '--with-partition' to have it working +Got one of the listed errors drop table t1; ERROR 42S02: Unknown table 't1' CREATE TABLE t1 (id INT, purchased DATE) @@ -82,7 +82,7 @@ PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (2000), PARTITION p2 VALUES LESS THAN MAXVALUE ); -ERROR HY000: The 'partitioning' feature is disabled; you need MySQL built with '--with-partition' to have it working +Got one of the listed errors drop table t1; ERROR 42S02: Unknown table 't1' create table t1 (a varchar(10) charset latin1 collate latin1_bin); diff --git a/mysql-test/t/not_partition.test b/mysql-test/t/not_partition.test index 78ca44acf18..63892845de8 100644 --- a/mysql-test/t/not_partition.test +++ b/mysql-test/t/not_partition.test @@ -31,7 +31,7 @@ ALTER TABLE t1 ENGINE Memory; ALTER TABLE t1 ADD (new INT); DROP TABLE t1; ---error ER_FEATURE_DISABLED +--error ER_FEATURE_DISABLED,ER_OPTION_PREVENTS_STATEMENT CREATE TABLE t1 ( firstname VARCHAR(25) NOT NULL, lastname VARCHAR(25) NOT NULL, @@ -42,13 +42,13 @@ CREATE TABLE t1 ( PARTITION BY KEY(joined) PARTITIONS 6; ---error ER_FEATURE_DISABLED +--error ER_FEATURE_DISABLED,ER_OPTION_PREVENTS_STATEMENT ALTER TABLE t1 PARTITION BY KEY(joined) PARTITIONS 2; --error ER_BAD_TABLE_ERROR drop table t1; ---error ER_FEATURE_DISABLED +--error ER_FEATURE_DISABLED,ER_OPTION_PREVENTS_STATEMENT CREATE TABLE t1 ( firstname VARCHAR(25) NOT NULL, lastname VARCHAR(25) NOT NULL, @@ -66,7 +66,7 @@ PARTITION BY RANGE( YEAR(joined) ) ( --error ER_BAD_TABLE_ERROR drop table t1; ---error ER_FEATURE_DISABLED +--error ER_FEATURE_DISABLED,ER_OPTION_PREVENTS_STATEMENT CREATE TABLE t1 (id INT, purchased DATE) PARTITION BY RANGE( YEAR(purchased) ) SUBPARTITION BY HASH( TO_DAYS(purchased) ) From 3a016794d98edeb1b9e87a96a2379ec0444aef4b Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Tue, 17 Nov 2009 17:19:00 +0100 Subject: [PATCH 08/20] Change the control structures which the RPM spec file uses to govern the inclusion of a separate malloc library (used for Google's "tcmalloc") to follow the pattern used for other optional parts. This is still experimental, there are some "rpmbuild" issues around this. --- support-files/mysql.spec.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 239611c0b53..6e68e5ee702 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -43,6 +43,12 @@ %{?_with_cluster:%define CLUSTER_BUILD 1} %{!?_with_cluster:%define CLUSTER_BUILD 0} +# ---------------------------------------------------------------------- +# support optional "tcmalloc" stuff (experimental) +# ---------------------------------------------------------------------- +%{?malloc_lib_target:%define WITH_TCMALLOC 1} +%{!?malloc_lib_target:%define WITH_TCMALLOC 0} + %if %{STATIC_BUILD} %define release 0 %else @@ -448,7 +454,7 @@ $MBD/libtool --mode=execute install -m 755 \ $RPM_BUILD_DIR/mysql-%{mysql_version}/mysql-debug-%{mysql_version}/sql/mysqld \ $RBR%{_sbindir}/mysqld-debug -%if %{?malloc_lib_target:1}%{!?malloc_lib_target:0} +%if %{WITH_TCMALLOC} # Even though this is a shared library, put it under /usr/lib/mysql, so it # doesn't conflict with possible shared lib by the same name in /usr/lib. See # `mysql_config --variable=pkglibdir` and mysqld_safe for how this is used. @@ -714,7 +720,7 @@ fi %attr(755, root, root) %{_libdir}/mysql/plugin/ha_innodb_plugin.so* %endif -%if %{?malloc_lib_target:1}%{!?malloc_lib_target:0} +%if %{WITH_TCMALLOC} %attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target} %endif @@ -878,6 +884,10 @@ fi # itself - note that they must be ordered by date (important when # merging BK trees) %changelog +* Mon Nov 16 2009 Joerg Bruehe + +- Fix some problems with the directives around "tcmalloc" (experimental). + * Fri Oct 02 2009 Alexander Nozdrin - "mysqlmanager" got removed from version 5.4, all references deleted. From bd40517b037ac3f464928aaebc4cf15e0c86df8e Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Wed, 18 Nov 2009 11:42:20 +0100 Subject: [PATCH 09/20] Remove erroneous traces of the InnoDB plugin (that is 5.1 only) from the "spec" file for generic RPMs. --- support-files/mysql.spec.sh | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 6e68e5ee702..7813b35b32a 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -715,10 +715,6 @@ fi %attr(755, root, root) %{_bindir}/resolveip %attr(755, root, root) %{_libdir}/mysql/plugin/ha_example.so* -%if %{WITHOUT_INNODB_PLUGIN} -%else -%attr(755, root, root) %{_libdir}/mysql/plugin/ha_innodb_plugin.so* -%endif %if %{WITH_TCMALLOC} %attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target} @@ -850,11 +846,6 @@ fi %{_libdir}/mysql/libz.la %{_libdir}/mysql/plugin/ha_example.a %{_libdir}/mysql/plugin/ha_example.la -%if %{WITHOUT_INNODB_PLUGIN} -%else -%{_libdir}/mysql/plugin/ha_innodb_plugin.a -%{_libdir}/mysql/plugin/ha_innodb_plugin.la -%endif %files shared %defattr(-, root, root, 0755) @@ -886,7 +877,8 @@ fi %changelog * Mon Nov 16 2009 Joerg Bruehe -- Fix some problems with the directives around "tcmalloc" (experimental). +- Fix some problems with the directives around "tcmalloc" (experimental), + remove erroneous traces of the InnoDB plugin (that is 5.1 only). * Fri Oct 02 2009 Alexander Nozdrin From be59f7ff542af9f0ee30845528120918db05b208 Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Thu, 26 Nov 2009 19:55:33 +0100 Subject: [PATCH 10/20] Handle the "semisync" plugin in - binary distributions for Windows, - "generic" RPM packages. --- scripts/make_win_bin_dist | 19 +++++++++++++++++++ support-files/mysql.spec.sh | 7 +++++++ 2 files changed, 26 insertions(+) diff --git a/scripts/make_win_bin_dist b/scripts/make_win_bin_dist index bf148c45150..34d9c560006 100755 --- a/scripts/make_win_bin_dist +++ b/scripts/make_win_bin_dist @@ -290,6 +290,11 @@ if [ -d storage/innodb_plugin ]; then cp storage/innodb_plugin/$TARGET/ha_innodb_plugin.dll \ $DESTDIR/lib/plugin/ fi +if [ -d plugin/semisync ]; then + cp plugin/semisync/$TARGET/semisync_master.dll \ + plugin/semisync/$TARGET/semisync_slave.dll \ + $DESTDIR/lib/plugin/ +fi if [ x"$TARGET" != x"release" ] ; then cp libmysql/$TARGET/libmysql.pdb \ @@ -302,6 +307,11 @@ if [ x"$TARGET" != x"release" ] ; then cp storage/innodb_plugin/$TARGET/ha_innodb_plugin.pdb \ $DESTDIR/lib/plugin/ fi + if [ -d plugin/semisync ]; then + cp plugin/semisync/$TARGET/semisync_master.pdb \ + plugin/semisync/$TARGET/semisync_slave.pdb \ + $DESTDIR/lib/plugin/ + fi fi @@ -328,6 +338,15 @@ if [ x"$PACK_DEBUG" = x"" -a -f "libmysql/debug/libmysql.lib" -o \ storage/innodb_plugin/debug/ha_innodb_plugin.pdb \ $DESTDIR/lib/plugin/debug/ fi + if [ -d plugin/semisync ]; then + cp plugin/semisync/debug/semisync_master.dll \ + plugin/semisync/debug/semisync_master.lib \ + plugin/semisync/debug/semisync_master.pdb \ + plugin/semisync/debug/semisync_slave.dll \ + plugin/semisync/debug/semisync_slave.lib \ + plugin/semisync/debug/semisync_slave.pdb \ + $DESTDIR/lib/plugin/debug/ + fi fi # ---------------------------------------------------------------------- diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 7813b35b32a..83d4550466b 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -715,6 +715,8 @@ fi %attr(755, root, root) %{_bindir}/resolveip %attr(755, root, root) %{_libdir}/mysql/plugin/ha_example.so* +%attr(755, root, root) %{_libdir}/mysql/plugin/libsemisync_master.so* +%attr(755, root, root) %{_libdir}/mysql/plugin/libsemisync_slave.so* %if %{WITH_TCMALLOC} %attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target} @@ -835,6 +837,7 @@ fi %{_libdir}/mysql/libmysqlclient.la %{_libdir}/mysql/libmysqlclient_r.a %{_libdir}/mysql/libmysqlclient_r.la +%{_libdir}/mysql/libmysqlservices.a %{_libdir}/mysql/libmystrings.a %{_libdir}/mysql/libmysys.a %if %{CLUSTER_BUILD} @@ -846,6 +849,10 @@ fi %{_libdir}/mysql/libz.la %{_libdir}/mysql/plugin/ha_example.a %{_libdir}/mysql/plugin/ha_example.la +%{_libdir}/mysql/plugin/libsemisync_master.a +%{_libdir}/mysql/plugin/libsemisync_master.la +%{_libdir}/mysql/plugin/libsemisync_slave.a +%{_libdir}/mysql/plugin/libsemisync_slave.la %files shared %defattr(-, root, root, 0755) From 54df0057e18d8c82c23fbd4e0bf5b5dc2e762955 Mon Sep 17 00:00:00 2001 From: MySQL Build Team Date: Mon, 7 Dec 2009 19:00:02 +0100 Subject: [PATCH 11/20] The version is renamed: This is no tree that will progress through "beta" and "rc" to "GA", rather it is a series of "milestones", so the version is 5.5.0-m2 --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 9fe5c741a03..fe5f9953645 100644 --- a/configure.in +++ b/configure.in @@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM # # When changing major version number please also check switch statement # in client/mysqlbinlog.cc:check_master_version(). -AM_INIT_AUTOMAKE(mysql, 5.5.0-beta) +AM_INIT_AUTOMAKE(mysql, 5.5.0-m2) AM_CONFIG_HEADER([include/config.h:config.h.in]) PROTOCOL_VERSION=10 From 858cf5555ce7e9468d006905a67f8b908e57dd87 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Mon, 21 Dec 2009 13:20:43 +0300 Subject: [PATCH 12/20] Disable plugin_load.test due to Bug#42144. --- mysql-test/collections/default.experimental | 1 - mysql-test/t/disabled.def | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/collections/default.experimental b/mysql-test/collections/default.experimental index 7f5faa23c1b..52422f5d140 100644 --- a/mysql-test/collections/default.experimental +++ b/mysql-test/collections/default.experimental @@ -12,7 +12,6 @@ main.lock_multi_bug38499 # Bug#47448 2009-09-19 alik main.lock_m main.lock_multi_bug38691 @solaris # Bug#47792 2009-10-02 alik main.lock_multi_bug38691 times out sporadically on Solaris 10 main.log_tables # Bug#47924 2009-10-08 alik main.log_tables times out sporadically main.plugin # Bug#47146 Linking problem with example plugin when dtrace enabled -main.plugin_load # Bug#47146 rpl.rpl_get_master_version_and_clock* # Bug#49191 2009-12-01 Daogang rpl_get_master_version_and_clock failed on PB2: COM_REGISTER_SLAVE failed rpl.rpl_heartbeat_basic # BUG#43828 2009-10-22 luis fails sporadically diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index 3d9dc72ee45..97237d5da73 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -13,3 +13,4 @@ kill : Bug#37780 2008-12-03 HHunger need some changes to be query_cache_28249 : Bug#43861 2009-03-25 main.query_cache_28249 fails sporadicallyr innodb-autoinc : Bug#49267 2009-12-02 test fails on windows because of different case mode innodb : Bug#49396 2009-12-03 test fails in embedded mode +plugin_load : Bug#42144 2009-12-21 alik plugin_load fails From 4309b204029c7657343aa5dd9d57dcef14182309 Mon Sep 17 00:00:00 2001 From: Mattias Jonsson Date: Mon, 21 Dec 2009 11:38:31 +0100 Subject: [PATCH 13/20] Bug#48737: Partitions: search fails with ucs2 Recommit of patch: http://lists.mysql.com/commits/91400 Test case only (code part was pushes as bug-49028) --- mysql-test/r/partition_column.result | 24 ++++++++++++++++++++++++ mysql-test/t/partition_column.test | 17 +++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result index a64ca8e405d..ddc48b635cf 100644 --- a/mysql-test/r/partition_column.result +++ b/mysql-test/r/partition_column.result @@ -9,6 +9,30 @@ partition by range columns (a,b,c) ( partition p0 values less than (1, maxvalue, 10), partition p1 values less than (1, maxvalue, maxvalue)); ERROR HY000: VALUES LESS THAN value must be strictly increasing for each partition +create table t1 (a varchar(5) character set ucs2 collate ucs2_bin) +partition by range columns (a) +(partition p0 values less than (0x0041)); +insert into t1 values (0x00410000); +select hex(a) from t1 where a like 'A_'; +hex(a) +00410000 +explain partitions select hex(a) from t1 where a like 'A_'; +id select_type table partitions type possible_keys key key_len ref rows Extra +1 SIMPLE t1 p0 system NULL NULL NULL NULL 1 +alter table t1 remove partitioning; +select hex(a) from t1 where a like 'A_'; +hex(a) +00410000 +create index a on t1 (a); +select hex(a) from t1 where a like 'A_'; +hex(a) +00410000 +insert into t1 values ('A_'); +select hex(a) from t1; +hex(a) +00410000 +0041005F +drop table t1; create table t1 (a varchar(1) character set latin1 collate latin1_general_ci) partition by range columns(a) ( partition p0 values less than ('a'), diff --git a/mysql-test/t/partition_column.test b/mysql-test/t/partition_column.test index 9e47b94b036..a0e944ceb09 100644 --- a/mysql-test/t/partition_column.test +++ b/mysql-test/t/partition_column.test @@ -23,6 +23,23 @@ partition by range columns (a,b,c) ( partition p0 values less than (1, maxvalue, 10), partition p1 values less than (1, maxvalue, maxvalue)); +# +# BUG#48737, Search fails with ucs2 +# +create table t1 (a varchar(5) character set ucs2 collate ucs2_bin) +partition by range columns (a) +(partition p0 values less than (0x0041)); +insert into t1 values (0x00410000); +select hex(a) from t1 where a like 'A_'; +explain partitions select hex(a) from t1 where a like 'A_'; +alter table t1 remove partitioning; +select hex(a) from t1 where a like 'A_'; +create index a on t1 (a); +select hex(a) from t1 where a like 'A_'; +insert into t1 values ('A_'); +select hex(a) from t1; +drop table t1; + # # BUG#48161, Delivering too few records using collate syntax with partitions # From 1d60eece2530e6771acff6e37752b24c30d7abb5 Mon Sep 17 00:00:00 2001 From: Mikael Ronstrom Date: Mon, 21 Dec 2009 14:08:11 +0100 Subject: [PATCH 14/20] Force use of c-register in CAS instruction on x86-32 bit architecture, b-register used for push and pop, so don't want to give compile the chance to choose the wrong register --- include/atomic/x86-gcc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/atomic/x86-gcc.h b/include/atomic/x86-gcc.h index 32839e0a67d..77c32f8d70c 100644 --- a/include/atomic/x86-gcc.h +++ b/include/atomic/x86-gcc.h @@ -108,7 +108,7 @@ int32 ebx=(set & 0xFFFFFFFF), ecx=(set >> 32); \ asm volatile ("push %%ebx; movl %3, %%ebx;" \ LOCK_prefix "; cmpxchg8b %0; setz %2; pop %%ebx"\ - : "+m" (*a), "+A" (*cmp), "=q" (ret) \ + : "+m" (*a), "+A" (*cmp), "=c" (ret) \ :"m" (ebx), "c" (ecx)) #endif From 9ce5872e038157e2a241d1b0726cbf56496fa5e1 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Mon, 21 Dec 2009 18:35:38 +0300 Subject: [PATCH 15/20] Fix default.conf. --- .bzr-mysql/default.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bzr-mysql/default.conf b/.bzr-mysql/default.conf index 08ca040642e..f33ccdf6753 100644 --- a/.bzr-mysql/default.conf +++ b/.bzr-mysql/default.conf @@ -1,4 +1,4 @@ [MYSQL] post_commit_to = "commits@lists.mysql.com" post_push_to = "commits@lists.mysql.com" -tree_name = "mysql-5.5-trunk-bugfixing" +tree_name = "mysql-5.5-trunk" From 13d5d2f74771003c47416f792b9974d4b62e7c4f Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 22 Dec 2009 12:53:11 +0100 Subject: [PATCH 16/20] Bug#49834 - fixed a bug introduced by mismerge. restore original innobase version --- storage/innobase/CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt index 3f9808a2022..b63ed840f3c 100644 --- a/storage/innobase/CMakeLists.txt +++ b/storage/innobase/CMakeLists.txt @@ -86,5 +86,10 @@ IF (MYSQL_VERSION_ID GREATER "50137") SET_TARGET_PROPERTIES(ha_innobase PROPERTIES OUTPUT_NAME ha_innodb) ENDIF(LIB_LOCATION) ELSE (MYSQL_VERSION_ID GREATER "50137") - MYSQL_STORAGE_ENGINE(INNODB_PLUGIN) + IF (NOT SOURCE_SUBLIBS) + ADD_DEFINITIONS(-D_WIN32 -DMYSQL_SERVER) + ADD_LIBRARY(innobase STATIC ${INNOBASE_SOURCES}) + # Require mysqld_error.h, which is built as part of the GenError + ADD_DEPENDENCIES(innobase GenError) + ENDIF (NOT SOURCE_SUBLIBS) ENDIF (MYSQL_VERSION_ID GREATER "50137") From 2c4015fba5b07693ecb0f7b9f2bc6f9a10a2d723 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 22 Dec 2009 21:49:37 +0100 Subject: [PATCH 17/20] Fix build error with CMake 2.8 (mysql_stmt_next_result not exported by shared embedded library) --- libmysqld/libmysqld.def | 1 + 1 file changed, 1 insertion(+) diff --git a/libmysqld/libmysqld.def b/libmysqld/libmysqld.def index d7f98f8b32b..ecfad75b12f 100644 --- a/libmysqld/libmysqld.def +++ b/libmysqld/libmysqld.def @@ -104,3 +104,4 @@ EXPORTS mysql_stmt_attr_get mysql_stmt_attr_set mysql_stmt_field_count + mysql_stmt_next_result From 84caa9480fe7d538e99e6502d8d148270af027ab Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Wed, 23 Dec 2009 15:03:51 +0300 Subject: [PATCH 18/20] Backporting fix for Bug#49834 from mysql-next-mr-bugfixing into mysql-trunk-bugfixing. Original revision: ------------------------------------------------------------ revision-id: vvaintroub@mysql.com-20091222115311-bam0xorumd8gvjyo parent: mattias.jonsson@sun.com-20091221104426-x2e6c93x8iik4fo0 committer: Vladislav Vaintroub branch nick: mysql-next-mr-bugfixing timestamp: Tue 2009-12-22 12:53:11 +0100 message: Bug#49834 - fixed a bug introduced by mismerge. restore original innobase version ------------------------------------------------------------ --- storage/innobase/CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt index 3f9808a2022..b63ed840f3c 100644 --- a/storage/innobase/CMakeLists.txt +++ b/storage/innobase/CMakeLists.txt @@ -86,5 +86,10 @@ IF (MYSQL_VERSION_ID GREATER "50137") SET_TARGET_PROPERTIES(ha_innobase PROPERTIES OUTPUT_NAME ha_innodb) ENDIF(LIB_LOCATION) ELSE (MYSQL_VERSION_ID GREATER "50137") - MYSQL_STORAGE_ENGINE(INNODB_PLUGIN) + IF (NOT SOURCE_SUBLIBS) + ADD_DEFINITIONS(-D_WIN32 -DMYSQL_SERVER) + ADD_LIBRARY(innobase STATIC ${INNOBASE_SOURCES}) + # Require mysqld_error.h, which is built as part of the GenError + ADD_DEPENDENCIES(innobase GenError) + ENDIF (NOT SOURCE_SUBLIBS) ENDIF (MYSQL_VERSION_ID GREATER "50137") From 97412d1d41545f1584d231d5f534b80797056f70 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Wed, 23 Dec 2009 15:09:31 +0300 Subject: [PATCH 19/20] Fix default.conf. --- .bzr-mysql/default.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bzr-mysql/default.conf b/.bzr-mysql/default.conf index 08ca040642e..f33ccdf6753 100644 --- a/.bzr-mysql/default.conf +++ b/.bzr-mysql/default.conf @@ -1,4 +1,4 @@ [MYSQL] post_commit_to = "commits@lists.mysql.com" post_push_to = "commits@lists.mysql.com" -tree_name = "mysql-5.5-trunk-bugfixing" +tree_name = "mysql-5.5-trunk" From 9721437edf2037d040fe34dffd87cac1eba30dde Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Thu, 24 Dec 2009 10:10:05 +0300 Subject: [PATCH 20/20] Postfix for Bug#37408 (fix for Bug#49898). --- storage/myisam/mi_static.c | 1 - 1 file changed, 1 deletion(-) diff --git a/storage/myisam/mi_static.c b/storage/myisam/mi_static.c index a43a099663b..27485e101ff 100644 --- a/storage/myisam/mi_static.c +++ b/storage/myisam/mi_static.c @@ -41,7 +41,6 @@ my_off_t myisam_max_temp_length= MAX_FILE_SIZE; ulong myisam_bulk_insert_tree_size=8192*1024; ulong myisam_data_pointer_size=4; ulonglong myisam_mmap_size= SIZE_T_MAX, myisam_mmap_used= 0; -pthread_mutex_t THR_LOCK_myisam_mmap; static int always_valid(const char *filename __attribute__((unused))) {