Annotation of embedaddon/sqlite3/test/index4.test, revision 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>