public void ScanNonclusteredIndexOnUniqueClusteredTable(DatabaseVersion version) { RunDatabaseTest(version, db => { var scanner = new IndexScanner(db); var result = scanner.ScanIndex("UniqueClusteredTable", "IDX_Num1").ToList(); Assert.AreEqual(112, result[0]["Num1"]); Assert.AreEqual(382, result[1]["Num1"]); }); }
public void ScanHeapAsIndex(DatabaseVersion version) { RunDatabaseTest(version, db => { var scanner = new IndexScanner(db); var result = scanner.ScanIndex("Heap", null).ToList(); Assert.AreEqual(382, result[0]["Num1"]); Assert.AreEqual("John", result[0]["Name"]); Assert.AreEqual(112, result[1]["Num1"]); Assert.AreEqual("Doe", result[1]["Name"]); }); }
public void GetTestDb() { var d = new Database(new[] { @"F:\mssql\DATA\TestDateTime.mdf", @"F:\mssql\DATA\TestDateTime_log.ldf" }); //var rr = d.Dmvs.Indexes.Select(p => p.Name).ToArray(); var my = d.Dmvs.Indexes.Where(p => p.Name == "PK__TestTabl__3BB02EDE1841AE52").ToArray(); var ss = new DataScanner(d); var rrr = ss.ScanTable("TestTable").Take(10).ToArray(); var scanner = new IndexScanner(d); var rr = scanner.ScanIndex("TestTable", "PK__TestTabl__3BB02EDE1841AE52").Take(10).ToArray(); }
public void ScanNonclusteredIndexOnHeap(DatabaseVersion version) { RunDatabaseTest(version, db => { // Index stored in sorted order var scanner = new IndexScanner(db); var result = scanner.ScanIndex("Heap", "IDX_Num1").ToList(); Assert.AreEqual(112, result[0]["Num1"]); Assert.AreEqual(1, ((SlotPointer)result[0][DataColumn.RID]).FileID); Assert.AreEqual(1, ((SlotPointer)result[0][DataColumn.RID]).SlotID); Assert.AreEqual(382, result[1]["Num1"]); Assert.AreEqual(1, ((SlotPointer)result[1][DataColumn.RID]).FileID); Assert.AreEqual(0, ((SlotPointer)result[1][DataColumn.RID]).SlotID); // Data stored in insertion order var dataScanner = new DataScanner(db); var dataResult = dataScanner.ScanTable("Heap").ToList(); Assert.AreEqual(382, dataResult[0]["Num1"]); Assert.AreEqual(112, dataResult[1]["Num1"]); }); }