List:Commits« Previous MessageNext Message »
From:U-ROWVWADEjas Date:August 28 2007 6:16pm
Subject:bk commit into 6.0-falcon tree (jas:1.2722)
View as plain text  
Below is the list of changes that have just been committed into a local
6.0-falcon repository of . When  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@stripped, 2007-08-28 14:16:08-04:00, jas@rowvwade. +4 -0
  Work on valgrind warning in IndexPage::addNode.

  storage/falcon/IndexNode.h@stripped, 2007-08-28 14:15:57-04:00, jas@rowvwade. +4 -3
    Catch attempt to parse past last index node on a page.

  storage/falcon/IndexPage.cpp@stripped, 2007-08-28 14:15:58-04:00, jas@rowvwade. +18 -6
    Consolidate formatting of new index level.

  storage/falcon/IndexPage.h@stripped, 2007-08-28 14:15:58-04:00, jas@rowvwade. +1 -0
    Consolidate formatting of new index level.

  storage/falcon/IndexRootPage.cpp@stripped, 2007-08-28 14:15:59-04:00, jas@rowvwade. +2 -9
    Consolidate formatting of new index level.

# 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:	jas
# Host:	rowvwade.
# Root:	D:/MySQL/mysql-5.1-falcon

--- 1.19/storage/falcon/IndexNode.h	2007-08-28 14:16:29 -04:00
+++ 1.20/storage/falcon/IndexNode.h	2007-08-28 14:16:29 -04:00
@@ -93,7 +93,7 @@
 	
 	if ((*key & 0xC0) == 0xC0)
 		number = -(*key++ & 0x2f);
-	else	
+	else
 		for (;;)
 			{
 			UCHAR c = *key++;
@@ -102,7 +102,8 @@
 			if (c & 0x80)
 				break;
 			}
-			
+	
+	ASSERT(key - (UCHAR*) indexNode < 14);	
 	nextNode = (Btn*) (key + length);
 
 	return nextNode;
@@ -115,7 +116,7 @@
 
 inline Btn* IndexNode::getNext()
 {
-	return parseNode (nextNode);
+	return parseNode(nextNode);
 }
 
 inline int IndexNode::expandKey(UCHAR *keyPtr)

--- 1.58/storage/falcon/IndexPage.cpp	2007-08-28 14:16:29 -04:00
+++ 1.59/storage/falcon/IndexPage.cpp	2007-08-28 14:16:29 -04:00
@@ -465,17 +465,29 @@
 	printPage ((IndexPage*) bdb->buffer, bdb->pageNumber, inversion);
 }
 
+Bdb* IndexPage::createNewLevel(Dbb* dbb, int level, int version, TransId transId)
+{
+	Bdb *bdb = dbb->allocPage (PAGE_btree, transId);
+	BDB_HISTORY(bdb);
+	IndexPage *page = (IndexPage*) bdb->buffer;
+	page->level = level;
+	page->version = version;
+	IndexKey dummy;
+	page->length = OFFSET (IndexPage*, nodes);
+	//page->addNode (dbb, &dummy, END_LEVEL);
+	IndexNode node;
+	node.insert(page->nodes, 0, 0, dummy.key, END_LEVEL);
+	page->length += IndexNode::nodeLength(0, 0, END_LEVEL);
+	
+	return bdb;
+}
+
 Bdb* IndexPage::createNewLevel(Dbb * dbb, int level, int version, int32 page1, int32 page2, IndexKey* key2, TransId transId)
 {
-	Bdb *parentBdb = dbb->allocPage (PAGE_btree, transId);
+	Bdb *parentBdb = createNewLevel(dbb, level, version, transId);
 	BDB_HISTORY(parentBdb);
 	IndexPage *parentPage = (IndexPage*) parentBdb->buffer;
-	parentPage->level = level;
-	parentPage->version = version;
 	IndexKey dummy(key2->index);
-	dummy.keyLength = 0;
-	parentPage->length = OFFSET (IndexPage*, nodes);
-	parentPage->addNode (dbb, &dummy, END_LEVEL);
 	parentPage->addNode (dbb, &dummy, page1);
 	parentPage->addNode (dbb, key2, page2);
 	//parentPage->validate(NULL);

--- 1.23/storage/falcon/IndexPage.h	2007-08-28 14:16:29 -04:00
+++ 1.24/storage/falcon/IndexPage.h	2007-08-28 14:16:29 -04:00
@@ -74,6 +74,7 @@
 
 	static int		computePrefix (IndexKey *key1, IndexKey *key2);
 	static Bdb*		findLevel (Dbb *dbb, Bdb *bdb, int level, IndexKey *indexKey, int32 recordNumber);
+	static Bdb*		createNewLevel (Dbb* dbb, int level, int version, TransId transId);
 	static Bdb*		createNewLevel (Dbb *dbb, int level, int version, int32 page1, int32 page2, IndexKey *key2, TransId transId);
 	static void		printPage (Bdb *bdb, bool inversion);
 	static void		printPage (IndexPage *page, int32 pageNumber, bool inversion);

--- 1.72/storage/falcon/IndexRootPage.cpp	2007-08-28 14:16:29 -04:00
+++ 1.73/storage/falcon/IndexRootPage.cpp	2007-08-28 14:16:29 -04:00
@@ -1109,15 +1109,8 @@
 
 Bdb* IndexRootPage::createIndexRoot(Dbb* dbb, TransId transId)
 {
-	Bdb *bdb = dbb->allocPage (PAGE_btree, transId);
-	BDB_HISTORY(bdb);
-	IndexPage *btree = (IndexPage*) bdb->buffer;
-	btree->level = 0;
-	btree->version = INDEX_CURRENT_VERSION;
-	btree->length = OFFSET (IndexPage*, nodes);
-	IndexKey key;
-	key.keyLength = 0;
-	btree->addNode (dbb, &key, END_LEVEL);
+	Bdb *bdb = IndexPage::createNewLevel(dbb, 0, INDEX_CURRENT_VERSION, transId);
+	//BDB_HISTORY(bdb);
 
 	return bdb;
 }
Thread
bk commit into 6.0-falcon tree (jas:1.2722)U-ROWVWADEjas28 Aug