OLD | NEW |
| (Empty) |
1 # 2014-08-21 | |
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 contains tests for the r-tree module. | |
12 # | |
13 # This file contains test cases for the ticket | |
14 # [369d57fb8e5ccdff06f197a37147a88f9de95cda] (2014-08-21) | |
15 # | |
16 # The following SQL causes an assertion fault while running | |
17 # sqlite3_prepare() on the DELETE statement: | |
18 # | |
19 # CREATE TABLE t1(x); | |
20 # CREATE TABLE t2(y); | |
21 # CREATE VIRTUAL TABLE t3 USING rtree(a,b,c); | |
22 # CREATE TRIGGER t2del AFTER DELETE ON t2 WHEN (SELECT 1 from t1) BEGIN | |
23 # DELETE FROM t3 WHERE a=old.y; | |
24 # END; | |
25 # DELETE FROM t2 WHERE y=1; | |
26 # | |
27 | |
28 if {![info exists testdir]} { | |
29 set testdir [file join [file dirname [info script]] .. .. test] | |
30 } | |
31 source $testdir/tester.tcl | |
32 ifcapable !rtree { finish_test ; return } | |
33 | |
34 do_execsql_test rtreeF-1.1 { | |
35 CREATE TABLE t1(x); | |
36 CREATE TABLE t2(y); | |
37 CREATE VIRTUAL TABLE t3 USING rtree(a,b,c); | |
38 CREATE TRIGGER t2dwl AFTER DELETE ON t2 WHEN (SELECT 1 from t1) BEGIN | |
39 DELETE FROM t3 WHERE a=old.y; | |
40 END; | |
41 | |
42 INSERT INTO t1(x) VALUES(999); | |
43 INSERT INTO t2(y) VALUES(1),(2),(3),(4),(5); | |
44 INSERT INTO t3(a,b,c) VALUES(1,2,3),(2,3,4),(3,4,5),(4,5,6),(5,6,7); | |
45 | |
46 SELECT a FROM t3 ORDER BY a; | |
47 SELECT '|'; | |
48 SELECT y FROM t2 ORDER BY y; | |
49 } {1 2 3 4 5 | 1 2 3 4 5} | |
50 do_execsql_test rtreeF-1.2 { | |
51 DELETE FROM t2 WHERE y=3; | |
52 | |
53 SELECT a FROM t3 ORDER BY a; | |
54 SELECT '|'; | |
55 SELECT y FROM t2 ORDER BY y; | |
56 } {1 2 4 5 | 1 2 4 5} | |
57 do_execsql_test rtreeF-1.3 { | |
58 DELETE FROM t1; | |
59 DELETE FROM t2 WHERE y=5; | |
60 | |
61 SELECT a FROM t3 ORDER BY a; | |
62 SELECT '|'; | |
63 SELECT y FROM t2 ORDER BY y; | |
64 } {1 2 4 5 | 1 2 4} | |
65 do_execsql_test rtreeF-1.4 { | |
66 INSERT INTO t1 DEFAULT VALUES; | |
67 DELETE FROM t2 WHERE y=5; | |
68 | |
69 SELECT a FROM t3 ORDER BY a; | |
70 SELECT '|'; | |
71 SELECT y FROM t2 ORDER BY y; | |
72 } {1 2 4 5 | 1 2 4} | |
73 do_execsql_test rtreeF-1.5 { | |
74 DELETE FROM t2 WHERE y=2; | |
75 | |
76 SELECT a FROM t3 ORDER BY a; | |
77 SELECT '|'; | |
78 SELECT y FROM t2 ORDER BY y; | |
79 } {1 4 5 | 1 4} | |
80 | |
81 finish_test | |
OLD | NEW |