private static void TestInsertRandomRecord(int maxCell) { string dbPath = "./testdbfile.minidb"; File.Delete(dbPath); Pager pager = new Pager(dbPath); FreeList freeList = new FreeList(pager); BTreeController controller = new BTreeController(pager, freeList); RecordContext recordManager = new RecordContext(pager, controller); // create new table CreateStatement createStatement = GetCreateStatement(); int newRoot = recordManager.CreateTable(); // insert BTreeNode node; InsertStatement insertStatement; int key; int newRootAfterInsert = newRoot; int i; for (i = 0; i < maxCell; i++) { (insertStatement, key) = GetInsertStatement(1); AtomValue atomValue = GetAtomValue(key); newRootAfterInsert = recordManager.InsertRecord(insertStatement.Values, atomValue, newRootAfterInsert); Console.WriteLine(key); Debug.Assert(newRoot == newRootAfterInsert); } node = BTreeNodeHelper.GetBTreeNode(pager, newRootAfterInsert); BTreeNodeHelper.VisualizeIntegerTree(pager, node); Console.WriteLine(); for (i = 0; i < maxCell; i++) { (insertStatement, key) = GetInsertStatement(1); AtomValue atomValue = GetAtomValue(key); newRootAfterInsert = recordManager.InsertRecord(insertStatement.Values, atomValue, newRootAfterInsert); Console.WriteLine(key); } node = BTreeNodeHelper.GetBTreeNode(pager, newRootAfterInsert); BTreeNodeHelper.VisualizeIntegerTree(pager, node); pager.Close(); }