123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- # 2010 March 25
- #
- # The author disclaims copyright to this source code. In place of
- # a legal notice, here is a blessing:
- #
- # May you do good and not evil.
- # May you find forgiveness for yourself and forgive others.
- # May you share freely, never taking more than you give.
- #
- #***********************************************************************
- #
- # This file implements tests to verify that ticket [cbd054fa6b] has been
- # fixed.
- #
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- ifcapable !stat4&&!stat3 {
- finish_test
- return
- }
- proc s {blob} {
- set ret ""
- binary scan $blob c* bytes
- foreach b $bytes {
- set t [binary format c $b]
- if {[string is print $t]} {
- append ret $t
- } else {
- append ret .
- }
- }
- return $ret
- }
- db function s s
- do_test tkt-cbd05-1.1 {
- db eval {
- CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT UNIQUE NOT NULL);
- CREATE INDEX t1_x ON t1(b);
- INSERT INTO t1 VALUES (NULL, '');
- INSERT INTO t1 VALUES (NULL, 'A');
- INSERT INTO t1 VALUES (NULL, 'B');
- INSERT INTO t1 VALUES (NULL, 'C');
- INSERT INTO t1 VALUES (NULL, 'D');
- INSERT INTO t1 VALUES (NULL, 'E');
- INSERT INTO t1 VALUES (NULL, 'F');
- INSERT INTO t1 VALUES (NULL, 'G');
- INSERT INTO t1 VALUES (NULL, 'H');
- INSERT INTO t1 VALUES (NULL, 'I');
- SELECT count(*) FROM t1;
- }
- } {10}
- do_test tkt-cbd05-1.2 {
- db eval { ANALYZE; }
- ifcapable stat4 {
- db eval {
- PRAGMA writable_schema = 1;
- CREATE VIEW vvv AS
- SELECT tbl,idx,neq,nlt,ndlt,test_extract(sample,0) AS sample
- FROM sqlite_stat4;
- PRAGMA writable_schema = 0;
- }
- } else {
- db eval {
- CREATE VIEW vvv AS
- SELECT tbl,idx,neq,nlt,ndlt,sample FROM sqlite_stat3;
- }
- }
- } {}
- do_test tkt-cbd05-1.3 {
- execsql {
- SELECT tbl,idx,group_concat(s(sample),' ')
- FROM vvv
- WHERE idx = 't1_x'
- GROUP BY tbl,idx
- }
- } {t1 t1_x { A B C D E F G H I}}
- do_test tkt-cbd05-2.1 {
- db eval {
- DROP TABLE t1;
- CREATE TABLE t1(a INTEGER PRIMARY KEY, b BLOB UNIQUE NOT NULL);
- CREATE INDEX t1_x ON t1(b);
- INSERT INTO t1 VALUES(NULL, X'');
- INSERT INTO t1 VALUES(NULL, X'41');
- INSERT INTO t1 VALUES(NULL, X'42');
- INSERT INTO t1 VALUES(NULL, X'43');
- INSERT INTO t1 VALUES(NULL, X'44');
- INSERT INTO t1 VALUES(NULL, X'45');
- INSERT INTO t1 VALUES(NULL, X'46');
- INSERT INTO t1 VALUES(NULL, X'47');
- INSERT INTO t1 VALUES(NULL, X'48');
- INSERT INTO t1 VALUES(NULL, X'49');
- SELECT count(*) FROM t1;
- }
- } {10}
- do_test tkt-cbd05-2.2 {
- db eval {
- ANALYZE;
- }
- } {}
- do_test tkt-cbd05-2.3 {
- execsql {
- SELECT tbl,idx,group_concat(s(sample),' ')
- FROM vvv
- WHERE idx = 't1_x'
- GROUP BY tbl,idx
- }
- } {t1 t1_x { A B C D E F G H I}}
- finish_test
|