Esempio n. 1
0
        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"]);
            });
        }
Esempio n. 2
0
        public void ScanClusteredIndexOnUniqueClusteredTable(DatabaseVersion version)
        {
            RunDatabaseTest(version, db =>
            {
                var scanner = new IndexScanner(db);
                var result = scanner.ScanIndex("UniqueClusteredTable", "CX_Num1_Name").ToList();

                Assert.AreEqual(112, result[0]["Num1"]);
                Assert.AreEqual("Doe", result[0]["Name"]);
                Assert.AreEqual(382, result[1]["Num1"]);
                Assert.AreEqual("John", result[1]["Name"]);
            });
        }
Esempio n. 3
0
        public void ScanNonclusteredIndexOnNonUniqueClusteredTable(DatabaseVersion version)
        {
            RunDatabaseTest(version, db =>
            {
                var scanner = new IndexScanner(db);
                var result = scanner.ScanIndex("NonUniqueClusteredTable", "IDX_Num1").ToList();

                Assert.AreEqual(112, result[0]["Num1"]);
                Assert.AreEqual(0, result[0][DataColumn.Uniquifier]);
                Assert.AreEqual(382, result[1]["Num1"]);
                Assert.AreEqual(0, result[1][DataColumn.Uniquifier]);
                Assert.AreEqual(382, result[2]["Num1"]);
                Assert.AreEqual(1, result[2][DataColumn.Uniquifier]);
            });
        }
Esempio n. 4
0
        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"]);
            });
        }