mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Fix a faulty assert() in walker.c that could fail when processing an ALTER TABLE statement on a schema containing invalid table references that are part of a WINDOW definition.
FossilOrigin-Name: ee076c28d8ee0f5b099cdef83ae6cea6ef5aa209ab528d7c49949dd653ce019c
This commit is contained in:
@@ -237,5 +237,40 @@ do_execsql_test 10.2 {
|
||||
) IN () OR t1.a=5}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
reset_db
|
||||
do_execsql_test 11.1 {
|
||||
CREATE TABLE t1(
|
||||
a,b,c,d,e,f,g,h,j,jj,jjb,k,aa,bb,cc,dd,ee DEFAULT 3.14,
|
||||
ff DEFAULT('hiccup'),Wg NOD NULL DEFAULT(false)
|
||||
);
|
||||
|
||||
CREATE TRIGGER b AFTER INSERT ON t1 WHEN new.a BEGIN
|
||||
SELECT a, sum() w3 FROM t1
|
||||
WINDOW b AS (ORDER BY NOT EXISTS(SELECT 1 FROM abc));
|
||||
END;
|
||||
}
|
||||
|
||||
do_catchsql_test 11.2 {
|
||||
ALTER TABLE t1 RENAME TO t1x;
|
||||
} {1 {error in trigger b: no such table: abc}}
|
||||
|
||||
do_execsql_test 11.3 {
|
||||
DROP TRIGGER b;
|
||||
CREATE TRIGGER b AFTER INSERT ON t1 WHEN new.a BEGIN
|
||||
SELECT a, sum() w3 FROM t1
|
||||
WINDOW b AS (ORDER BY NOT EXISTS(SELECT 1 FROM t1));
|
||||
END;
|
||||
} {}
|
||||
|
||||
do_execsql_test 11.4 {
|
||||
ALTER TABLE t1 RENAME TO t1x;
|
||||
SELECT sql FROM sqlite_master WHERE name = 'b';
|
||||
} {
|
||||
{CREATE TRIGGER b AFTER INSERT ON "t1x" WHEN new.a BEGIN
|
||||
SELECT a, sum() w3 FROM "t1x"
|
||||
WINDOW b AS (ORDER BY NOT EXISTS(SELECT 1 FROM "t1x"));
|
||||
END}
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user