Index: third_party/sqlite/src/test/coveridxscan.test |
diff --git a/third_party/sqlite/src/test/coveridxscan.test b/third_party/sqlite/src/test/coveridxscan.test |
index 7b3c0b0be9942aa898a9dd483797ded8c12948e6..a8d1a8ff75ced45f336dd8971cb3e39ccfcbaf78 100644 |
--- a/third_party/sqlite/src/test/coveridxscan.test |
+++ b/third_party/sqlite/src/test/coveridxscan.test |
@@ -89,5 +89,36 @@ do_test 4.3 { |
db eval {SELECT b FROM t1} |
} {2 4 8} |
+#------------------------------------------------------------------------- |
+# Test that indexes with large numbers of columns can be correctly |
+# identified as covering indexes. |
+reset_db |
+set L [list] |
+for {set i 1} {$i<120} {incr i} { |
+ lappend L "c$i" |
+} |
+set cols [join $L ,] |
+ |
+do_execsql_test 5.1.0 " |
+ CREATE TABLE t1(a, b, c, $cols, PRIMARY KEY(a, b, c)) WITHOUT ROWID; |
+ CREATE INDEX i1 ON t1($cols); |
+ |
+ CREATE TABLE t2(i INTEGER PRIMARY KEY, $cols); |
+ CREATE INDEX i2 ON t2($cols); |
+" |
+ |
+do_eqp_test 5.1.1 { |
+ SELECT * FROM t1 ORDER BY c1, c2; |
+} { |
+ 0 0 0 {SCAN TABLE t1 USING COVERING INDEX i1} |
+} |
+ |
+do_eqp_test 5.1.2 { |
+ SELECT * FROM t2 ORDER BY c1, c2; |
+} { |
+ 0 0 0 {SCAN TABLE t2 USING COVERING INDEX i2} |
+} |
+ |
+ |
finish_test |