mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge from mysql-5.1-innodb to mysql-5.5-innodb
This commit is contained in:
@ -13,7 +13,6 @@ kill : Bug#37780 2008-12-03 HHunger need some changes to be
|
|||||||
lowercase_table3 : Bug#54845 2010-06-30 alik main.lowercase_table3 on Mac OSX
|
lowercase_table3 : Bug#54845 2010-06-30 alik main.lowercase_table3 on Mac OSX
|
||||||
mysqlhotcopy_myisam : Bug#54129 2010-08-31 alik mysqlhotcopy* fails
|
mysqlhotcopy_myisam : Bug#54129 2010-08-31 alik mysqlhotcopy* fails
|
||||||
mysqlhotcopy_archive : Bug#54129 2010-08-31 alik mysqlhotcopy* fails
|
mysqlhotcopy_archive : Bug#54129 2010-08-31 alik mysqlhotcopy* fails
|
||||||
partition_innodb_plugin : Bug#53307 2010-04-30 VasilDimov valgrind warnings
|
|
||||||
query_cache_28249 : Bug#43861 2009-03-25 main.query_cache_28249 fails sporadically
|
query_cache_28249 : Bug#43861 2009-03-25 main.query_cache_28249 fails sporadically
|
||||||
sp_sync : Bug#48157 2010-02-06 5.5-m3 demands a differnt solution
|
sp_sync : Bug#48157 2010-02-06 5.5-m3 demands a differnt solution
|
||||||
ctype_utf8mb4_ndb : Bug#55799, Bug#51907, disabled by Konstantin 2010-08-06
|
ctype_utf8mb4_ndb : Bug#55799, Bug#51907, disabled by Konstantin 2010-08-06
|
||||||
|
@ -9584,7 +9584,11 @@ ha_innobase::innobase_peek_autoinc(void)
|
|||||||
|
|
||||||
auto_inc = dict_table_autoinc_read(innodb_table);
|
auto_inc = dict_table_autoinc_read(innodb_table);
|
||||||
|
|
||||||
ut_a(auto_inc > 0);
|
if (auto_inc == 0) {
|
||||||
|
ut_print_timestamp(stderr);
|
||||||
|
fprintf(stderr, " InnoDB: AUTOINC next value generation "
|
||||||
|
"is disabled for '%s'\n", innodb_table->name);
|
||||||
|
}
|
||||||
|
|
||||||
dict_table_autoinc_unlock(innodb_table);
|
dict_table_autoinc_unlock(innodb_table);
|
||||||
|
|
||||||
|
@ -3348,6 +3348,7 @@ row_search_for_mysql(
|
|||||||
mem_heap_t* heap = NULL;
|
mem_heap_t* heap = NULL;
|
||||||
ulint offsets_[REC_OFFS_NORMAL_SIZE];
|
ulint offsets_[REC_OFFS_NORMAL_SIZE];
|
||||||
ulint* offsets = offsets_;
|
ulint* offsets = offsets_;
|
||||||
|
ibool table_lock_waited = FALSE;
|
||||||
|
|
||||||
rec_offs_init(offsets_);
|
rec_offs_init(offsets_);
|
||||||
|
|
||||||
@ -3734,13 +3735,15 @@ release_search_latch_if_needed:
|
|||||||
trx_assign_read_view(trx);
|
trx_assign_read_view(trx);
|
||||||
prebuilt->sql_stat_start = FALSE;
|
prebuilt->sql_stat_start = FALSE;
|
||||||
} else {
|
} else {
|
||||||
|
wait_table_again:
|
||||||
err = lock_table(0, index->table,
|
err = lock_table(0, index->table,
|
||||||
prebuilt->select_lock_type == LOCK_S
|
prebuilt->select_lock_type == LOCK_S
|
||||||
? LOCK_IS : LOCK_IX, thr);
|
? LOCK_IS : LOCK_IX, thr);
|
||||||
|
|
||||||
if (err != DB_SUCCESS) {
|
if (err != DB_SUCCESS) {
|
||||||
|
|
||||||
goto lock_wait_or_error;
|
table_lock_waited = TRUE;
|
||||||
|
goto lock_table_wait;
|
||||||
}
|
}
|
||||||
prebuilt->sql_stat_start = FALSE;
|
prebuilt->sql_stat_start = FALSE;
|
||||||
}
|
}
|
||||||
@ -4551,6 +4554,7 @@ lock_wait_or_error:
|
|||||||
|
|
||||||
btr_pcur_store_position(pcur, &mtr);
|
btr_pcur_store_position(pcur, &mtr);
|
||||||
|
|
||||||
|
lock_table_wait:
|
||||||
mtr_commit(&mtr);
|
mtr_commit(&mtr);
|
||||||
mtr_has_extra_clust_latch = FALSE;
|
mtr_has_extra_clust_latch = FALSE;
|
||||||
|
|
||||||
@ -4568,6 +4572,14 @@ lock_wait_or_error:
|
|||||||
thr->lock_state = QUE_THR_LOCK_NOLOCK;
|
thr->lock_state = QUE_THR_LOCK_NOLOCK;
|
||||||
mtr_start(&mtr);
|
mtr_start(&mtr);
|
||||||
|
|
||||||
|
/* Table lock waited, go try to obtain table lock
|
||||||
|
again */
|
||||||
|
if (table_lock_waited) {
|
||||||
|
table_lock_waited = FALSE;
|
||||||
|
|
||||||
|
goto wait_table_again;
|
||||||
|
}
|
||||||
|
|
||||||
sel_restore_position_for_mysql(&same_user_rec,
|
sel_restore_position_for_mysql(&same_user_rec,
|
||||||
BTR_SEARCH_LEAF, pcur,
|
BTR_SEARCH_LEAF, pcur,
|
||||||
moves_up, &mtr);
|
moves_up, &mtr);
|
||||||
|
Reference in New Issue
Block a user