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-ROWVWADEjas | 28 Aug |