Home | History | Annotate | Download | only in test
      1 # 2009 December 8
      2 #
      3 # The author disclaims copyright to this source code.  In place of
      4 # 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 # This file implements regression tests for SQLite library.
     12 #
     13 # Verify that we can create zero-length tables.
     14 #
     15 
     16 set testdir [file dirname $argv0]
     17 source $testdir/tester.tcl
     18 
     19 do_test tkt-78e04-1.0 {
     20   execsql {
     21     CREATE TABLE ""("" UNIQUE);
     22     CREATE TABLE t2(x);
     23     INSERT INTO "" VALUES(1);
     24     INSERT INTO t2 VALUES(2);
     25     SELECT * FROM "", t2;
     26   }
     27 } {1 2}
     28 do_test tkt-78e04-1.1 {
     29   catchsql {
     30     INSERT INTO "" VALUES(1);
     31   }
     32 } {1 {column  is not unique}}
     33 do_test tkt-78e04-1.2 {
     34   execsql {
     35     PRAGMA table_info("");
     36   }
     37 } {0 {} {} 0 {} 0}
     38 do_test tkt-78e04-1.3 {
     39   execsql {
     40     CREATE INDEX i1 ON ""("" COLLATE nocase);
     41   }
     42 } {}
     43 do_test tkt-78e04-1.4 {
     44   execsql {
     45     EXPLAIN QUERY PLAN SELECT * FROM "" WHERE "" LIKE 'abc%';
     46   }
     47 } {0 0 0 {SCAN TABLE  (~500000 rows)}}
     48 do_test tkt-78e04-1.5 {
     49   execsql {
     50     DROP TABLE "";
     51     SELECT name FROM sqlite_master;
     52   }
     53 } {t2}
     54 
     55 do_test tkt-78e04-2.1 {
     56   execsql {
     57     CREATE INDEX "" ON t2(x);
     58     EXPLAIN QUERY PLAN SELECT * FROM t2 WHERE x=5;
     59   }
     60 } {0 0 0 {SEARCH TABLE t2 USING COVERING INDEX  (x=?) (~10 rows)}}
     61 do_test tkt-78e04-2.2 {
     62   execsql {
     63     DROP INDEX "";
     64     EXPLAIN QUERY PLAN SELECT * FROM t2 WHERE x=2;
     65   }
     66 } {0 0 0 {SCAN TABLE t2 (~100000 rows)}}
     67 
     68 finish_test
     69