| Index: third_party/sqlite/src/test/view.test
|
| diff --git a/third_party/sqlite/src/test/view.test b/third_party/sqlite/src/test/view.test
|
| index a87d2770a06e4c567c03830a1319ff60384a9268..3ba6c0b4653e4e8d9075a358ee7dd5e321586d4d 100644
|
| --- a/third_party/sqlite/src/test/view.test
|
| +++ b/third_party/sqlite/src/test/view.test
|
| @@ -458,7 +458,7 @@ do_test view-12.1 {
|
|
|
| ifcapable attach {
|
| do_test view-13.1 {
|
| - file delete -force test2.db
|
| + forcedelete test2.db
|
| catchsql {
|
| ATTACH 'test2.db' AS two;
|
| CREATE TABLE two.t2(x,y);
|
| @@ -576,4 +576,52 @@ do_test view-20.1 {
|
| }
|
| } {}
|
|
|
| +# Ticket [d58ccbb3f1b]: Prevent Table.nRef overflow.
|
| +db close
|
| +sqlite3 db :memory:
|
| +do_test view-21.1 {
|
| + catchsql {
|
| + CREATE TABLE t1(x);
|
| + INSERT INTO t1 VALUES(5);
|
| + CREATE VIEW v1 AS SELECT x*2 FROM t1;
|
| + CREATE VIEW v2 AS SELECT * FROM v1 UNION SELECT * FROM v1;
|
| + CREATE VIEW v4 AS SELECT * FROM v2 UNION SELECT * FROM v2;
|
| + CREATE VIEW v8 AS SELECT * FROM v4 UNION SELECT * FROM v4;
|
| + CREATE VIEW v16 AS SELECT * FROM v8 UNION SELECT * FROM v8;
|
| + CREATE VIEW v32 AS SELECT * FROM v16 UNION SELECT * FROM v16;
|
| + CREATE VIEW v64 AS SELECT * FROM v32 UNION SELECT * FROM v32;
|
| + CREATE VIEW v128 AS SELECT * FROM v64 UNION SELECT * FROM v64;
|
| + CREATE VIEW v256 AS SELECT * FROM v128 UNION SELECT * FROM v128;
|
| + CREATE VIEW v512 AS SELECT * FROM v256 UNION SELECT * FROM v256;
|
| + CREATE VIEW v1024 AS SELECT * FROM v512 UNION SELECT * FROM v512;
|
| + CREATE VIEW v2048 AS SELECT * FROM v1024 UNION SELECT * FROM v1024;
|
| + CREATE VIEW v4096 AS SELECT * FROM v2048 UNION SELECT * FROM v2048;
|
| + CREATE VIEW v8192 AS SELECT * FROM v4096 UNION SELECT * FROM v4096;
|
| + CREATE VIEW v16384 AS SELECT * FROM v8192 UNION SELECT * FROM v8192;
|
| + CREATE VIEW v32768 AS SELECT * FROM v16384 UNION SELECT * FROM v16384;
|
| + CREATE VIEW vx AS SELECT * FROM v32768 UNION SELECT * FROM v32768;
|
| + }
|
| +} {1 {too many references to "v1": max 65535}}
|
| +ifcapable progress {
|
| + do_test view-21.2 {
|
| + db progress 1000 {expr 1}
|
| + catchsql {
|
| + SELECT * FROM v32768;
|
| + }
|
| + } {1 interrupted}
|
| +}
|
| +
|
| +db close
|
| +sqlite3 db :memory:
|
| +do_execsql_test view-22.1 {
|
| + CREATE VIEW x1 AS SELECT 123 AS '', 234 AS '', 345 AS '';
|
| + SELECT * FROM x1;
|
| +} {123 234 345}
|
| +do_test view-22.2 {
|
| + unset -nocomplain x
|
| + db eval {SELECT * FROM x1} x break
|
| + lsort [array names x]
|
| +} {{} * :1 :2}
|
| +
|
| +
|
| finish_test
|
|
|