CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
tkt-cbd054fa6b.test108 linesDownload Raw Back to test
1# 2010 March 252#3# The author disclaims copyright to this source code.  In place of4# a legal notice, here is a blessing:5#6#    May you do good and not evil.7#    May you find forgiveness for yourself and forgive others.8#    May you share freely, never taking more than you give.9#10#***********************************************************************11#12# This file implements tests to verify that ticket [cbd054fa6b] has been13# fixed.  14#15 16set testdir [file dirname $argv0]17source $testdir/tester.tcl18 19ifcapable !stat4 {20  finish_test21  return22}23 24proc s {blob} {25  set ret ""26  binary scan $blob c* bytes27  foreach b $bytes {28    set t [binary format c $b]29    if {[string is print $t]} {30      append ret $t31    } else {32      append ret .33    }34  }35  return $ret36}37db function s s38 39do_test tkt-cbd05-1.1 {40  db eval {41    CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT UNIQUE NOT NULL);42    CREATE INDEX t1_x ON t1(b);43    INSERT INTO t1 VALUES (NULL, '');44    INSERT INTO t1 VALUES (NULL, 'A');45    INSERT INTO t1 VALUES (NULL, 'B');46    INSERT INTO t1 VALUES (NULL, 'C');47    INSERT INTO t1 VALUES (NULL, 'D');48    INSERT INTO t1 VALUES (NULL, 'E');49    INSERT INTO t1 VALUES (NULL, 'F');50    INSERT INTO t1 VALUES (NULL, 'G');51    INSERT INTO t1 VALUES (NULL, 'H');52    INSERT INTO t1 VALUES (NULL, 'I');53    SELECT count(*) FROM t1;54  }55} {10}56do_test tkt-cbd05-1.2 {57  db eval { ANALYZE; }58  db eval {59    PRAGMA writable_schema = 1;60    CREATE VIEW vvv AS 61    SELECT tbl,idx,neq,nlt,ndlt,test_extract(sample,0) AS sample62    FROM sqlite_stat4;63    PRAGMA writable_schema = 0;64  }65} {}66do_test tkt-cbd05-1.3 {67  execsql { 68    SELECT tbl,idx,string_agg(s(sample),' ') 69    FROM vvv 70    WHERE idx = 't1_x' 71    GROUP BY tbl,idx72  }73} {t1 t1_x { A B C D E F G H I}}74 75do_test tkt-cbd05-2.1 {76  db eval {77    DROP TABLE t1;78    CREATE TABLE t1(a INTEGER PRIMARY KEY, b BLOB UNIQUE NOT NULL);79    CREATE INDEX t1_x ON t1(b);80    INSERT INTO t1 VALUES(NULL, X'');81    INSERT INTO t1 VALUES(NULL, X'41');82    INSERT INTO t1 VALUES(NULL, X'42');83    INSERT INTO t1 VALUES(NULL, X'43');84    INSERT INTO t1 VALUES(NULL, X'44');85    INSERT INTO t1 VALUES(NULL, X'45');86    INSERT INTO t1 VALUES(NULL, X'46');87    INSERT INTO t1 VALUES(NULL, X'47');88    INSERT INTO t1 VALUES(NULL, X'48');89    INSERT INTO t1 VALUES(NULL, X'49');90    SELECT count(*) FROM t1;91  }92} {10}93do_test tkt-cbd05-2.2 {94  db eval {95    ANALYZE;96  }97} {}98do_test tkt-cbd05-2.3 {99  execsql { 100    SELECT tbl,idx,group_concat(s(sample),' ') 101    FROM vvv 102    WHERE idx = 't1_x' 103    GROUP BY tbl,idx104  }105} {t1 t1_x { A B C D E F G H I}}106 107finish_test108