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 |