| OLD | NEW |
| 1 # 2002 February 26 | 1 # 2002 February 26 |
| 2 # | 2 # |
| 3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
| 4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
| 5 # | 5 # |
| 6 # May you do good and not evil. | 6 # May you do good and not evil. |
| 7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
| 8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
| 9 # | 9 # |
| 10 #*********************************************************************** | 10 #*********************************************************************** |
| (...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 451 # Ticket #1270: Do not allow parameters in view definitions. | 451 # Ticket #1270: Do not allow parameters in view definitions. |
| 452 # | 452 # |
| 453 do_test view-12.1 { | 453 do_test view-12.1 { |
| 454 catchsql { | 454 catchsql { |
| 455 CREATE VIEW v12 AS SELECT a FROM t1 WHERE b=? | 455 CREATE VIEW v12 AS SELECT a FROM t1 WHERE b=? |
| 456 } | 456 } |
| 457 } {1 {parameters are not allowed in views}} | 457 } {1 {parameters are not allowed in views}} |
| 458 | 458 |
| 459 ifcapable attach { | 459 ifcapable attach { |
| 460 do_test view-13.1 { | 460 do_test view-13.1 { |
| 461 file delete -force test2.db | 461 forcedelete test2.db |
| 462 catchsql { | 462 catchsql { |
| 463 ATTACH 'test2.db' AS two; | 463 ATTACH 'test2.db' AS two; |
| 464 CREATE TABLE two.t2(x,y); | 464 CREATE TABLE two.t2(x,y); |
| 465 CREATE VIEW v13 AS SELECT y FROM two.t2; | 465 CREATE VIEW v13 AS SELECT y FROM two.t2; |
| 466 } | 466 } |
| 467 } {1 {view v13 cannot reference objects in database two}} | 467 } {1 {view v13 cannot reference objects in database two}} |
| 468 } | 468 } |
| 469 | 469 |
| 470 # Ticket #1658 | 470 # Ticket #1658 |
| 471 # | 471 # |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 # Ticket #3539 had this crashing (see commit [5940]). | 569 # Ticket #3539 had this crashing (see commit [5940]). |
| 570 do_test view-20.1 { | 570 do_test view-20.1 { |
| 571 execsql { | 571 execsql { |
| 572 DROP TABLE IF EXISTS t1; | 572 DROP TABLE IF EXISTS t1; |
| 573 DROP VIEW IF EXISTS v1; | 573 DROP VIEW IF EXISTS v1; |
| 574 CREATE TABLE t1(c1); | 574 CREATE TABLE t1(c1); |
| 575 CREATE VIEW v1 AS SELECT c1 FROM (SELECT t1.c1 FROM t1); | 575 CREATE VIEW v1 AS SELECT c1 FROM (SELECT t1.c1 FROM t1); |
| 576 } | 576 } |
| 577 } {} | 577 } {} |
| 578 | 578 |
| 579 # Ticket [d58ccbb3f1b]: Prevent Table.nRef overflow. |
| 580 db close |
| 581 sqlite3 db :memory: |
| 582 do_test view-21.1 { |
| 583 catchsql { |
| 584 CREATE TABLE t1(x); |
| 585 INSERT INTO t1 VALUES(5); |
| 586 CREATE VIEW v1 AS SELECT x*2 FROM t1; |
| 587 CREATE VIEW v2 AS SELECT * FROM v1 UNION SELECT * FROM v1; |
| 588 CREATE VIEW v4 AS SELECT * FROM v2 UNION SELECT * FROM v2; |
| 589 CREATE VIEW v8 AS SELECT * FROM v4 UNION SELECT * FROM v4; |
| 590 CREATE VIEW v16 AS SELECT * FROM v8 UNION SELECT * FROM v8; |
| 591 CREATE VIEW v32 AS SELECT * FROM v16 UNION SELECT * FROM v16; |
| 592 CREATE VIEW v64 AS SELECT * FROM v32 UNION SELECT * FROM v32; |
| 593 CREATE VIEW v128 AS SELECT * FROM v64 UNION SELECT * FROM v64; |
| 594 CREATE VIEW v256 AS SELECT * FROM v128 UNION SELECT * FROM v128; |
| 595 CREATE VIEW v512 AS SELECT * FROM v256 UNION SELECT * FROM v256; |
| 596 CREATE VIEW v1024 AS SELECT * FROM v512 UNION SELECT * FROM v512; |
| 597 CREATE VIEW v2048 AS SELECT * FROM v1024 UNION SELECT * FROM v1024; |
| 598 CREATE VIEW v4096 AS SELECT * FROM v2048 UNION SELECT * FROM v2048; |
| 599 CREATE VIEW v8192 AS SELECT * FROM v4096 UNION SELECT * FROM v4096; |
| 600 CREATE VIEW v16384 AS SELECT * FROM v8192 UNION SELECT * FROM v8192; |
| 601 CREATE VIEW v32768 AS SELECT * FROM v16384 UNION SELECT * FROM v16384; |
| 602 CREATE VIEW vx AS SELECT * FROM v32768 UNION SELECT * FROM v32768; |
| 603 } |
| 604 } {1 {too many references to "v1": max 65535}} |
| 605 ifcapable progress { |
| 606 do_test view-21.2 { |
| 607 db progress 1000 {expr 1} |
| 608 catchsql { |
| 609 SELECT * FROM v32768; |
| 610 } |
| 611 } {1 interrupted} |
| 612 } |
| 613 |
| 614 db close |
| 615 sqlite3 db :memory: |
| 616 do_execsql_test view-22.1 { |
| 617 CREATE VIEW x1 AS SELECT 123 AS '', 234 AS '', 345 AS ''; |
| 618 SELECT * FROM x1; |
| 619 } {123 234 345} |
| 620 do_test view-22.2 { |
| 621 unset -nocomplain x |
| 622 db eval {SELECT * FROM x1} x break |
| 623 lsort [array names x] |
| 624 } {{} * :1 :2} |
| 625 |
| 626 |
| 579 finish_test | 627 finish_test |
| OLD | NEW |