List:Commits« Previous MessageNext Message »
From:Konstantin Osipov Date:February 7 2006 9:10pm
Subject:bk commit into 5.1 tree (konstantin:1.2087)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of kostja. When kostja does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2087 06/02/08 00:10:15 konstantin@stripped +3 -0
  Merge mysql.com:/home/kostja/mysql/tmp_merge
  into  mysql.com:/home/kostja/mysql/mysql-5.1-merge

  storage/innobase/include/btr0sea.ic
    1.4 06/02/08 00:09:57 konstantin@stripped +1 -1
    Manual merge: use local.

  storage/innobase/fil/fil0fil.c
    1.60 06/02/08 00:09:56 konstantin@stripped +0 -0
    Auto merged

  storage/innobase/btr/btr0sea.c
    1.37 06/02/08 00:09:56 konstantin@stripped +0 -0
    SCCS merged

  storage/innobase/include/btr0sea.ic
    1.2.1.2 06/02/08 00:09:35 konstantin@stripped +0 -0
    Merge rename: innobase/include/btr0sea.ic -> storage/innobase/include/btr0sea.ic

  storage/innobase/fil/fil0fil.c
    1.54.7.2 06/02/08 00:09:35 konstantin@stripped +0 -0
    Merge rename: innobase/fil/fil0fil.c -> storage/innobase/fil/fil0fil.c

  storage/innobase/btr/btr0sea.c
    1.30.5.2 06/02/08 00:09:35 konstantin@stripped +0 -0
    Merge rename: innobase/btr/btr0sea.c -> storage/innobase/btr/btr0sea.c

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	konstantin
# Host:	oak.local
# Root:	/home/kostja/mysql/mysql-5.1-merge/RESYNC

--- 1.30.5.1/innobase/btr/btr0sea.c	2006-01-30 22:52:11 +03:00
+++ 1.37/storage/innobase/btr/btr0sea.c	2006-02-08 00:09:56 +03:00
@@ -889,8 +889,7 @@
 void
 btr_search_drop_page_hash_index(
 /*============================*/
-	page_t*	page)	/* in: index page, s- or x-latched, or an index page
-			for which we know that block->buf_fix_count == 0 */
+	page_t*	page)	/* in: index page, s- or x-latched */
 {
 	hash_table_t*	table;
 	buf_block_t*	block;
@@ -905,7 +904,6 @@
 	ulint*		folds;
 	ulint		i;
 	mem_heap_t*	heap;
-	dict_index_t*	index;
 	ulint*		offsets;
 
 #ifdef UNIV_SYNC_DEBUG
@@ -934,16 +932,11 @@
 
 	n_fields = block->curr_n_fields;
 	n_bytes = block->curr_n_bytes;
-	index = block->index;
 
-	/* NOTE: The fields of block must not be accessed after
-	releasing btr_search_latch, as the index page might only
-	be s-latched! */
+	ut_a(n_fields + n_bytes > 0);
 
 	rw_lock_s_unlock(&btr_search_latch);
 	
-	ut_a(n_fields + n_bytes > 0);
-
 	n_recs = page_get_n_recs(page);
 
 	/* Calculate and cache fold values into an array for fast deletion
@@ -956,6 +949,14 @@
 	rec = page_get_infimum_rec(page);
 	rec = page_rec_get_next(rec);
 
+	if (!page_rec_is_supremum(rec)) {
+		ut_a(n_fields <= rec_get_n_fields(rec, block->index));
+
+		if (n_bytes > 0) {
+			ut_a(n_fields < rec_get_n_fields(rec, block->index));
+		}
+	}
+
 	tree_id = btr_page_get_index_id(page);
 	
 	prev_fold = 0;
@@ -963,12 +964,18 @@
 	heap = NULL;
 	offsets = NULL;
 
+	if (block->index == NULL) {
+
+		mem_analyze_corruption((byte*)block);
+
+		ut_a(block->index != NULL);
+	}
+
 	while (!page_rec_is_supremum(rec)) {
 		/* FIXME: in a mixed tree, not all records may have enough
 		ordering fields: */
-		offsets = rec_get_offsets(rec, index, offsets,
-					n_fields + (n_bytes > 0), &heap);
-		ut_a(rec_offs_n_fields(offsets) == n_fields + (n_bytes > 0));
+		offsets = rec_get_offsets(rec, block->index,
+				offsets, n_fields + (n_bytes > 0), &heap);
 		fold = rec_fold(rec, offsets, n_fields, n_bytes, tree_id);
 
 		if (fold == prev_fold && prev_fold != 0) {

--- 1.2.1.1/innobase/include/btr0sea.ic	2006-01-30 22:32:59 +03:00
+++ 1.4/storage/innobase/include/btr0sea.ic	2006-02-08 00:09:57 +03:00
@@ -16,7 +16,7 @@
 void
 btr_search_info_update_slow(
 /*========================*/
-	btr_search_t*	info,	/* in/out: search info */
+	btr_search_t*	info,	/* in: search info */
 	btr_cur_t*	cursor);/* in: cursor which was just positioned */
 
 /************************************************************************
Thread
bk commit into 5.1 tree (konstantin:1.2087)Konstantin Osipov7 Feb