Annotation of embedaddon/sqlite3/test/index4.test, revision 1.1.1.1

1.1       misho       1: # 2011 July 9
                      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.  The
                     12: # focus of this file is testing the CREATE INDEX statement.
                     13: #
                     14: 
                     15: set testdir [file dirname $argv0]
                     16: source $testdir/tester.tcl
                     17: 
                     18: set testprefix index4
                     19: 
                     20: do_execsql_test 1.1 {
                     21:   BEGIN;
                     22:     CREATE TABLE t1(x);
                     23:     INSERT INTO t1 VALUES(randomblob(102));
                     24:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --     2
                     25:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --     4
                     26:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --     8
                     27:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --    16
                     28:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --    32
                     29:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --    64
                     30:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --   128
                     31:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --   256
                     32:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --   512
                     33:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --  1024
                     34:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --  2048
                     35:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --  4096
                     36:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     --  8192
                     37:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     -- 16384
                     38:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     -- 32768
                     39:     INSERT INTO t1 SELECT randomblob(102) FROM t1;     -- 65536
                     40:   COMMIT;
                     41: }
                     42: 
                     43: do_execsql_test 1.2 {
                     44:   CREATE INDEX i1 ON t1(x);
                     45: }
                     46: do_execsql_test 1.3 {
                     47:   PRAGMA integrity_check 
                     48: } {ok}
                     49: 
                     50: # The same test again - this time with limited memory.
                     51: #
                     52: ifcapable memorymanage {
                     53:   set soft_limit [sqlite3_soft_heap_limit 50000]
                     54: 
                     55:   db close
                     56:   sqlite3 db test.db
                     57: 
                     58:   do_execsql_test 1.4 {
                     59:     PRAGMA cache_size = 10;
                     60:     CREATE INDEX i2 ON t1(x);
                     61:   }
                     62:   do_execsql_test 1.5 {
                     63:     PRAGMA integrity_check 
                     64:   } {ok}
                     65: 
                     66:   sqlite3_soft_heap_limit $soft_limit
                     67: }
                     68: 
                     69: 
                     70: do_execsql_test 1.6 {
                     71:   BEGIN;
                     72:     DROP TABLE t1;
                     73:     CREATE TABLE t1(x);
                     74:     INSERT INTO t1 VALUES('a');
                     75:     INSERT INTO t1 VALUES('b');
                     76:     INSERT INTO t1 VALUES('c');
                     77:     INSERT INTO t1 VALUES('d');
                     78:     INSERT INTO t1 VALUES('e');
                     79:     INSERT INTO t1 VALUES('f');
                     80:     INSERT INTO t1 VALUES('g');
                     81:     INSERT INTO t1 VALUES(NULL);
                     82:     INSERT INTO t1 SELECT randomblob(1202) FROM t1;     --    16
                     83:     INSERT INTO t1 SELECT randomblob(2202) FROM t1;     --    32
                     84:     INSERT INTO t1 SELECT randomblob(3202) FROM t1;     --    64
                     85:     INSERT INTO t1 SELECT randomblob(4202) FROM t1;     --   128
                     86:     INSERT INTO t1 SELECT randomblob(5202) FROM t1;     --   256
                     87:   COMMIT;
                     88:   CREATE INDEX i1 ON t1(x); 
                     89:   PRAGMA integrity_check
                     90: } {ok}
                     91: 
                     92: do_execsql_test 1.7 {
                     93:   BEGIN;
                     94:     DROP TABLE t1;
                     95:     CREATE TABLE t1(x);
                     96:     INSERT INTO t1 VALUES('a');
                     97:   COMMIT;
                     98:   CREATE INDEX i1 ON t1(x); 
                     99:   PRAGMA integrity_check
                    100: } {ok}
                    101: 
                    102: do_execsql_test 1.8 {
                    103:   BEGIN;
                    104:     DROP TABLE t1;
                    105:     CREATE TABLE t1(x);
                    106:   COMMIT;
                    107:   CREATE INDEX i1 ON t1(x); 
                    108:   PRAGMA integrity_check
                    109: } {ok}
                    110: 
                    111: do_execsql_test 2.1 {
                    112:   BEGIN;
                    113:     CREATE TABLE t2(x);
                    114:     INSERT INTO t2 VALUES(14);
                    115:     INSERT INTO t2 VALUES(35);
                    116:     INSERT INTO t2 VALUES(15);
                    117:     INSERT INTO t2 VALUES(35);
                    118:     INSERT INTO t2 VALUES(16);
                    119:   COMMIT;
                    120: }
                    121: do_catchsql_test 2.2 {
                    122:   CREATE UNIQUE INDEX i3 ON t2(x);
                    123: } {1 {indexed columns are not unique}}
                    124: 
                    125: 
                    126: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>