/ Check-in [c01f1326]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Added tests for sqlite3_changes after a DELETE. (CVS 1798)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: c01f13267f592dc2678e78ea45dadddcdc154f82
User & Date: drh 2004-07-15 20:08:39
Context
2004-07-17
21:44
Use the F_FULLFSYNC fctrl if it is available. Record the name of files that are opened in the OsFile structure. (CVS 1799) check-in: 1d30d0dd user: drh tags: trunk
2004-07-15
20:08
Added tests for sqlite3_changes after a DELETE. (CVS 1798) check-in: c01f1326 user: drh tags: trunk
14:15
Implement the experimental sqlite3_bind_parameter_count() API in support of DBD::SQLite. Also fix the sqlite3.def export list. (CVS 1797) check-in: c44943e6 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to test/delete.test.

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
..
50
51
52
53
54
55
56
57
58
59



60
61
62
63
64
65
66
...
121
122
123
124
125
126
127
128
129



130
131
132
133
134
135
136
...
168
169
170
171
172
173
174
175
176



177
178
179
180
181
182
183
#    May you find forgiveness for yourself and forgive others.
#    May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library.  The
# focus of this file is testing the DELETE FROM statement.
#
# $Id: delete.test,v 1.16 2004/06/19 00:16:31 drh Exp $

set testdir [file dirname $argv0]
source $testdir/tester.tcl

# Try to delete from a non-existant table.
#
do_test delete-1.1 {
................................................................................
  execsql {CREATE INDEX index1 ON table1(f1)}
  execsql {PRAGMA count_changes=on}
  execsql {DELETE FROM 'table1' WHERE f1=3}
} {0}
do_test delete-3.1.5 {
  execsql {SELECT * FROM table1 ORDER BY f1}
} {1 2 2 4 4 16}
do_test delete-3.1.6 {
  execsql {DELETE FROM table1 WHERE f1=2}
} {1}



do_test delete-3.1.7 {
  execsql {SELECT * FROM table1 ORDER BY f1}
} {1 2 4 16}
integrity_check delete-3.2


# Semantic errors in the WHERE clause
................................................................................
} {200}
do_test delete-5.3 {
  for {set i 1} {$i<=200} {incr i 4} {
     execsql "DELETE FROM table1 WHERE f1==$i"
  }
  execsql {SELECT count(*) FROM table1}
} {150}
do_test delete-5.4 {
  execsql "DELETE FROM table1 WHERE f1>50"



  execsql {SELECT count(*) FROM table1}
} {37}
do_test delete-5.5 {
  for {set i 1} {$i<=70} {incr i 3} {
     execsql "DELETE FROM table1 WHERE f1==$i"
  }
  execsql {SELECT f1 FROM table1 ORDER BY f1}
................................................................................
} {3000}
do_test delete-6.3 {
  execsql {SELECT f1 FROM table1 WHERE f1<10 ORDER BY f1}
} {1 2 3 4 5 6 7 8 9}
do_test delete-6.4 {
  execsql {SELECT f1 FROM table2 WHERE f1<10 ORDER BY f1}
} {1 2 3 4 5 6 7 8 9}
do_test delete-6.5 {
  execsql {DELETE FROM table1 WHERE f1>7}



  execsql {SELECT f1 FROM table1 ORDER BY f1}
} {1 2 3 4 5 6 7}
do_test delete-6.6 {
  execsql {DELETE FROM table2 WHERE f1>7}
  execsql {SELECT f1 FROM table2 ORDER BY f1}
} {1 2 3 4 5 6 7}
do_test delete-6.7 {







|







 







|


>
>
>







 







|

>
>
>







 







|

>
>
>







7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
..
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
...
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
...
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#    May you find forgiveness for yourself and forgive others.
#    May you share freely, never taking more than you give.
#
#***********************************************************************
# This file implements regression tests for SQLite library.  The
# focus of this file is testing the DELETE FROM statement.
#
# $Id: delete.test,v 1.17 2004/07/15 20:08:39 drh Exp $

set testdir [file dirname $argv0]
source $testdir/tester.tcl

# Try to delete from a non-existant table.
#
do_test delete-1.1 {
................................................................................
  execsql {CREATE INDEX index1 ON table1(f1)}
  execsql {PRAGMA count_changes=on}
  execsql {DELETE FROM 'table1' WHERE f1=3}
} {0}
do_test delete-3.1.5 {
  execsql {SELECT * FROM table1 ORDER BY f1}
} {1 2 2 4 4 16}
do_test delete-3.1.6.1 {
  execsql {DELETE FROM table1 WHERE f1=2}
} {1}
do_test delete-3.1.6.2 {
  db changes
} 1
do_test delete-3.1.7 {
  execsql {SELECT * FROM table1 ORDER BY f1}
} {1 2 4 16}
integrity_check delete-3.2


# Semantic errors in the WHERE clause
................................................................................
} {200}
do_test delete-5.3 {
  for {set i 1} {$i<=200} {incr i 4} {
     execsql "DELETE FROM table1 WHERE f1==$i"
  }
  execsql {SELECT count(*) FROM table1}
} {150}
do_test delete-5.4.1 {
  execsql "DELETE FROM table1 WHERE f1>50"
  db changes
} [db one {SELECT count(*) FROM table1 WHERE f1>50}]
do_test delete-5.4.2 {
  execsql {SELECT count(*) FROM table1}
} {37}
do_test delete-5.5 {
  for {set i 1} {$i<=70} {incr i 3} {
     execsql "DELETE FROM table1 WHERE f1==$i"
  }
  execsql {SELECT f1 FROM table1 ORDER BY f1}
................................................................................
} {3000}
do_test delete-6.3 {
  execsql {SELECT f1 FROM table1 WHERE f1<10 ORDER BY f1}
} {1 2 3 4 5 6 7 8 9}
do_test delete-6.4 {
  execsql {SELECT f1 FROM table2 WHERE f1<10 ORDER BY f1}
} {1 2 3 4 5 6 7 8 9}
do_test delete-6.5.1 {
  execsql {DELETE FROM table1 WHERE f1>7}
  db changes
} {2993}
do_test delete-6.5.2 {
  execsql {SELECT f1 FROM table1 ORDER BY f1}
} {1 2 3 4 5 6 7}
do_test delete-6.6 {
  execsql {DELETE FROM table2 WHERE f1>7}
  execsql {SELECT f1 FROM table2 ORDER BY f1}
} {1 2 3 4 5 6 7}
do_test delete-6.7 {