123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- /*
- ** This script sets up five different tasks all writing and updating
- ** the database at the same time, but each in its own table.
- */
- --task 1 build-t1
- DROP TABLE IF EXISTS t1;
- CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
- --sleep 1
- INSERT INTO t1 VALUES(1, randomblob(2000));
- INSERT INTO t1 VALUES(2, randomblob(1000));
- --sleep 1
- INSERT INTO t1 SELECT a+2, randomblob(1500) FROM t1;
- INSERT INTO t1 SELECT a+4, randomblob(1500) FROM t1;
- INSERT INTO t1 SELECT a+8, randomblob(1500) FROM t1;
- --sleep 1
- INSERT INTO t1 SELECT a+16, randomblob(1500) FROM t1;
- --sleep 1
- INSERT INTO t1 SELECT a+32, randomblob(1500) FROM t1;
- SELECT count(*) FROM t1;
- --match 64
- SELECT avg(length(b)) FROM t1;
- --match 1500.0
- --sleep 2
- UPDATE t1 SET b='x'||a||'y';
- SELECT sum(length(b)) FROM t1;
- --match 247
- SELECT a FROM t1 WHERE b='x17y';
- --match 17
- CREATE INDEX t1b ON t1(b);
- SELECT a FROM t1 WHERE b='x17y';
- --match 17
- SELECT a FROM t1 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
- --match 29 28 27 26 25
- --end
- --task 2 build-t2
- DROP TABLE IF EXISTS t2;
- CREATE TABLE t2(a INTEGER PRIMARY KEY, b);
- --sleep 1
- INSERT INTO t2 VALUES(1, randomblob(2000));
- INSERT INTO t2 VALUES(2, randomblob(1000));
- --sleep 1
- INSERT INTO t2 SELECT a+2, randomblob(1500) FROM t2;
- INSERT INTO t2 SELECT a+4, randomblob(1500) FROM t2;
- INSERT INTO t2 SELECT a+8, randomblob(1500) FROM t2;
- --sleep 1
- INSERT INTO t2 SELECT a+16, randomblob(1500) FROM t2;
- --sleep 1
- INSERT INTO t2 SELECT a+32, randomblob(1500) FROM t2;
- SELECT count(*) FROM t2;
- --match 64
- SELECT avg(length(b)) FROM t2;
- --match 1500.0
- --sleep 2
- UPDATE t2 SET b='x'||a||'y';
- SELECT sum(length(b)) FROM t2;
- --match 247
- SELECT a FROM t2 WHERE b='x17y';
- --match 17
- CREATE INDEX t2b ON t2(b);
- SELECT a FROM t2 WHERE b='x17y';
- --match 17
- SELECT a FROM t2 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
- --match 29 28 27 26 25
- --end
- --task 3 build-t3
- DROP TABLE IF EXISTS t3;
- CREATE TABLE t3(a INTEGER PRIMARY KEY, b);
- --sleep 1
- INSERT INTO t3 VALUES(1, randomblob(2000));
- INSERT INTO t3 VALUES(2, randomblob(1000));
- --sleep 1
- INSERT INTO t3 SELECT a+2, randomblob(1500) FROM t3;
- INSERT INTO t3 SELECT a+4, randomblob(1500) FROM t3;
- INSERT INTO t3 SELECT a+8, randomblob(1500) FROM t3;
- --sleep 1
- INSERT INTO t3 SELECT a+16, randomblob(1500) FROM t3;
- --sleep 1
- INSERT INTO t3 SELECT a+32, randomblob(1500) FROM t3;
- SELECT count(*) FROM t3;
- --match 64
- SELECT avg(length(b)) FROM t3;
- --match 1500.0
- --sleep 2
- UPDATE t3 SET b='x'||a||'y';
- SELECT sum(length(b)) FROM t3;
- --match 247
- SELECT a FROM t3 WHERE b='x17y';
- --match 17
- CREATE INDEX t3b ON t3(b);
- SELECT a FROM t3 WHERE b='x17y';
- --match 17
- SELECT a FROM t3 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
- --match 29 28 27 26 25
- --end
- --task 4 build-t4
- DROP TABLE IF EXISTS t4;
- CREATE TABLE t4(a INTEGER PRIMARY KEY, b);
- --sleep 1
- INSERT INTO t4 VALUES(1, randomblob(2000));
- INSERT INTO t4 VALUES(2, randomblob(1000));
- --sleep 1
- INSERT INTO t4 SELECT a+2, randomblob(1500) FROM t4;
- INSERT INTO t4 SELECT a+4, randomblob(1500) FROM t4;
- INSERT INTO t4 SELECT a+8, randomblob(1500) FROM t4;
- --sleep 1
- INSERT INTO t4 SELECT a+16, randomblob(1500) FROM t4;
- --sleep 1
- INSERT INTO t4 SELECT a+32, randomblob(1500) FROM t4;
- SELECT count(*) FROM t4;
- --match 64
- SELECT avg(length(b)) FROM t4;
- --match 1500.0
- --sleep 2
- UPDATE t4 SET b='x'||a||'y';
- SELECT sum(length(b)) FROM t4;
- --match 247
- SELECT a FROM t4 WHERE b='x17y';
- --match 17
- CREATE INDEX t4b ON t4(b);
- SELECT a FROM t4 WHERE b='x17y';
- --match 17
- SELECT a FROM t4 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
- --match 29 28 27 26 25
- --end
- --task 5 build-t5
- DROP TABLE IF EXISTS t5;
- CREATE TABLE t5(a INTEGER PRIMARY KEY, b);
- --sleep 1
- INSERT INTO t5 VALUES(1, randomblob(2000));
- INSERT INTO t5 VALUES(2, randomblob(1000));
- --sleep 1
- INSERT INTO t5 SELECT a+2, randomblob(1500) FROM t5;
- INSERT INTO t5 SELECT a+4, randomblob(1500) FROM t5;
- INSERT INTO t5 SELECT a+8, randomblob(1500) FROM t5;
- --sleep 1
- INSERT INTO t5 SELECT a+16, randomblob(1500) FROM t5;
- --sleep 1
- INSERT INTO t5 SELECT a+32, randomblob(1500) FROM t5;
- SELECT count(*) FROM t5;
- --match 64
- SELECT avg(length(b)) FROM t5;
- --match 1500.0
- --sleep 2
- UPDATE t5 SET b='x'||a||'y';
- SELECT sum(length(b)) FROM t5;
- --match 247
- SELECT a FROM t5 WHERE b='x17y';
- --match 17
- CREATE INDEX t5b ON t5(b);
- SELECT a FROM t5 WHERE b='x17y';
- --match 17
- SELECT a FROM t5 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
- --match 29 28 27 26 25
- --end
- --wait all
- SELECT count(*), sum(length(b)) FROM t1;
- --match 64 247
- SELECT count(*), sum(length(b)) FROM t2;
- --match 64 247
- SELECT count(*), sum(length(b)) FROM t3;
- --match 64 247
- SELECT count(*), sum(length(b)) FROM t4;
- --match 64 247
- SELECT count(*), sum(length(b)) FROM t5;
- --match 64 247
- --task 1
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 5
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 3
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 2
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 4
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --wait all
- --task 5
- DROP INDEX t5b;
- --sleep 5
- PRAGMA integrity_check(10);
- --match ok
- CREATE INDEX t5b ON t5(b DESC);
- --end
- --task 3
- DROP INDEX t3b;
- --sleep 5
- PRAGMA integrity_check(10);
- --match ok
- CREATE INDEX t3b ON t3(b DESC);
- --end
- --task 1
- DROP INDEX t1b;
- --sleep 5
- PRAGMA integrity_check(10);
- --match ok
- CREATE INDEX t1b ON t1(b DESC);
- --end
- --task 2
- DROP INDEX t2b;
- --sleep 5
- PRAGMA integrity_check(10);
- --match ok
- CREATE INDEX t2b ON t2(b DESC);
- --end
- --task 4
- DROP INDEX t4b;
- --sleep 5
- PRAGMA integrity_check(10);
- --match ok
- CREATE INDEX t4b ON t4(b DESC);
- --end
- --wait all
- --task 1
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 5
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 3
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 2
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 4
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --wait all
- VACUUM;
- PRAGMA integrity_check(10);
- --match ok
- --task 1
- UPDATE t1 SET b=randomblob(20000);
- --sleep 5
- UPDATE t1 SET b='x'||a||'y';
- SELECT a FROM t1 WHERE b='x63y';
- --match 63
- --end
- --task 2
- UPDATE t2 SET b=randomblob(20000);
- --sleep 5
- UPDATE t2 SET b='x'||a||'y';
- SELECT a FROM t2 WHERE b='x63y';
- --match 63
- --end
- --task 3
- UPDATE t3 SET b=randomblob(20000);
- --sleep 5
- UPDATE t3 SET b='x'||a||'y';
- SELECT a FROM t3 WHERE b='x63y';
- --match 63
- --end
- --task 4
- UPDATE t4 SET b=randomblob(20000);
- --sleep 5
- UPDATE t4 SET b='x'||a||'y';
- SELECT a FROM t4 WHERE b='x63y';
- --match 63
- --end
- --task 5
- UPDATE t5 SET b=randomblob(20000);
- --sleep 5
- UPDATE t5 SET b='x'||a||'y';
- SELECT a FROM t5 WHERE b='x63y';
- --match 63
- --end
- --wait all
- --task 1
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 5
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 3
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 2
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --task 4
- SELECT t1.a FROM t1, t2
- WHERE t2.b GLOB 'x3?y' AND t1.b=('x'||(t2.a+3)||'y')
- ORDER BY t1.a LIMIT 4
- --match 33 34 35 36
- SELECT t3.a FROM t3, t4
- WHERE t4.b GLOB 'x4?y' AND t3.b=('x'||(t4.a+5)||'y')
- ORDER BY t3.a LIMIT 7
- --match 45 46 47 48 49 50 51
- --end
- --wait all
|