xref: /sqlite-3.40.0/test/delete3.test (revision 3ca84ba0)
1*3ca84ba0Sdrh# 2005 August 24
2*3ca84ba0Sdrh#
3*3ca84ba0Sdrh# The author disclaims copyright to this source code.  In place of
4*3ca84ba0Sdrh# a legal notice, here is a blessing:
5*3ca84ba0Sdrh#
6*3ca84ba0Sdrh#    May you do good and not evil.
7*3ca84ba0Sdrh#    May you find forgiveness for yourself and forgive others.
8*3ca84ba0Sdrh#    May you share freely, never taking more than you give.
9*3ca84ba0Sdrh#
10*3ca84ba0Sdrh#***********************************************************************
11*3ca84ba0Sdrh# This file implements regression tests for SQLite library.  The
12*3ca84ba0Sdrh# focus of this script is a test of the DELETE command where a
13*3ca84ba0Sdrh# large number of rows are deleted.
14*3ca84ba0Sdrh#
15*3ca84ba0Sdrh
16*3ca84ba0Sdrhset testdir [file dirname $argv0]
17*3ca84ba0Sdrhsource $testdir/tester.tcl
18*3ca84ba0Sdrh
19*3ca84ba0Sdrh# Create a table that contains a large number of rows.
20*3ca84ba0Sdrh#
21*3ca84ba0Sdrhdo_test delete3-1.1 {
22*3ca84ba0Sdrh  execsql {
23*3ca84ba0Sdrh    CREATE TABLE t1(x integer primary key);
24*3ca84ba0Sdrh    BEGIN;
25*3ca84ba0Sdrh    INSERT INTO t1 VALUES(1);
26*3ca84ba0Sdrh    INSERT INTO t1 VALUES(2);
27*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+2 FROM t1;
28*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+4 FROM t1;
29*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+8 FROM t1;
30*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+16 FROM t1;
31*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+32 FROM t1;
32*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+64 FROM t1;
33*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+128 FROM t1;
34*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+256 FROM t1;
35*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+512 FROM t1;
36*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+1024 FROM t1;
37*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+2048 FROM t1;
38*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+4096 FROM t1;
39*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+8192 FROM t1;
40*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+16384 FROM t1;
41*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+32768 FROM t1;
42*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+65536 FROM t1;
43*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+131072 FROM t1;
44*3ca84ba0Sdrh    INSERT INTO t1 SELECT x+262144 FROM t1;
45*3ca84ba0Sdrh    COMMIT;
46*3ca84ba0Sdrh    SELECT count(*) FROM t1;
47*3ca84ba0Sdrh  }
48*3ca84ba0Sdrh} {524288}
49*3ca84ba0Sdrhdo_test delete3-1.2 {
50*3ca84ba0Sdrh  execsql {
51*3ca84ba0Sdrh    DELETE FROM t1 WHERE x%2==0;
52*3ca84ba0Sdrh    SELECT count(*) FROM t1;
53*3ca84ba0Sdrh  }
54*3ca84ba0Sdrh} {262144}
55*3ca84ba0Sdrhintegrity_check delete3-1.3
56*3ca84ba0Sdrh
57*3ca84ba0Sdrhfinish_test
58