summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Nozdrin <alik@sun.com>2009-08-27 16:46:34 +0400
committerAlexander Nozdrin <alik@sun.com>2009-08-27 16:46:34 +0400
commit4bf2c41df4ea0d62ce6b66da155988aafe2328ba (patch)
tree18b7f63b07eb1ba083173f148d764f818d36ceeb
parent0108660d12edfe3e522d364440cf3c4e566668b0 (diff)
parentf76fb67e7c963b4d4181301e650ecbeec6458895 (diff)
downloadmariadb-git-4bf2c41df4ea0d62ce6b66da155988aafe2328ba.tar.gz
Merge from mysql-trunk.
-rw-r--r--configure.in2
-rw-r--r--man/Makefile.am2
-rw-r--r--storage/innobase/handler/handler0alter.cc1
-rw-r--r--storage/innobase/lock/lock0lock.c7
4 files changed, 8 insertions, 4 deletions
diff --git a/configure.in b/configure.in
index a291ce73210..2723286a405 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.4.2-beta)
+AM_INIT_AUTOMAKE(mysql, 5.4.3-beta)
AM_CONFIG_HEADER([include/config.h:config.h.in])
PROTOCOL_VERSION=10
diff --git a/man/Makefile.am b/man/Makefile.am
index f21034d5535..72e67f7445f 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -23,7 +23,7 @@ EXTRA_DIST = $(man1_MANS) $(man8_MANS)
# "make_win_*" are not needed in Unix binary packages,
install-data-hook:
- rm -f $(DESTDIR)$(manlibdir)/man1/make_win_*
+ rm -f $(DESTDIR)$(mandir)/man1/make_win_*
# Don't update the files from bitkeeper
%::SCCS/s.%
diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc
index d1f64a1985c..5075b841879 100644
--- a/storage/innobase/handler/handler0alter.cc
+++ b/storage/innobase/handler/handler0alter.cc
@@ -863,6 +863,7 @@ error_handling:
indexed_table->n_mysql_handles_opened++;
error = row_merge_drop_table(trx, innodb_table);
+ innodb_table = indexed_table;
goto convert_error;
case DB_TOO_BIG_RECORD:
diff --git a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c
index fcd8d268331..0cc89336199 100644
--- a/storage/innobase/lock/lock0lock.c
+++ b/storage/innobase/lock/lock0lock.c
@@ -3574,7 +3574,8 @@ lock_table_remove_low(
and lock_grant()). Therefore it can be empty and we
need to check for that. */
- if (!ib_vector_is_empty(trx->autoinc_locks)) {
+ if (!lock_get_wait(lock)
+ && !ib_vector_is_empty(trx->autoinc_locks)) {
lock_t* autoinc_lock;
autoinc_lock = ib_vector_pop(trx->autoinc_locks);
@@ -3647,8 +3648,10 @@ lock_table_enqueue_waiting(
if (lock_deadlock_occurs(lock, trx)) {
- lock_reset_lock_and_trx_wait(lock);
+ /* The order here is important, we don't want to
+ lose the state of the lock before calling remove. */
lock_table_remove_low(lock);
+ lock_reset_lock_and_trx_wait(lock);
return(DB_DEADLOCK);
}