1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-24 22:22:08 +03:00

Prevent an infinite loop when deleting a table that has a TEMP trigger. (CVS 984)

FossilOrigin-Name: c8c823b068916711857fa67db10fb479999b55c2
This commit is contained in:
drh
2003-05-17 19:04:03 +00:00
parent 24f1eb74c8
commit 79a519c047
7 changed files with 90 additions and 35 deletions

View File

@ -30,13 +30,20 @@
set testdir [file dirname $argv0]
source $testdir/tester.tcl
do_test trigger1-1.1 {
do_test trigger1-1.1.2 {
catchsql {
CREATE TRIGGER trig UPDATE ON no_such_table BEGIN
SELECT * from sqlite_master;
END;
}
} {1 {no such table: no_such_table}}
do_test trigger1-1.1.2 {
catchsql {
CREATE TEMP TRIGGER trig UPDATE ON no_such_table BEGIN
SELECT * from sqlite_master;
END;
}
} {1 {no such table: no_such_table}}
execsql {
CREATE TABLE t1(a);
@ -267,4 +274,38 @@ do_test trigger-3.9 {
}
} {1 2 3 4 5 6 3 4}
do_test trigger-4.1 {
execsql {
CREATE TEMP TRIGGER r1 BEFORE INSERT ON t1 BEGIN
INSERT INTO t2 VALUES(NEW.a,NEW.b);
END;
INSERT INTO t1 VALUES(7,8);
SELECT * FROM t2;
}
} {3 4 7 8}
do_test trigger-4.2 {
sqlite db2 test.db
execsql {
INSERT INTO t1 VALUES(9,10);
} db2;
db2 close
execsql {
SELECT * FROM t2;
}
} {3 4 7 8}
do_test trigger-4.3 {
execsql {
DROP TABLE t1;
SELECT * FROM t2;
};
} {3 4 7 8}
do_test trigger-4.4 {
db close
sqlite db test.db
execsql {
SELECT * FROM t2;
};
} {3 4 7 8}
finish_test