diff options
author | Alexander Nozdrin <alik@sun.com> | 2009-08-27 16:46:34 +0400 |
---|---|---|
committer | Alexander Nozdrin <alik@sun.com> | 2009-08-27 16:46:34 +0400 |
commit | 4bf2c41df4ea0d62ce6b66da155988aafe2328ba (patch) | |
tree | 18b7f63b07eb1ba083173f148d764f818d36ceeb | |
parent | 0108660d12edfe3e522d364440cf3c4e566668b0 (diff) | |
parent | f76fb67e7c963b4d4181301e650ecbeec6458895 (diff) | |
download | mariadb-git-4bf2c41df4ea0d62ce6b66da155988aafe2328ba.tar.gz |
Merge from mysql-trunk.
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | man/Makefile.am | 2 | ||||
-rw-r--r-- | storage/innobase/handler/handler0alter.cc | 1 | ||||
-rw-r--r-- | storage/innobase/lock/lock0lock.c | 7 |
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); } |