-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
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
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
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
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
-e93c248c8470622944cf7f9e5af4f10c4e4809e3
\ No newline at end of file
+7e914aa999d9f3f7be58a4494d33a7876af56603
\ No newline at end of file
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);
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;
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,' ')
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'
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'
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,' ')
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'
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)}}
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}
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;
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 {
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;
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