]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix the expected output on tests so that it corresponds to the new query
authordrh <drh@noemail.net>
Sat, 12 Feb 2011 14:23:48 +0000 (14:23 +0000)
committerdrh <drh@noemail.net>
Sat, 12 Feb 2011 14:23:48 +0000 (14:23 +0000)
planner results.  All of veryquick.test is now passing with
SQLITE_ENABLE_STAT2.

FossilOrigin-Name: f2a8b5ccfb46b6be5c8857bc495de14e55851bf4

18 files changed:
manifest
manifest.uuid
test/analyze.test
test/analyze2.test
test/analyze3.test
test/auth.test
test/autoindex1.test
test/e_fkey.test
test/minmax3.test
test/misc4.test
test/select6.test
test/tester.tcl
test/tkt-78e04e52ea.test
test/tkt3442.test
test/tkt3757.test
test/tkt3824.test
test/where3.test
test/where9.test

index fbee74f8e9c9c5a7b69ac6e5d7ec38ff2cf41086..97630f7780b8815f9c8c618ce5c1d45a65fa53ce 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Fix\sproblems\sin\sthe\sbackport,\sreducing\sthe\snumber\sof\serrors\sin\sthe\sTCL\stests\nto\sjust\sa\sfew\sdozen.\s\sMost\sof\sthe\sremaining\serrors\sseem\sto\sbe\sreal\sand\ndesirable\schanges\sof\sbehavior.
-D 2011-02-12T05:34:43.018
+C Fix\sthe\sexpected\soutput\son\stests\sso\sthat\sit\scorresponds\sto\sthe\snew\squery\nplanner\sresults.\s\sAll\sof\sveryquick.test\sis\snow\spassing\swith\nSQLITE_ENABLE_STAT2.
+D 2011-02-12T14:23:48.545
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 543f91f24cd7fee774ecc0a61c19704c0c3e78fd
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -242,9 +242,9 @@ F test/alter2.test 52096b711afe5f219e575c6db7a70f7a35df4f63
 F test/alter3.test 25b95a136708f22b87184fa6a4309eea03d65153
 F test/alter4.test 9386ffd1e9c7245f43eca412b2058d747509cc1f
 F test/altermalloc.test e81ac9657ed25c6c5bb09bebfa5a047cd8e4acfc
-F test/analyze.test bf692e7db414f268a136bade16c03a1bdbb9240c
-F test/analyze2.test 8f2b1534d43f5547ce9a6b736c021d4192c75be3
-F test/analyze3.test 6d4f4b0929545a9d1af803a0608a0c51b92a3537
+F test/analyze.test d21f2143664912a20d04b67baf4bed935e7b1b48
+F test/analyze2.test ea3df826879dd672031b27c6a845afc3a39f27d9
+F test/analyze3.test d61f55d8b472fc6e713160b1e577f7a68e63f38b
 F test/async.test ad4ba51b77cd118911a3fe1356b0809da9c108c3
 F test/async2.test bf5e2ca2c96763b4cba3d016249ad7259a5603b6
 F test/async3.test 93edaa9122f498e56ea98c36c72abc407f4fb11e
@@ -254,11 +254,11 @@ F test/attach.test ce9660e51768fab93cf129787be886c5d6c4fd81
 F test/attach2.test a295d2d7061adcee5884ef4a93c7c96a82765437
 F test/attach3.test bd9830bc3a0d22ed1310c9bff6896927937017dc
 F test/attachmalloc.test 38d2da5fdaf09ba0add57296967a3061e5842584
-F test/auth.test 8f21c160a4562f54f27618e85bac869efcecbcaf
+F test/auth.test 26cc6f219580191539bf335abe03e55e49310846
 F test/auth2.test 270baddc8b9c273682760cffba6739d907bd2882
 F test/auth3.test a4755e6a2a2fea547ffe63c874eb569e60a28eb5
 F test/autoinc.test 85ef3180a737e6580086a018c09c6f1a52759b46
-F test/autoindex1.test 53fdc13501a9d58ae049c0d39bb5c94389ff91bb
+F test/autoindex1.test fb1fe6a000ed0b3c2a4101cc4884313c3661e68e
 F test/autovacuum.test bb7c0885e6f8f1d633045de48f2b66082162766d
 F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6
 F test/avtrans.test 0252654f4295ddda3b2cce0e894812259e655a85
@@ -345,7 +345,7 @@ F test/descidx3.test fe720e8b37d59f4cef808b0bf4e1b391c2e56b6f
 F test/diskfull.test 0cede7ef9d8f415d9d3944005c76be7589bb5ebb
 F test/distinctagg.test 1a6ef9c87a58669438fc771450d7a72577417376
 F test/e_expr.test 8a35ce2718c61e871970bda09f4f3e549067c1ba
-F test/e_fkey.test 6721a741c6499b3ab7e5385923233343c8f1ad05
+F test/e_fkey.test 35a4ec281da928fa8ebc3591a9c957258ecbb8be
 F test/e_fts3.test 75bb0aee26384ef586165e21018a17f7cd843469
 F test/enc.test e54531cd6bf941ee6760be041dff19a104c7acea
 F test/enc2.test 6d91a5286f59add0cfcbb2d0da913b76f2242398
@@ -525,11 +525,11 @@ F test/memsubsys1.test 8fb47b7e2523f94c100f5885c5697505524de4b9
 F test/memsubsys2.test 72a731225997ad5e8df89fdbeae9224616b6aecc
 F test/minmax.test 722d80816f7e096bf2c04f4111f1a6c1ba65453d
 F test/minmax2.test 33504c01a03bd99226144e4b03f7631a274d66e0
-F test/minmax3.test 66a60eb0f20281b0753249d347c5de0766954cee
+F test/minmax3.test cc1e8b010136db0d01a6f2a29ba5a9f321034354
 F test/misc1.test e56baf44656dd68d6475a4b44521045a60241e9b
 F test/misc2.test a628db7b03e18973e5d446c67696b03de718c9fd
 F test/misc3.test 72c5dc87a78e7865c5ec7a969fc572913dbe96b6
-F test/misc4.test 91e8ed25c092c2bb4e0bb01864631e2930f8d7de
+F test/misc4.test 9c078510fbfff05a9869a0b6d8b86a623ad2c4f6
 F test/misc5.test 45b2e3ed5f79af2b4f38ae362eaf4c49674575bd
 F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
 F test/misc7.test c5f4e6a82e04e71820c0f9f64f6733f04c8ae0ae
@@ -583,7 +583,7 @@ F test/select2.test 352480e0e9c66eda9c3044e412abdf5be0215b56
 F test/select3.test 2ce595f8fb8e2ac10071d3b4e424cadd4634a054
 F test/select4.test 44aa6e7110592e18110b0b9cf5c024d37d23be17
 F test/select5.test e758b8ef94f69b111df4cb819008856655dcd535
-F test/select6.test 2b5e8500d8ec3dd4c8e0c99eb1431b3d11fcc24c
+F test/select6.test cc25a8650cf9a4d4f74e586c45a75f9836516b18
 F test/select7.test dad6f00f0d49728a879d6eb6451d4752db0b0abe
 F test/select8.test 391de11bdd52339c30580dabbbbe97e3e9a3c79d
 F test/select9.test 74c0fb2c6eecb0219cbed0cbe3df136f8fbf9343
@@ -625,7 +625,7 @@ F test/tclsqlite.test 8c154101e704170c2be10f137a5499ac2c6da8d3
 F test/tempdb.test 800c36623d67a2ad1f58784b9c5644e0405af6e6
 F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a
 F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05
-F test/tester.tcl ba665916dfef8c41769cd225ea374a6b05b75a96
+F test/tester.tcl c491b9f9533dacdf2523238940b8e8033f2f287b
 F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f
 F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db
 F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca
@@ -645,7 +645,7 @@ F test/tkt-3fe897352e.test 10de1a67bd5c66b238a4c96abe55531b37bb4f00
 F test/tkt-4a03edc4c8.test 2865e4edbc075b954daa82f8da7cc973033ec76e
 F test/tkt-5e10420e8d.test 904d1687b3c06d43e5b3555bbcf6802e7c0ffd84
 F test/tkt-5ee23731f.test 3581260f2a71e51db94e1506ba6b0f7311d002a9
-F test/tkt-78e04e52ea.test fb5430c675e708f5cbafdf3e7e5593da5145a527
+F test/tkt-78e04e52ea.test ab52f0c1e2de6e46c910f4cc16b086bba05952b7
 F test/tkt-80e031a00f.test 9a154173461a4dbe2de49cda73963e04842d52f7
 F test/tkt-94c04eaadb.test be5ea61cb04dfdc047d19b5c5a9e75fa3da67a7f
 F test/tkt-9d68c883.test 458f7d82a523d7644b54b497c986378a7d8c8b67
@@ -704,7 +704,7 @@ F test/tkt3346.test 6f67c3ed7db94dfc5df4f5f0b63809a1f611e01a
 F test/tkt3357.test 77c37c6482b526fe89941ce951c22d011f5922ed
 F test/tkt3419.test 1bbf36d7ea03b638c15804251287c2391f5c1f6b
 F test/tkt3424.test 61f831bd2b071bd128fa5d00fbda57e656ca5812
-F test/tkt3442.test 89d7b41a4ec4d9d9b40ab8575d648579fb13cb4f
+F test/tkt3442.test 0adb70e9fe9cb750a702065a68ad647409dbc158
 F test/tkt3457.test edbf54b05cbe5165f00192becbd621038f1615e4
 F test/tkt3461.test 228ea328a5a21e8663f80ee3d212a6ad92549a19
 F test/tkt3493.test 1686cbde85f8721fc1bdc0ee72f2ef2f63139218
@@ -718,14 +718,14 @@ F test/tkt35xx.test ed9721bd9eb1693b3b4d3cf2a093fa7f92af0c93
 F test/tkt3630.test 929f64852103054125200bc825c316d5f75d42f7
 F test/tkt3718.test 3b59dcb5c4e7754dacd91e7fd353a61492cc402a
 F test/tkt3731.test 0c5f4cbffe102d43c3b2188af91a9e36348f974b
-F test/tkt3757.test 8f2208930655bbd4f92c14e19e72303a43e098ef
+F test/tkt3757.test 10cd679a88675c880533083fc79ac04324525595
 F test/tkt3761.test b95ea9c98f21cf91325f18a984887e62caceab33
 F test/tkt3762.test 2a9f3b03df44ec49ec0cfa8d5da6574c2a7853df
 F test/tkt3773.test 430b06567ce40285dfd2c4834a2a61816403efeb
 F test/tkt3791.test a6624b9a80b216a26cf473607f42f3e51898c267
 F test/tkt3793.test 754b73f0e6a9349c70dc57e522cf3247272ecd5d
 F test/tkt3810.test 90fa0635dfa7da9680c8cd3513350a49b3a8ae12
-F test/tkt3824.test 3da2f5c81b057e3ff355f5dfc9aa0cf0a92e0206
+F test/tkt3824.test 150aa00bb6220672e5f0eb14dc8eaa36750425f0
 F test/tkt3832.test 2300d10d57562b89875b72148338ac3e14f8847d
 F test/tkt3838.test f956f0719b5f805b12dd1dbf19f19d298bacebc3
 F test/tkt3841.test 4659845bc53f809a5932c61c6ce8c5bb9d6b947f
@@ -805,14 +805,14 @@ F test/walslow.test d21625e2e99e11c032ce949e8a94661576548933
 F test/walthread.test a25a393c068a2b42b44333fa3fdaae9072f1617c
 F test/where.test de337a3fe0a459ec7c93db16a519657a90552330
 F test/where2.test 43d4becaf5a5df854e6c21d624a1cb84c6904554
-F test/where3.test 3bf8006d441b66a57bee02bb420423f84eb8fde3
+F test/where3.test 3bd3848a1439e775e6d268e7896151763c8bc4b6
 F test/where4.test e9b9e2f2f98f00379e6031db6a6fca29bae782a2
 F test/where5.test fdf66f96d29a064b63eb543e28da4dfdccd81ad2
 F test/where6.test 5da5a98cec820d488e82708301b96cb8c18a258b
 F test/where7.test a0a92b8ce48d9c027fbdd7b764c7de1e1213575a
 F test/where8.test a6c740fd286d7883e274e17b6230a9d672a7ab1f
 F test/where8m.test da346596e19d54f0aba35ebade032a7c47d79739
-F test/where9.test be19e1a92f80985c1a121b4678bf7d2123eaa623
+F test/where9.test 24f19ad14bb1b831564ced5273e681e495662848
 F test/whereA.test 24c234263c8fe358f079d5e57d884fb569d2da0a
 F test/whereB.test 0def95db3bdec220a731c7e4bec5930327c1d8c5
 F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31
@@ -849,14 +849,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P e72cf118cb25e9fed96f8d5cebbc0f637892479a
-R cd223ce61acd48a0fa6d93a74733dd61
+P 9d2b0af266b85f10823e54ca6417e76950c1d531
+R 716c2554879c451567b11e004ed21569
 U drh
-Z a73dbb9504f9bb87d458dc1f3711231d
+Z 4e672fc5ece21ffbe27c23d71389ecc8
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFNVhv2oxKgR168RlERApFoAJ4s0p8GLfjU21wkHd9FYZ6AXkPMTACeL9gy
-rUEoRNhVYquXJEH4o1up8iU=
-=3IXK
+iD8DBQFNVpf4oxKgR168RlERAnPNAJ47O1yXsq/ligOqmKbDGqny6c5lqgCeMySd
+2rRQeonIpwLNbwL34HKdnYA=
+=9LcO
 -----END PGP SIGNATURE-----
index b7ab61dc19ba5382d31c5f176559c29193b31126..c218943b9a7c1261b404cfe2167db366e83f2303 100644 (file)
@@ -1 +1 @@
-9d2b0af266b85f10823e54ca6417e76950c1d531
\ No newline at end of file
+f2a8b5ccfb46b6be5c8857bc495de14e55851bf4
\ No newline at end of file
index 5bd653a93bf5305f6dd0a3f39cfd0eaeafa8c3f5..af34ae146f776ae85bf65005418e48329bd5855b 100644 (file)
@@ -96,7 +96,7 @@ do_test analyze-1.11 {
   execsql {
     SELECT * FROM sqlite_stat1
   }
-} {}
+} {t1 {} 0}
 do_test analyze-1.12 {
   catchsql {
     ANALYZE t1;
@@ -106,7 +106,7 @@ do_test analyze-1.13 {
   execsql {
     SELECT * FROM sqlite_stat1
   }
-} {}
+} {t1 {} 0}
 
 # Create some indices that can be analyzed.  But do not yet add
 # data.  Without data in the tables, no analysis is done.
@@ -117,21 +117,21 @@ do_test analyze-2.1 {
     ANALYZE main.t1;
     SELECT * FROM sqlite_stat1 ORDER BY idx;
   }
-} {}
+} {t1 {} 0}
 do_test analyze-2.2 {
   execsql {
     CREATE INDEX t1i2 ON t1(b);
     ANALYZE t1;
     SELECT * FROM sqlite_stat1 ORDER BY idx;
   }
-} {}
+} {t1 {} 0}
 do_test analyze-2.3 {
   execsql {
     CREATE INDEX t1i3 ON t1(a,b);
     ANALYZE main;
     SELECT * FROM sqlite_stat1 ORDER BY idx;
   }
-} {}
+} {t1 {} 0}
 
 # Start adding data to the table.  Verify that the analysis
 # is done correctly.
index de2567bb6f704094f7c6920e033252a73755c531..d8629e9682517858655a3e8db6139f1b8dd1b4d7 100644 (file)
@@ -121,52 +121,52 @@ do_test analyze2-2.1 {
   execsql COMMIT
   execsql ANALYZE
 } {}
-do_eqp_test 2.2 {
+do_eqp_test analyze2-2.2 {
   SELECT * FROM t1 WHERE x>500 AND y>700
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~100 rows)}
 }
-do_eqp_test 2.3 {
+do_eqp_test analyze2-2.3 {
   SELECT * FROM t1 WHERE x>700 AND y>500
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>?) (~100 rows)}
 }
-do_eqp_test 2.3 {
+do_eqp_test analyze2-2.3 {
   SELECT * FROM t1 WHERE y>700 AND x>500
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~100 rows)}
 }
-do_eqp_test 2.4 {
+do_eqp_test analyze2-2.4 {
   SELECT * FROM t1 WHERE y>500 AND x>700
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>?) (~100 rows)}
 }
-do_eqp_test 2.5 {
+do_eqp_test analyze2-2.5 {
   SELECT * FROM t1 WHERE x BETWEEN 100 AND 200 AND y BETWEEN 400 AND 700
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>? AND x<?) (~25 rows)}
 }
-do_eqp_test 2.6 {
+do_eqp_test analyze2-2.6 {
   SELECT * FROM t1 WHERE x BETWEEN 100 AND 500 AND y BETWEEN 400 AND 700
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>? AND y<?) (~75 rows)}
 }
-do_eqp_test 2.7 {
+do_eqp_test analyze2-2.7 {
   SELECT * FROM t1 WHERE x BETWEEN -400 AND -300 AND y BETWEEN 100 AND 300
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>? AND x<?) (~12 rows)}
 }
-do_eqp_test 2.8 {
+do_eqp_test analyze2-2.8 {
   SELECT * FROM t1 WHERE x BETWEEN 100 AND 300 AND y BETWEEN -400 AND -300
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>? AND y<?) (~12 rows)}
 }
-do_eqp_test 2.9 {
+do_eqp_test analyze2-2.9 {
   SELECT * FROM t1 WHERE x BETWEEN 500 AND 100 AND y BETWEEN 100 AND 300
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>? AND x<?) (~12 rows)}
 }
-do_eqp_test 2.10 {
+do_eqp_test analyze2-2.10 {
   SELECT * FROM t1 WHERE x BETWEEN 100 AND 300 AND y BETWEEN 500 AND 100
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>? AND y<?) (~12 rows)}
@@ -199,27 +199,27 @@ do_test analyze2-3.2 {
   }
 } {t1 t1_y {100 299 499 699 899 ajj cjj ejj gjj ijj}}
 
-do_eqp_test 3.3 {
+do_eqp_test analyze2-3.3 {
   SELECT * FROM t1 WHERE x BETWEEN 100 AND 500 AND y BETWEEN 'a' AND 'b'
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>? AND y<?) (~50 rows)}
 }
-do_eqp_test 3.4 {
+do_eqp_test analyze2-3.4 {
   SELECT * FROM t1 WHERE x BETWEEN 100 AND 400 AND y BETWEEN 'a' AND 'h'
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x>? AND x<?) (~100 rows)}
 }
-do_eqp_test 3.5 {
+do_eqp_test analyze2-3.5 {
   SELECT * FROM t1 WHERE x<'a' AND y>'h'
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~66 rows)}
 }
-do_eqp_test 3.6 {
+do_eqp_test analyze2-3.6 {
   SELECT * FROM t1 WHERE x<444 AND y>'h'
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~66 rows)}
 }
-do_eqp_test 3.7 {
+do_eqp_test analyze2-3.7 {
   SELECT * FROM t1 WHERE x<221 AND y>'g'
 } {
   0 0 0 {SEARCH TABLE t1 USING INDEX t1_x (x<?) (~66 rows)}
@@ -259,12 +259,12 @@ do_test analyze2-4.3 {
   }
 } {t3 t3b {AbA CIj EIj GIj IIj bIj dIj fIj hIj jIj}}
 
-do_eqp_test 4.4 {
+do_eqp_test analyze2-4.4 {
   SELECT * FROM t3 WHERE a > 'A' AND a < 'C' AND b > 'A' AND b < 'C'
 } {
   0 0 0 {SEARCH TABLE t3 USING INDEX t3b (b>? AND b<?) (~11 rows)}
 }
-do_eqp_test 4.5 {
+do_eqp_test analyze2-4.5 {
   SELECT * FROM t3 WHERE a > 'A' AND a < 'c' AND b > 'A' AND b < 'c'
 } {
   0 0 0 {SEARCH TABLE t3 USING INDEX t3a (a>? AND a<?) (~22 rows)}
@@ -298,16 +298,16 @@ ifcapable utf16 {
       GROUP BY tbl,idx
     }
   } {t4 t4x {afa bej cej dej eej fej gej hej iej jej}}
-  do_eqp_test 5.3 {
+  do_eqp_test analyze2-5.3 {
     SELECT * FROM t4 WHERE x>'ccc'
   } {0 0 0 {SEARCH TABLE t4 USING COVERING INDEX t4x (x>?) (~800 rows)}}
-  do_eqp_test 5.4 {
+  do_eqp_test analyze2-5.4 {
     SELECT * FROM t4 AS t41, t4 AS t42 WHERE t41.x>'ccc' AND t42.x>'ggg'
   } {
     0 0 1 {SEARCH TABLE t4 AS t42 USING COVERING INDEX t4x (x>?) (~300 rows)} 
     0 1 0 {SEARCH TABLE t4 AS t41 USING COVERING INDEX t4x (x>?) (~800 rows)}
   }
-  do_eqp_test 5.5 {
+  do_eqp_test analyze2-5.5 {
     SELECT * FROM t4 AS t41, t4 AS t42 WHERE t41.x>'ddd' AND t42.x>'ccc'
   } {
     0 0 0 {SEARCH TABLE t4 AS t41 USING COVERING INDEX t4x (x>?) (~700 rows)} 
index 50a2aecfb2b9deb5ddf9de0f57aa3c02d349b760..2378ffaaba9a129212d932d94dfa08fb8050856f 100644 (file)
@@ -95,12 +95,12 @@ do_test analyze3-1.1.1 {
   }
 } {}
 
-do_test analyze3-1.1.2 {
-  eqp { SELECT sum(y) FROM t1 WHERE x>200 AND x<300 }
-} {0 0 {TABLE t1 WITH INDEX i1}}
-do_test analyze3-1.1.3 {
-  eqp { SELECT sum(y) FROM t1 WHERE x>0 AND x<1100 }
-} {0 0 {TABLE t1}}
+do_eqp_test analyze3-1.1.2 {
+  SELECT sum(y) FROM t1 WHERE x>200 AND x<300
+} {0 0 0 {SEARCH TABLE t1 USING INDEX i1 (x>? AND x<?) (~100 rows)}}
+do_eqp_test analyze3-1.1.3 {
+  SELECT sum(y) FROM t1 WHERE x>0 AND x<1100 
+} {0 0 0 {SCAN TABLE t1 (~111 rows)}}
 
 do_test analyze3-1.1.4 {
   sf_execsql { SELECT sum(y) FROM t1 WHERE x>200 AND x<300 }
@@ -144,12 +144,12 @@ do_test analyze3-1.2.1 {
     ANALYZE;
   }
 } {}
-do_test analyze3-1.2.2 {
-  eqp { SELECT sum(y) FROM t2 WHERE x>1 AND x<2 }
-} {0 0 {TABLE t2 WITH INDEX i2}}
-do_test analyze3-1.2.3 {
-  eqp { SELECT sum(y) FROM t2 WHERE x>0 AND x<99 }
-} {0 0 {TABLE t2}}
+do_eqp_test analyze3-1.2.2 {
+  SELECT sum(y) FROM t2 WHERE x>1 AND x<2
+} {0 0 0 {SEARCH TABLE t2 USING INDEX i2 (x>? AND x<?) (~200 rows)}}
+do_eqp_test analyze3-1.2.3 {
+  SELECT sum(y) FROM t2 WHERE x>0 AND x<99
+} {0 0 0 {SCAN TABLE t2 (~111 rows)}}
 do_test analyze3-1.2.4 {
   sf_execsql { SELECT sum(y) FROM t2 WHERE x>12 AND x<20 }
 } {161 0 4760}
@@ -191,12 +191,12 @@ do_test analyze3-1.3.1 {
     ANALYZE;
   }
 } {}
-do_test analyze3-1.3.2 {
-  eqp { SELECT sum(y) FROM t3 WHERE x>200 AND x<300 }
-} {0 0 {TABLE t3 WITH INDEX i3}}
-do_test analyze3-1.3.3 {
-  eqp { SELECT sum(y) FROM t3 WHERE x>0 AND x<1100 }
-} {0 0 {TABLE t3}}
+do_eqp_test analyze3-1.3.2 {
+  SELECT sum(y) FROM t3 WHERE x>200 AND x<300
+} {0 0 0 {SEARCH TABLE t3 USING INDEX i3 (x>? AND x<?) (~100 rows)}}
+do_eqp_test analyze3-1.3.3 {
+  SELECT sum(y) FROM t3 WHERE x>0 AND x<1100
+} {0 0 0 {SCAN TABLE t3 (~111 rows)}}
 
 do_test analyze3-1.3.4 {
   sf_execsql { SELECT sum(y) FROM t3 WHERE x>200 AND x<300 }
@@ -246,12 +246,12 @@ do_test analyze3-2.1 {
   }
   execsql COMMIT
 } {}
-do_test analyze3-2.2 {
-  eqp { SELECT count(a) FROM t1 WHERE b LIKE 'a%' }
-} {0 0 {TABLE t1 WITH INDEX i1}}
-do_test analyze3-2.3 {
-  eqp { SELECT count(a) FROM t1 WHERE b LIKE '%a' }
-} {0 0 {TABLE t1}}
+do_eqp_test analyze3-2.2 {
+  SELECT count(a) FROM t1 WHERE b LIKE 'a%'
+} {0 0 0 {SEARCH TABLE t1 USING INDEX i1 (b>? AND b<?) (~30000 rows)}}
+do_eqp_test analyze3-2.3 {
+  SELECT count(a) FROM t1 WHERE b LIKE '%a'
+} {0 0 0 {SCAN TABLE t1 (~500000 rows)}}
 
 do_test analyze3-2.4 {
   sf_execsql { SELECT count(*) FROM t1 WHERE b LIKE 'a%' }
index 8b7cae3e111eb8776587419ff3e2009c7a47b14e..bb974ea3ee3c662c12f51b6a014dba9af6894882 100644 (file)
@@ -1976,12 +1976,12 @@ ifcapable analyze {
       ANALYZE;
     }
     set ::authargs
-  } {t4 {} main {}}
+  } {t4 {} main {} t2 {} main {}}
   do_test auth-1.295 {
     execsql {
       SELECT count(*) FROM sqlite_stat1;
     }
-  } 2
+  } 3
   proc auth {code args} {
     if {$code=="SQLITE_ANALYZE"} {
       set ::authargs [concat $::authargs $args]
@@ -1999,7 +1999,7 @@ ifcapable analyze {
     execsql {
       SELECT count(*) FROM sqlite_stat1;
     }
-  } 2
+  } 3
 } ;# ifcapable analyze
 
 
index 5d946d9524a7eb309849e076bc2c27628a17c257..7ffd644552be40b714dbc2350ab53e1e81586350 100644 (file)
@@ -124,7 +124,7 @@ do_test autoindex1-401 {
   db eval {
     SELECT count(*)
       FROM t4 AS x1
-/*      JOIN t4 AS x2 ON x2.a=x1.b
+      JOIN t4 AS x2 ON x2.a=x1.b
       JOIN t4 AS x3 ON x3.a=x2.b
       JOIN t4 AS x4 ON x4.a=x3.b
       JOIN t4 AS x5 ON x5.a=x4.b
@@ -132,9 +132,9 @@ do_test autoindex1-401 {
       JOIN t4 AS x7 ON x7.a=x6.b
       JOIN t4 AS x8 ON x8.a=x7.b
       JOIN t4 AS x9 ON x9.a=x8.b
-      JOIN t4 AS x10 ON x10.a=x9.b;*/
+      JOIN t4 AS x10 ON x10.a=x9.b;
   }
-} {4087 FIXME}
+} {4087}
 
 # Ticket [8011086c85c6c404014c947fcf3eb9f42b184a0d] from 2010-07-08
 # Make sure automatic indices are not created for the RHS of an IN expression
@@ -148,14 +148,14 @@ do_test autoindex1-500 {
     SELECT b FROM t501
      WHERE t501.a IN (SELECT x FROM t502 WHERE y=?);
   }
-} {0 0 {TABLE t501 USING PRIMARY KEY} 0 0 {TABLE t502}}
+} {0 0 0 {SEARCH TABLE t501 USING INTEGER PRIMARY KEY (rowid=?) (~25 rows)} 0 0 0 {SCAN TABLE t502 (~100000 rows)}}
 do_test autoindex1-501 {
   db eval {
     EXPLAIN QUERY PLAN
     SELECT b FROM t501
      WHERE t501.a IN (SELECT x FROM t502 WHERE y=t501.b);
   }
-} {0 0 {TABLE t501} 0 0 {TABLE t502 WITH AUTOMATIC INDEX}}
+} {0 0 0 {SCAN TABLE t501 (~500000 rows)} 0 0 0 {SEARCH TABLE t502 USING AUTOMATIC COVERING INDEX (y=?) (~7 rows)}}
 do_test autoindex1-502 {
   db eval {
     EXPLAIN QUERY PLAN
@@ -163,7 +163,6 @@ do_test autoindex1-502 {
      WHERE t501.a=123
        AND t501.a IN (SELECT x FROM t502 WHERE y=t501.b);
   }
-} {0 0 {TABLE t501 USING PRIMARY KEY} 0 0 {TABLE t502}}
-    
+} {0 0 0 {SEARCH TABLE t501 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)} 0 0 0 {SCAN TABLE t502 (~100000 rows)}}
 
 finish_test
index cc87f3594b8bb85a8778083e6432dcd329829d2a..c556325b2dbbbe2bbb5431371edee7cd353f1ae5 100644 (file)
@@ -974,13 +974,13 @@ do_test e_fkey-25.2 {
     EXPLAIN QUERY PLAN DELETE FROM artist WHERE 1;
     EXPLAIN QUERY PLAN SELECT rowid FROM track WHERE trackartist = ?;
   }
-} {0 0 {TABLE artist} 0 0 {TABLE track}}
+} {0 0 0 {SCAN TABLE artist (~1000000 rows)} 0 0 0 {SCAN TABLE track (~100000 rows)}}
 do_test e_fkey-25.3 {
   execsql { 
     PRAGMA foreign_keys = ON;
     EXPLAIN QUERY PLAN DELETE FROM artist WHERE 1;
   }
-} {0 0 {TABLE artist} 0 0 {TABLE track}}
+} {0 0 0 {SCAN TABLE artist (~1000000 rows)} 0 0 0 {SCAN TABLE track (~100000 rows)}}
 do_test e_fkey-25.4 {
   execsql {
     INSERT INTO artist VALUES(5, 'artist 5');
@@ -1096,15 +1096,15 @@ do_test e_fkey-27.2 {
 do_test e_fkey-27.3 {
   eqp { UPDATE artist SET artistid = ?, artistname = ? }
 } [list \
-  0 0 {TABLE artist} \
-  0 0 {TABLE track WITH INDEX trackindex} \
-  0 0 {TABLE track WITH INDEX trackindex}
+  0 0 0 {SCAN TABLE artist (~1000000 rows)} \
+  0 0 0 {SEARCH TABLE track USING COVERING INDEX trackindex (trackartist=?) (~10 rows)} \
+  0 0 0 {SEARCH TABLE track USING COVERING INDEX trackindex (trackartist=?) (~10 rows)}
 ]
 do_test e_fkey-27.4 {
   eqp { DELETE FROM artist }
 } [list \
-  0 0 {TABLE artist} \
-  0 0 {TABLE track WITH INDEX trackindex}
+  0 0 0 {SCAN TABLE artist (~1000000 rows)} \
+  0 0 0 {SEARCH TABLE track USING COVERING INDEX trackindex (trackartist=?) (~10 rows)}
 ]
 
 
index 8e8a0a52562bd22c0a0fe9f2ebd0d5ef628754bd..483fa612d27d41f2c2fdb6c84cbf491f04279d16 100644 (file)
@@ -52,6 +52,7 @@ do_test minmax3-1.0 {
     INSERT INTO t1 VALUES('2', 'V',   'five');
     INSERT INTO t1 VALUES('3', 'VI',  'six');
     COMMIT;
+    PRAGMA automatic_index=OFF;
   }
 } {}
 do_test minmax3-1.1.1 {
index 026dd032e3b633337229065f9529a49bc82c1902..59c1d118ac7c5f785b5f4cd7101b0078c1f7f2b2 100644 (file)
@@ -151,7 +151,7 @@ ifcapable subquery {
       
       select a.*, x.*
         from a, (select key,sum(period) from b group by key) as x
-        where a.key=x.key;
+        where a.key=x.key order by 1 desc;
     }
   } {01 data01 01 3 +1 data+1 +1 7}
 
index ef0bfd56602dc6a5a0b7e71e988b50e0f0fdf06b..e0ff165c550e7b3fcb80eaeaddb8116b290970f1 100644 (file)
@@ -458,6 +458,7 @@ do_test select6-8.6 {
 do_test select6-9.1 {
   execsql {
     SELECT a.x, b.x FROM t1 AS a, (SELECT x FROM t1 LIMIT 2) AS b
+     ORDER BY 1, 2
   }
 } {1 1 1 2 2 1 2 2 3 1 3 2 4 1 4 2}
 do_test select6-9.2 {
index 736cc945ffbf54ef34ed6887a74caa0984245691..92115c55c9a02342f4a3475ed0bd58e0b80c5b73 100644 (file)
@@ -333,14 +333,17 @@ proc do_test {name cmd expected} {
 }
     
 proc do_execsql_test {testname sql result} {
-  uplevel do_test $testname [list "execsql {$sql}"] [list $result]
+  set r {}
+  foreach x $result {lappend r $x}
+  uplevel do_test $testname [list "execsql {$sql}"] [list $r]
 }
 proc do_catchsql_test {testname sql result} {
   uplevel do_test $testname [list "catchsql {$sql}"] [list $result]
 }
 proc do_eqp_test {name sql res} {
-  uplevel do_execsql_test $name [list "EXPLAIN QUERY PLAN $sql"] \
-     [list [string trim $res]]
+  set r {}
+  foreach x $res {lappend r $x}
+  uplevel do_execsql_test $name [list "EXPLAIN QUERY PLAN $sql"] [list $r]
 }
 
 
index 9cd25f5d40da8762242f37af5f2f40b67defd90a..9524d845e2394fb342666a05dbd7f087f02713da 100644 (file)
@@ -44,7 +44,7 @@ do_test tkt-78e04-1.4 {
   execsql {
     EXPLAIN QUERY PLAN SELECT * FROM "" WHERE "" LIKE 'abc%';
   }
-} {0 0 {TABLE }}
+} {0 0 0 {SCAN TABLE  (~500000 rows)}}
 do_test tkt-78e04-1.5 {
   execsql {
     DROP TABLE "";
@@ -57,12 +57,12 @@ do_test tkt-78e04-2.1 {
     CREATE INDEX "" ON t2(x);
     EXPLAIN QUERY PLAN SELECT * FROM t2 WHERE x=5;
   }
-} {0 0 {TABLE t2 WITH INDEX }}
+} {0 0 0 {SEARCH TABLE t2 USING COVERING INDEX  (x=?) (~10 rows)}}
 do_test tkt-78e04-2.2 {
   execsql {
     DROP INDEX "";
     EXPLAIN QUERY PLAN SELECT * FROM t2 WHERE x=2;
   }
-} {0 0 {TABLE t2}}
+} {0 0 0 {SCAN TABLE t2 (~100000 rows)}}
 
 finish_test
index 86bd695c87cc941ba40916dcc36a407ead89c18e..ae03949d548fc6b671503b628ea8980cfb1d8afc 100644 (file)
@@ -49,10 +49,10 @@ proc EQP {sql} {
 ifcapable explain {
   do_test tkt3442-1.2 {
     EQP { SELECT node FROM listhash WHERE id='5000' LIMIT 1; }
-  } {0 0 {TABLE listhash WITH INDEX ididx}}
+  } {0 0 0 {SEARCH TABLE listhash USING INDEX ididx (id=?) (~1 rows)}}
   do_test tkt3442-1.3 {
     EQP { SELECT node FROM listhash WHERE id="5000" LIMIT 1; }
-  } {0 0 {TABLE listhash WITH INDEX ididx}}
+  } {0 0 0 {SEARCH TABLE listhash USING INDEX ididx (id=?) (~1 rows)}}
 }
 
 
@@ -61,7 +61,7 @@ ifcapable explain {
 ifcapable explain {
   do_test tkt3442-1.4 {
     EQP { SELECT node FROM listhash WHERE id=5000 LIMIT 1; }
-  } {0 0 {TABLE listhash WITH INDEX ididx}}
+  } {0 0 0 {SEARCH TABLE listhash USING INDEX ididx (id=?) (~1 rows)}}
 }
 do_test tkt3442-1.5 {
   catchsql {
index 14bfb23be73a1977043be575de013fb81d845a8f..011beb5c8b79f8f1a1b46832dab5bdfce88ea10d 100644 (file)
@@ -35,9 +35,9 @@ do_test tkt3757-1.1 {
      CREATE TABLE t2(a INTEGER, b TEXT);
      INSERT INTO t2 VALUES(2, 'two');
      ANALYZE;
-     SELECT * FROM sqlite_stat1;
+     SELECT * FROM sqlite_stat1 ORDER BY 1, 2;
   }
-} {t1 t1i1 {1 1 1}}
+} {t1 t1i1 {1 1 1} t2 {} 1}
 
 # Modify statistics in order to make the optimizer then that:
 #
index 5b447bff4ade2aedacf52ef69cf406037b8f6743..3198abbdd3afbd17b801727cfb6c73c97649284e 100644 (file)
@@ -72,7 +72,7 @@ do_test tkt3824-2.3 {
   lsort [execsql_status {
     SELECT a FROM t2 WHERE b=2 AND c IS NULL ORDER BY b;
   }]
-} {5 9 sort}
+} {5 9 nosort}
 
 do_test tkt3824-3.1 {
   db eval {
index 9fa4cf9920e4c2e4fb3537663f9fc4d9822a3d97..d25339f1c322b204521bc76d0340b23ae1d2a171 100644 (file)
@@ -227,13 +227,13 @@ do_test where3-3.0 {
     explain query plan
     SELECT * FROM t302, t301 WHERE t302.x=5 AND t301.a=t302.y;
   }
-} {0 0 {TABLE t302} 1 1 {TABLE t301 USING PRIMARY KEY}}
+} {0 0 0 {SCAN TABLE t302 (~1 rows)} 0 1 1 {SEARCH TABLE t301 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}}
 do_test where3-3.1 {
   execsql {
     explain query plan
     SELECT * FROM t301, t302 WHERE t302.x=5 AND t301.a=t302.y;
   }
-} {0 1 {TABLE t302} 1 0 {TABLE t301 USING PRIMARY KEY}}
+} {0 0 1 {SCAN TABLE t302 (~1 rows)} 0 1 0 {SEARCH TABLE t301 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)}}
 
 # Verify that when there are multiple tables in a join which must be
 # full table scans that the query planner attempts put the table with
@@ -247,18 +247,18 @@ do_test where3-4.0 {
     EXPLAIN QUERY PLAN
     SELECT * FROM t400, t401, t402 WHERE t402.z GLOB 'abc*';
   }
-} {0 2 {TABLE t402} 1 0 {TABLE t400} 2 1 {TABLE t401}}
+} {0 0 2 {SCAN TABLE t402 (~500000 rows)} 0 1 0 {SCAN TABLE t400 (~1000000 rows)} 0 2 1 {SCAN TABLE t401 (~1000000 rows)}}
 do_test where3-4.1 {
   execsql {
     EXPLAIN QUERY PLAN
     SELECT * FROM t400, t401, t402 WHERE t401.r GLOB 'abc*';
   }
-} {0 1 {TABLE t401} 1 0 {TABLE t400} 2 2 {TABLE t402}}
+} {0 0 1 {SCAN TABLE t401 (~500000 rows)} 0 1 0 {SCAN TABLE t400 (~1000000 rows)} 0 2 2 {SCAN TABLE t402 (~1000000 rows)}}
 do_test where3-4.2 {
   execsql {
     EXPLAIN QUERY PLAN
     SELECT * FROM t400, t401, t402 WHERE t400.c GLOB 'abc*';
   }
-} {0 0 {TABLE t400} 1 1 {TABLE t401} 2 2 {TABLE t402}}
+} {0 0 0 {SCAN TABLE t400 (~500000 rows)} 0 1 1 {SCAN TABLE t401 (~1000000 rows)} 0 2 2 {SCAN TABLE t402 (~1000000 rows)}}
 
 finish_test
index bf72a7169d37c221af85d196eeb0b50513e092e0..9a180116a83947fc9a2ccb44d5c0c9798b1d5509 100644 (file)
@@ -358,32 +358,25 @@ do_test where9-2.8 {
 
 
 ifcapable explain {
-  do_test where9-3.1 {
-    set r [db eval {
-      EXPLAIN QUERY PLAN
-      SELECT t2.a FROM t1, t2
-       WHERE t1.a=80
-         AND ((t1.c=t2.c AND t1.d=t2.d) OR t1.f=t2.f)
-    }]
-    set a [expr {[lsearch $r {TABLE t2 VIA MULTI-INDEX UNION}]>=0}]
-    set b [expr {[lsearch $r {TABLE t2 WITH INDEX t2f}]>=0}]
-    set c [expr {([lsearch $r {TABLE t2 WITH INDEX t2c}]>=0)+
-                  [lsearch $r {TABLE t2 WITH INDEX t2d}]>=0}]
-    concat $a $b $c
-  } {1 1 1}
-  do_test where9-3.2 {
-    set r [db eval {
-      EXPLAIN QUERY PLAN
-      SELECT coalesce(t2.a,9999)
-        FROM t1 LEFT JOIN t2 ON (t1.c+1=t2.c AND t1.d=t2.d) OR (t1.f||'x')=t2.f
-       WHERE t1.a=80
-    }]
-    set a [expr {[lsearch $r {TABLE t2 VIA MULTI-INDEX UNION}]>=0}]
-    set b [expr {[lsearch $r {TABLE t2 WITH INDEX t2f}]>=0}]
-    set c [expr {([lsearch $r {TABLE t2 WITH INDEX t2c}]>=0)+
-                  [lsearch $r {TABLE t2 WITH INDEX t2d}]>=0}]
-    concat $a $b $c
-  } {1 1 1}
+  do_execsql_test where9-3.1 {
+    EXPLAIN QUERY PLAN
+    SELECT t2.a FROM t1, t2
+    WHERE t1.a=80 AND ((t1.c=t2.c AND t1.d=t2.d) OR t1.f=t2.f)
+  } {
+    0 0 0 {SEARCH TABLE t1 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)} 
+    0 1 1 {SEARCH TABLE t2 USING INDEX t2d (d=?) (~2 rows)} 
+    0 1 1 {SEARCH TABLE t2 USING COVERING INDEX t2f (f=?) (~10 rows)}
+  }
+  do_execsql_test where9-3.2 {
+    EXPLAIN QUERY PLAN
+    SELECT coalesce(t2.a,9999)
+    FROM t1 LEFT JOIN t2 ON (t1.c+1=t2.c AND t1.d=t2.d) OR (t1.f||'x')=t2.f
+    WHERE t1.a=80
+  } {
+    0 0 0 {SEARCH TABLE t1 USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)} 
+    0 1 1 {SEARCH TABLE t2 USING INDEX t2d (d=?) (~2 rows)} 
+    0 1 1 {SEARCH TABLE t2 USING COVERING INDEX t2f (f=?) (~10 rows)}
+  }
 } 
 
 # Make sure that INDEXED BY and multi-index OR clauses play well with
@@ -458,46 +451,29 @@ ifcapable explain {
   # The (c=31031 OR d IS NULL) clause is preferred over b>1000 because
   # the former is an equality test which is expected to return fewer rows.
   #
-  do_test where9-5.1 {
-    set r [db eval {
-      EXPLAIN QUERY PLAN
-      SELECT a FROM t1
-       WHERE b>1000
-         AND (c=31031 OR d IS NULL)
-    }]
-    set a [expr {[lsearch $r {TABLE t1 VIA MULTI-INDEX UNION}]>=0}]
-    set b [expr {[lsearch $r {TABLE t1 WITH INDEX t1b}]>=0}]
-    concat $a $b
-  } {1 0}
+  do_execsql_test where9-5.1 {
+    EXPLAIN QUERY PLAN SELECT a FROM t1 WHERE b>1000 AND (c=31031 OR d IS NULL)
+  } {
+    0 0 0 {SEARCH TABLE t1 USING INDEX t1c (c=?) (~10 rows)} 
+    0 0 0 {SEARCH TABLE t1 USING INDEX t1d (d=?) (~10 rows)}
+  }
 
   # In contrast, b=1000 is preferred over any OR-clause.
   #
-  do_test where9-5.2 {
-    set r [db eval {
-      EXPLAIN QUERY PLAN
-      SELECT a FROM t1
-       WHERE b=1000
-         AND (c=31031 OR d IS NULL)
-    }]
-    set a [expr {[lsearch $r {TABLE t1 VIA MULTI-INDEX UNION}]>=0}]
-    set b [expr {[lsearch $r {TABLE t1 WITH INDEX t1b}]>=0}]
-    concat $a $b
-  } {0 1}
+  do_execsql_test where9-5.2 {
+    EXPLAIN QUERY PLAN SELECT a FROM t1 WHERE b=1000 AND (c=31031 OR d IS NULL)
+  } {
+    0 0 0 {SEARCH TABLE t1 USING INDEX t1b (b=?) (~5 rows)}
+  }
 
   # Likewise, inequalities in an AND are preferred over inequalities in
   # an OR.
   #
-  do_test where9-5.3 {
-    set r [db eval {
-      EXPLAIN QUERY PLAN
-      SELECT a FROM t1
-       WHERE b>1000
-         AND (c>=31031 OR d IS NULL)
-    }]
-    set a [expr {[lsearch $r {TABLE t1 VIA MULTI-INDEX UNION}]>=0}]
-    set b [expr {[lsearch $r {TABLE t1 WITH INDEX t1b}]>=0}]
-    concat $a $b
-  } {0 1}
+  do_execsql_test where9-5.3 {
+    EXPLAIN QUERY PLAN SELECT a FROM t1 WHERE b>1000 AND (c>=31031 OR d IS NULL)
+  } {
+    0 0 0 {SEARCH TABLE t1 USING INDEX t1b (b>?) (~125000 rows)}
+  }
 }
 
 ############################################################################