From a85bebb3c4608b4133d5b78f3eef895f839f10d6 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 3ae5a3034a4444ae43128be9ad976909dcc3e5a5 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 b0c7053192de1c7b2183814b4d2077b8441369c8 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 4bf94dec9b4e523106961f561f13c3b4ad37b38d 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 ac0654166f48d834afb8011457e575c557ec3a0f 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 41f7c2be26117ac8b6c88386cb12e9d6831511b4 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 8ff142999d009f7602ae58b6559f05e648bd83f3 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 1da38990cb81e693c24bc8d06a8bf95abb482bcf 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 63a044f31f0eaef2ef654761006c548ddc44e159 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 4746239b371b058535078e55970280c4bd8320a2 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 81d9615de8781c278635acb4e7980966b1963f85 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 c736665e43995327cae3ea417c8abc815ea925fc 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 287dfc146949af0bd28e202b0086e93ceeb1d77a 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: Bug#48737: Partitions: search fails with ucs2 added test case mysql-test/t/partition_column.test: Bug#48737: Partitions: search fails with ucs2 Added result --- 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 ec93c3ed238c591b0167a8d7f08772308f4e7bd5 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 23e70189ab6412aa7af04dd81fe1b446b5f674c7 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 0d0ff32c6e2561872d7278b5e65c3da9f7a26e44 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 dcdaa8f4fcd381c01e030e6d80bc3c2810fd3691 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 ba60b39ca3678a2ec53d773144662b2ed2f11f64 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 5be5b55ff4ce2c9fce0563e1a729d13e92a7d423 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 0b74a911263c563b457e29ed4faf42bcf62e6efc 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))) {