| 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 | 
|  |