Esempio n. 1
0
 private static IndexNode BinaryInsertNode(IndexLink baseLink, IndexNode baseNode, EntryInfo entry, Engine engine)
 {
     IndexUnit pageIndex = engine.GetFreeIndexPage();
     IndexNode newNode = pageIndex.Nodes[pageIndex.NodeIndex];
     baseLink.PageID = pageIndex.UnitID;
     baseLink.Index = pageIndex.NodeIndex;
     newNode.UpdateFromEntry(entry);
     newNode.DataPageID = DataFactory.GetStartDataPageID(engine);
     if (pageIndex.UnitID != baseNode.IndexPage.UnitID)
     {
         engine.CacheIndexPage.AddPage(baseNode.IndexPage, true);
     }
     engine.CacheIndexPage.AddPage(pageIndex, true);
     return newNode;
 }
Esempio n. 2
0
 private static IndexNode GetChildIndexNode(IndexLink link, Engine engine)
 {
     return engine.CacheIndexPage.GetPage(link.PageID).Nodes[link.Index];
 }