]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a compiler warning when STAT2 is off. More test cases. Fix legacy tests
authordrh <drh@noemail.net>
Sat, 6 Aug 2011 01:22:50 +0000 (01:22 +0000)
committerdrh <drh@noemail.net>
Sat, 6 Aug 2011 01:22:50 +0000 (01:22 +0000)
to deal with the new STAT2 logic.

FossilOrigin-Name: 7e914aa999d9f3f7be58a4494d33a7876af56603

manifest
manifest.uuid
src/analyze.c
test/analyze2.test
test/analyze8.test
test/tkt-cbd054fa6b.test

index 5d9c6e64e3166dfbe5ed83d61004e70132b57574..26fa848acab087295396691d9c1053b908583bc5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Bug\sfixes\sto\sthe\ssample-count\slogic\sfor\sSTAT2.\s\sA\sfew\stest\scases\sadded.
-D 2011-08-05T22:31:19.378
+C Fix\sa\scompiler\swarning\swhen\sSTAT2\sis\soff.\s\sMore\stest\scases.\s\sFix\slegacy\stests\nto\sdeal\swith\sthe\snew\sSTAT2\slogic.
+D 2011-08-06T01:22:50.386
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 1e6988b3c11dee9bd5edc0c804bd4468d74a9cdc
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -118,7 +118,7 @@ F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
 F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc
 F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad
 F src/alter.c ac80a0f31189f8b4a524ebf661e47e84536ee7f5
-F src/analyze.c 533077e1a96a9a33464edb35573b2a80a043e0f4
+F src/analyze.c b1df43e5452fc6bcb14a6503c67bfcbdffddc2fe
 F src/attach.c 12c6957996908edc31c96d7c68d4942c2474405f
 F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
 F src/backup.c 986c15232757f2873dff35ee3b35cbf935fc573c
@@ -261,13 +261,13 @@ F test/alter3.test 49c9d9fba2b8fcdce2dedeca97bbf1f369cc548d
 F test/alter4.test b2debc14d8cbe4c1d12ccd6a41eef88a8c1f15d5
 F test/altermalloc.test e81ac9657ed25c6c5bb09bebfa5a047cd8e4acfc
 F test/analyze.test c8cb89e8736336f1f0646c8123e6028a14c7b55e
-F test/analyze2.test 6a5c1420bdbfadd47556fcd88deeb27ab3853a36
+F test/analyze2.test b2c53cf72aa65383da991d97b9d3ec7b45f72c03
 F test/analyze3.test d61f55d8b472fc6e713160b1e577f7a68e63f38b
 F test/analyze4.test 757b37875cf9bb528d46f74497bc789c88365045
 F test/analyze5.test 1de8d66b11aae5a1453aa042d62e834a476bac9c
 F test/analyze6.test c125622a813325bba1b4999040ddc213773c2290
 F test/analyze7.test 5508e7828164ea0b518ed219bed7320a481863d4
-F test/analyze8.test e78fb00274ca3c4eb9dc906a83bd13d5793d4641
+F test/analyze8.test ff7a3b4631c896a51e7404268796c61d74117e9f
 F test/async.test 1d0e056ba1bb9729283a0f22718d3a25e82c277b
 F test/async2.test c0a9bd20816d7d6a2ceca7b8c03d3d69c28ffb8b
 F test/async3.test d73a062002376d7edc1fe3edff493edbec1fc2f7
@@ -734,7 +734,7 @@ F test/tkt-9d68c883.test 458f7d82a523d7644b54b497c986378a7d8c8b67
 F test/tkt-b351d95f9.test d14a503c414c5c58fdde3e80f9a3cfef986498c0
 F test/tkt-b72787b1.test e6b62b2b2785c04d0d698d6a603507e384165049
 F test/tkt-bd484a090c.test 60460bf946f79a79712b71f202eda501ca99b898
-F test/tkt-cbd054fa6b.test f14f97ea43662e6f70c9e63287081e8be5d9d589
+F test/tkt-cbd054fa6b.test 2263389efa52207e8527dac7314f839e5edeccda
 F test/tkt-d11f09d36e.test fb44f7961aa6d4b632fb7b9768239832210b5fc7
 F test/tkt-d635236375.test 9d37e988b47d87505bc9445be0ca447002df5d09
 F test/tkt-d82e3f3721.test 731359dfdcdb36fea0559cd33fec39dd0ceae8e6
@@ -956,7 +956,7 @@ F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5
 F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings.sh 2ebae31e1eb352696f3c2f7706a34c084b28c262
-P eb434228277c4bbbb1ad153ed3e6e3eeffe799a4
-R 5e934c2ca6d03f0d8b0d9f4d06ff655c
+P e93c248c8470622944cf7f9e5af4f10c4e4809e3
+R 4c0da7c33e60748bbef1bc20f3ff5e64
 U drh
-Z 98e2c68261b7b8ef26e19fbc93ef8bb3
+Z d7b9f3f4715d72ce86f406011b991106
index 078676bf98ee765bfbbaa7f72bbde50e03a54615..9cb64d118c1b17efa87c43cdfc9d6f96b1eeab9f 100644 (file)
@@ -1 +1 @@
-e93c248c8470622944cf7f9e5af4f10c4e4809e3
\ No newline at end of file
+7e914aa999d9f3f7be58a4494d33a7876af56603
\ No newline at end of file
index 43a337664dbebbc2d20a6386e248776d38ca98ad..bf8e59254c8c54913c50ead8c0dc7e0bd828a0f6 100644 (file)
@@ -133,12 +133,12 @@ static void analyzeOneTable(
   int regSample2 = iMem++;     /* Number of samples to acquire times 2 */
   int regCount = iMem++;       /* Number of rows in the table */
   int regCount2 = iMem++;      /* regCount*2 */
+  int once = 1;                /* One-time initialization */
 #endif
   int regCol = iMem++;         /* Content of a column in analyzed table */
   int regRec = iMem++;         /* Register holding completed record */
   int regTemp = iMem++;        /* Temporary use register */
   int regRowid = iMem++;       /* Rowid for the inserted record */
-  int once = 1;                /* One-time initialization */
 
 
   v = sqlite3GetVdbe(pParse);
index 3e48a42239cd85643cc2bd5390d2b68053deada3..2aecef274b8ed0c4370d6e7ac1d95d9d23043bee 100644 (file)
@@ -73,25 +73,25 @@ do_test analyze2-1.1 {
     ANALYZE;
     SELECT tbl, idx, sampleno, sample FROM sqlite_stat2;
   }
-} [list t1 sqlite_autoindex_t1_1 0 49  \
-        t1 sqlite_autoindex_t1_1 1 149 \
-        t1 sqlite_autoindex_t1_1 2 249 \
-        t1 sqlite_autoindex_t1_1 3 349 \
-        t1 sqlite_autoindex_t1_1 4 449 \
-        t1 sqlite_autoindex_t1_1 5 549 \
-        t1 sqlite_autoindex_t1_1 6 649 \
-        t1 sqlite_autoindex_t1_1 7 749 \
-        t1 sqlite_autoindex_t1_1 8 849 \
-        t1 sqlite_autoindex_t1_1 9 949 \
+} [list t1 sqlite_autoindex_t1_1 0 50  \
+        t1 sqlite_autoindex_t1_1 1 150 \
+        t1 sqlite_autoindex_t1_1 2 250 \
+        t1 sqlite_autoindex_t1_1 3 350 \
+        t1 sqlite_autoindex_t1_1 4 450 \
+        t1 sqlite_autoindex_t1_1 5 550 \
+        t1 sqlite_autoindex_t1_1 6 650 \
+        t1 sqlite_autoindex_t1_1 7 750 \
+        t1 sqlite_autoindex_t1_1 8 850 \
+        t1 sqlite_autoindex_t1_1 9 950 \
 ]
 
 do_test analyze2-1.2 {
   execsql {
-    DELETE FROM t1 WHERE x>9;
+    DELETE FROM t1 WHERE x>20;
     ANALYZE;
     SELECT tbl, idx, group_concat(sample, ' ') FROM sqlite_stat2;
   }
-} {t1 sqlite_autoindex_t1_1 {0 1 2 3 4 5 6 7 8 9}}
+} {t1 sqlite_autoindex_t1_1 {1 3 5 7 9 11 13 15 17 19}}
 do_test analyze2-1.3 {
   execsql {
     DELETE FROM t1 WHERE x>8;
@@ -189,7 +189,7 @@ do_test analyze2-3.1 {
     WHERE idx = 't1_x' 
     GROUP BY tbl,idx
   }
-} {t1 t1_x {99 299 499 699 899 ajj cjj ejj gjj ijj}}
+} {t1 t1_x {100 300 500 700 900 baa daa faa haa jaa}}
 do_test analyze2-3.2 {
   execsql { 
     SELECT tbl,idx,group_concat(sample,' ') 
@@ -197,12 +197,12 @@ do_test analyze2-3.2 {
     WHERE idx = 't1_y' 
     GROUP BY tbl,idx
   }
-} {t1 t1_y {99 299 499 699 899 ajj cjj ejj gjj ijj}}
+} {t1 t1_y {100 300 500 700 900 baa daa faa haa jaa}}
 
 do_eqp_test 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)}
+  0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>? AND y<?) (~25 rows)}
 }
 do_eqp_test 3.4 {
   SELECT * FROM t1 WHERE x BETWEEN 100 AND 400 AND y BETWEEN 'a' AND 'h'
@@ -212,12 +212,12 @@ do_eqp_test 3.4 {
 do_eqp_test 3.5 {
   SELECT * FROM t1 WHERE x<'a' AND y>'h'
 } {
-  0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~66 rows)}
+  0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~133 rows)}
 }
 do_eqp_test 3.6 {
   SELECT * FROM t1 WHERE x<444 AND y>'h'
 } {
-  0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~66 rows)}
+  0 0 0 {SEARCH TABLE t1 USING INDEX t1_y (y>?) (~133 rows)}
 }
 do_eqp_test 3.7 {
   SELECT * FROM t1 WHERE x<221 AND y>'g'
@@ -249,7 +249,7 @@ do_test analyze2-4.2 {
     GROUP BY tbl,idx;
     PRAGMA automatic_index=ON;
   }
-} {t3 t3a {AfA bEj CEj dEj EEj fEj GEj hEj IEj jEj}}
+} {t3 t3a {AfA bfA CfA dfA EfA ffA GfA hfA IfA jfA}}
 do_test analyze2-4.3 {
   execsql { 
     SELECT tbl,idx,group_concat(sample,' ') 
@@ -257,7 +257,7 @@ do_test analyze2-4.3 {
     WHERE idx = 't3b' 
     GROUP BY tbl,idx
   }
-} {t3 t3b {AbA CIj EIj GIj IIj bIj dIj fIj hIj jIj}}
+} {t3 t3b {AbA CbA EbA GbA IbA bbA dbA fbA hbA jbA}}
 
 do_eqp_test 4.4 {
   SELECT * FROM t3 WHERE a > 'A' AND a < 'C' AND b > 'A' AND b < 'C'
@@ -297,7 +297,7 @@ ifcapable utf16 {
       WHERE tbl = 't4' 
       GROUP BY tbl,idx
     }
-  } {t4 t4x {afa bej cej dej eej fej gej hej iej jej}}
+  } {t4 t4x {afa bfa cfa dfa efa ffa gfa hfa ifa jfa}}
   do_eqp_test 5.3 {
     SELECT * FROM t4 WHERE x>'ccc'
   } {0 0 0 {SEARCH TABLE t4 USING COVERING INDEX t4x (x>?) (~800 rows)}}
index bad2a8285aef9cac3dc1040ad175ab3282702eea..844f7fda0abffe6b783f54c6a2953a7fab87b0bb 100644 (file)
@@ -88,3 +88,76 @@ do_test analyze8-2.1 {
     SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1x' ORDER BY sampleno;
   }
 } {0 200 0 200 0 200 10 1 70 1 130 1 190 1 999 200 999 200 999 200}
+
+do_test analyze8-3.0 {
+  execsql {
+    BEGIN;
+    DROP TABLE t1;
+    CREATE TABLE t1(a,b);
+    CREATE INDEX t1all ON t1(a,b);
+    INSERT INTO t1 VALUES(0,1);
+    INSERT INTO t1 VALUES(0,2);
+    INSERT INTO t1 VALUES(0,3);
+    INSERT INTO t1 VALUES(1,4);
+    INSERT INTO t1 SELECT a+2, b+4 FROM t1;
+    INSERT INTO t1 SELECT a+4, b+8 FROM t1;
+    INSERT INTO t1 SELECT a+8, b+16 FROM t1;
+    COMMIT;
+    ANALYZE;
+    SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1all' ORDER BY sampleno;
+  }
+} {0 3 2 3 4 3 5 1 6 3 8 3 10 3 12 3 13 1 14 3}
+do_test analyze8-3.1 {
+  execsql {
+    DELETE FROM t1;
+    INSERT INTO t1 VALUES(1,1);
+    INSERT INTO t1 VALUES(2,2);
+    INSERT INTO t1 SELECT a+2, b+2 FROM t1;
+    INSERT INTO t1 SELECT a+4, b+4 FROM t1;
+    INSERT INTO t1 SELECT a+8, b+8 FROM t1;
+    INSERT INTO t1 SELECT a+16, b+16 FROM t1;
+    DELETE FROM t1 WHERE a>21;
+    ANALYZE;
+    SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1all' ORDER BY sampleno;
+  }
+} {2 1 4 1 6 1 8 1 10 1 12 1 14 1 16 1 18 1 20 1}
+do_test analyze8-3.2 {
+  execsql {
+    UPDATE t1 SET a=123;
+    ANALYZE;
+    SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1all' ORDER BY sampleno;
+  }
+} {123 21 123 21 123 21 123 21 123 21 123 21 123 21 123 21 123 21 123 21}
+do_test analyze8-3.3 {
+  execsql {
+    DELETE FROM t1 WHERE b=1 OR b=2;
+    ANALYZE;
+    SELECT count(*) FROM t1;
+    SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1all' ORDER BY sampleno;
+  }
+} {19}
+do_test analyze8-3.4 {
+  execsql {
+    UPDATE t1 SET a=b;
+    INSERT INTO t1 VALUES(1,1);
+    INSERT INTO t1 VALUES(2,2);
+    INSERT INTO t1 SELECT a, b FROM t1;
+    ANALYZE;
+    SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1all' ORDER BY sampleno;
+  }
+} {2 2 4 2 6 2 8 2 10 2 12 2 14 2 16 2 18 2 20 2}
+do_test analyze8-3.5 {
+  execsql {
+    UPDATE t1 SET a=1 WHERE b<20;
+    ANALYZE;
+    SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1all' ORDER BY sampleno;
+  }
+} {1 38 1 38 1 38 1 38 1 38 1 38 1 38 1 38 1 38 20 2}
+do_test analyze8-3.6 {
+  execsql {
+    UPDATE t1 SET a=b;
+    UPDATE t1 SET a=20 WHERE b>2;
+    ANALYZE;
+    SELECT sample, cnt FROM sqlite_stat2 WHERE idx='t1all' ORDER BY sampleno;
+  }
+} {2 2 20 38 20 38 20 38 20 38 20 38 20 38 20 38 20 38 20 38}
index 6e7455b3a3b6ded9e4a9ee62d738ec4ef45bdcd5..043cecf8a30c6f57d95d1e7535173104f0f2b950 100644 (file)
@@ -35,9 +35,19 @@ do_test tkt-cbd05-1.1 {
     INSERT INTO t1 VALUES (NULL, 'G');
     INSERT INTO t1 VALUES (NULL, 'H');
     INSERT INTO t1 VALUES (NULL, 'I');
+    INSERT INTO t1 VALUES (NULL, 'J');
+    INSERT INTO t1 VALUES (NULL, 'K');
+    INSERT INTO t1 VALUES (NULL, 'L');
+    INSERT INTO t1 VALUES (NULL, 'M');
+    INSERT INTO t1 VALUES (NULL, 'N');
+    INSERT INTO t1 VALUES (NULL, 'O');
+    INSERT INTO t1 VALUES (NULL, 'P');
+    INSERT INTO t1 VALUES (NULL, 'Q');
+    INSERT INTO t1 VALUES (NULL, 'R');
+    INSERT INTO t1 VALUES (NULL, 'S');
     SELECT count(*) FROM t1;
   }
-} {10}
+} {20}
 do_test tkt-cbd05-1.2 {
   db eval {
     ANALYZE;
@@ -50,7 +60,7 @@ do_test tkt-cbd05-1.3 {
     WHERE idx = 't1_x' 
     GROUP BY tbl,idx
   }
-} {t1 t1_x { A B C D E F G H I}}
+} {t1 t1_x {A C E G I K M O Q S}}
 
 do_test tkt-cbd05-2.1 {
   db eval {
@@ -67,9 +77,19 @@ do_test tkt-cbd05-2.1 {
     INSERT INTO t1 VALUES(NULL, X'47');
     INSERT INTO t1 VALUES(NULL, X'48');
     INSERT INTO t1 VALUES(NULL, X'49');
+    INSERT INTO t1 VALUES(NULL, X'4A');
+    INSERT INTO t1 VALUES(NULL, X'4B');
+    INSERT INTO t1 VALUES(NULL, X'4C');
+    INSERT INTO t1 VALUES(NULL, X'4D');
+    INSERT INTO t1 VALUES(NULL, X'4E');
+    INSERT INTO t1 VALUES(NULL, X'4F');
+    INSERT INTO t1 VALUES(NULL, X'50');
+    INSERT INTO t1 VALUES(NULL, X'51');
+    INSERT INTO t1 VALUES(NULL, X'52');
+    INSERT INTO t1 VALUES(NULL, X'53');
     SELECT count(*) FROM t1;
   }
-} {10}
+} {20}
 do_test tkt-cbd05-2.2 {
   db eval {
     ANALYZE;
@@ -82,6 +102,6 @@ do_test tkt-cbd05-2.3 {
     WHERE idx = 't1_x' 
     GROUP BY tbl,idx
   }
-} {t1 t1_x { A B C D E F G H I}}
+} {t1 t1_x {A C E G I K M O Q S}}
 
 finish_test