Commit 87c70a59 authored by unknown's avatar unknown
Browse files

Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-5.0

into  mysql.com:/home/alexi/innodb/mysql-5.0-merged

parents 085aa5c9 f6ffb77c
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -59,9 +59,6 @@ before hash index building is started */

#define BTR_SEARCH_BUILD_LIMIT		100

/* How many cells to check before temporarily releasing btr_search_latch */
#define BTR_CHUNK_SIZE			10000

/************************************************************************
Builds a hash index on a page with the given parameters. If the page already
has a hash index with different parameters, the old hash index is removed.
@@ -1607,6 +1604,11 @@ btr_search_validate(void)
	mem_heap_t*	heap		= NULL;
	ulint		offsets_[REC_OFFS_NORMAL_SIZE];
	ulint*		offsets		= offsets_;

	/* How many cells to check before temporarily releasing
	btr_search_latch. */
	ulint		chunk_size = 10000;
	
	*offsets_ = (sizeof offsets_) / sizeof *offsets_;

	rw_lock_x_lock(&btr_search_latch);
@@ -1616,7 +1618,7 @@ btr_search_validate(void)
	for (i = 0; i < cell_count; i++) {
		/* We release btr_search_latch every once in a while to
		give other queries a chance to run. */
		if ((i != 0) && ((i % BTR_CHUNK_SIZE) == 0)) {
		if ((i != 0) && ((i % chunk_size) == 0)) {
			rw_lock_x_unlock(&btr_search_latch);
			os_thread_yield();
			rw_lock_x_lock(&btr_search_latch);
@@ -1675,8 +1677,8 @@ btr_search_validate(void)
		}
	}

	for (i = 0; i < cell_count; i += BTR_CHUNK_SIZE) {
		ulint end_index = ut_min(i + BTR_CHUNK_SIZE - 1, cell_count - 1);
	for (i = 0; i < cell_count; i += chunk_size) {
		ulint end_index = ut_min(i + chunk_size - 1, cell_count - 1);
		
		/* We release btr_search_latch every once in a while to
		give other queries a chance to run. */
+8 −2
Original line number Diff line number Diff line
@@ -989,7 +989,6 @@ innobase_query_caching_of_table_permitted(
		mutex_enter_noninline(&kernel_mutex);
		trx_print(stderr, trx, 1024);
		mutex_exit_noninline(&kernel_mutex);
		ut_error;
	}

	innobase_release_stat_resources(trx);
@@ -3833,6 +3832,13 @@ ha_innobase::unlock_row(void)
		ut_error;
	}

	/* Consistent read does not take any locks, thus there is
	nothing to unlock. */

	if (prebuilt->select_lock_type == LOCK_NONE) {
		DBUG_VOID_RETURN;
	}

	if (srv_locks_unsafe_for_binlog) {
		row_unlock_for_mysql(prebuilt, FALSE);
	}