OLD | NEW |
1 # 2001 November 6 | 1 # 2001 November 6 |
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 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
461 catchsql { | 461 catchsql { |
462 SELECT * FROM t1 LIMIT x | 462 SELECT * FROM t1 LIMIT x |
463 } | 463 } |
464 } {1 {no such column: x}} | 464 } {1 {no such column: x}} |
465 do_test limit-12.4 { | 465 do_test limit-12.4 { |
466 catchsql { | 466 catchsql { |
467 SELECT * FROM t1 LIMIT 1 OFFSET x | 467 SELECT * FROM t1 LIMIT 1 OFFSET x |
468 } | 468 } |
469 } {1 {no such column: x}} | 469 } {1 {no such column: x}} |
470 | 470 |
| 471 # Ticket [db4d96798da8b] |
| 472 # LIMIT does not work with nested views containing UNION ALL |
| 473 # |
| 474 do_test limit-13.1 { |
| 475 db eval { |
| 476 CREATE TABLE t13(x); |
| 477 INSERT INTO t13 VALUES(1),(2); |
| 478 CREATE VIEW v13a AS SELECT x AS y FROM t13; |
| 479 CREATE VIEW v13b AS SELECT y AS z FROM v13a UNION ALL SELECT y+10 FROM v13a; |
| 480 CREATE VIEW v13c AS SELECT z FROM v13b UNION ALL SELECT z+20 FROM v13b; |
| 481 } |
| 482 } {} |
| 483 do_test limit-13.2 { |
| 484 db eval {SELECT z FROM v13c LIMIT 1} |
| 485 } {1} |
| 486 do_test limit-13.3 { |
| 487 db eval {SELECT z FROM v13c LIMIT 2} |
| 488 } {1 2} |
| 489 do_test limit-13.4 { |
| 490 db eval {SELECT z FROM v13c LIMIT 3} |
| 491 } {1 2 11} |
| 492 do_test limit-13.5 { |
| 493 db eval {SELECT z FROM v13c LIMIT 4} |
| 494 } {1 2 11 12} |
| 495 do_test limit-13.6 { |
| 496 db eval {SELECT z FROM v13c LIMIT 5} |
| 497 } {1 2 11 12 21} |
| 498 do_test limit-13.7 { |
| 499 db eval {SELECT z FROM v13c LIMIT 6} |
| 500 } {1 2 11 12 21 22} |
| 501 do_test limit-13.8 { |
| 502 db eval {SELECT z FROM v13c LIMIT 7} |
| 503 } {1 2 11 12 21 22 31} |
| 504 do_test limit-13.9 { |
| 505 db eval {SELECT z FROM v13c LIMIT 8} |
| 506 } {1 2 11 12 21 22 31 32} |
| 507 do_test limit-13.10 { |
| 508 db eval {SELECT z FROM v13c LIMIT 9} |
| 509 } {1 2 11 12 21 22 31 32} |
| 510 do_test limit-13.11 { |
| 511 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 1} |
| 512 } {2} |
| 513 do_test limit-13.12 { |
| 514 db eval {SELECT z FROM v13c LIMIT 2 OFFSET 1} |
| 515 } {2 11} |
| 516 do_test limit-13.13 { |
| 517 db eval {SELECT z FROM v13c LIMIT 3 OFFSET 1} |
| 518 } {2 11 12} |
| 519 do_test limit-13.14 { |
| 520 db eval {SELECT z FROM v13c LIMIT 4 OFFSET 1} |
| 521 } {2 11 12 21} |
| 522 do_test limit-13.15 { |
| 523 db eval {SELECT z FROM v13c LIMIT 5 OFFSET 1} |
| 524 } {2 11 12 21 22} |
| 525 do_test limit-13.16 { |
| 526 db eval {SELECT z FROM v13c LIMIT 6 OFFSET 1} |
| 527 } {2 11 12 21 22 31} |
| 528 do_test limit-13.17 { |
| 529 db eval {SELECT z FROM v13c LIMIT 7 OFFSET 1} |
| 530 } {2 11 12 21 22 31 32} |
| 531 do_test limit-13.18 { |
| 532 db eval {SELECT z FROM v13c LIMIT 8 OFFSET 1} |
| 533 } {2 11 12 21 22 31 32} |
| 534 do_test limit-13.21 { |
| 535 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 2} |
| 536 } {11} |
| 537 do_test limit-13.22 { |
| 538 db eval {SELECT z FROM v13c LIMIT 2 OFFSET 2} |
| 539 } {11 12} |
| 540 do_test limit-13.23 { |
| 541 db eval {SELECT z FROM v13c LIMIT 3 OFFSET 2} |
| 542 } {11 12 21} |
| 543 do_test limit-13.24 { |
| 544 db eval {SELECT z FROM v13c LIMIT 4 OFFSET 2} |
| 545 } {11 12 21 22} |
| 546 do_test limit-13.25 { |
| 547 db eval {SELECT z FROM v13c LIMIT 5 OFFSET 2} |
| 548 } {11 12 21 22 31} |
| 549 do_test limit-13.26 { |
| 550 db eval {SELECT z FROM v13c LIMIT 6 OFFSET 2} |
| 551 } {11 12 21 22 31 32} |
| 552 do_test limit-13.27 { |
| 553 db eval {SELECT z FROM v13c LIMIT 7 OFFSET 2} |
| 554 } {11 12 21 22 31 32} |
| 555 do_test limit-13.31 { |
| 556 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 3} |
| 557 } {12} |
| 558 do_test limit-13.32 { |
| 559 db eval {SELECT z FROM v13c LIMIT 2 OFFSET 3} |
| 560 } {12 21} |
| 561 do_test limit-13.33 { |
| 562 db eval {SELECT z FROM v13c LIMIT 3 OFFSET 3} |
| 563 } {12 21 22} |
| 564 do_test limit-13.34 { |
| 565 db eval {SELECT z FROM v13c LIMIT 4 OFFSET 3} |
| 566 } {12 21 22 31} |
| 567 do_test limit-13.35 { |
| 568 db eval {SELECT z FROM v13c LIMIT 5 OFFSET 3} |
| 569 } {12 21 22 31 32} |
| 570 do_test limit-13.36 { |
| 571 db eval {SELECT z FROM v13c LIMIT 6 OFFSET 3} |
| 572 } {12 21 22 31 32} |
| 573 do_test limit-13.41 { |
| 574 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 4} |
| 575 } {21} |
| 576 do_test limit-13.42 { |
| 577 db eval {SELECT z FROM v13c LIMIT 2 OFFSET 4} |
| 578 } {21 22} |
| 579 do_test limit-13.43 { |
| 580 db eval {SELECT z FROM v13c LIMIT 3 OFFSET 4} |
| 581 } {21 22 31} |
| 582 do_test limit-13.44 { |
| 583 db eval {SELECT z FROM v13c LIMIT 4 OFFSET 4} |
| 584 } {21 22 31 32} |
| 585 do_test limit-13.45 { |
| 586 db eval {SELECT z FROM v13c LIMIT 5 OFFSET 4} |
| 587 } {21 22 31 32} |
| 588 do_test limit-13.51 { |
| 589 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 5} |
| 590 } {22} |
| 591 do_test limit-13.52 { |
| 592 db eval {SELECT z FROM v13c LIMIT 2 OFFSET 5} |
| 593 } {22 31} |
| 594 do_test limit-13.53 { |
| 595 db eval {SELECT z FROM v13c LIMIT 3 OFFSET 5} |
| 596 } {22 31 32} |
| 597 do_test limit-13.54 { |
| 598 db eval {SELECT z FROM v13c LIMIT 4 OFFSET 5} |
| 599 } {22 31 32} |
| 600 do_test limit-13.61 { |
| 601 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 6} |
| 602 } {31} |
| 603 do_test limit-13.62 { |
| 604 db eval {SELECT z FROM v13c LIMIT 2 OFFSET 6} |
| 605 } {31 32} |
| 606 do_test limit-13.63 { |
| 607 db eval {SELECT z FROM v13c LIMIT 3 OFFSET 6} |
| 608 } {31 32} |
| 609 do_test limit-13.71 { |
| 610 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 7} |
| 611 } {32} |
| 612 do_test limit-13.72 { |
| 613 db eval {SELECT z FROM v13c LIMIT 2 OFFSET 7} |
| 614 } {32} |
| 615 do_test limit-13.81 { |
| 616 db eval {SELECT z FROM v13c LIMIT 1 OFFSET 8} |
| 617 } {} |
| 618 |
| 619 do_execsql_test limit-14.1 { |
| 620 SELECT 123 LIMIT 1 OFFSET 0 |
| 621 } {123} |
| 622 do_execsql_test limit-14.2 { |
| 623 SELECT 123 LIMIT 1 OFFSET 1 |
| 624 } {} |
| 625 do_execsql_test limit-14.3 { |
| 626 SELECT 123 LIMIT 0 OFFSET 0 |
| 627 } {} |
| 628 do_execsql_test limit-14.4 { |
| 629 SELECT 123 LIMIT 0 OFFSET 1 |
| 630 } {} |
| 631 do_execsql_test limit-14.6 { |
| 632 SELECT 123 LIMIT -1 OFFSET 0 |
| 633 } {123} |
| 634 do_execsql_test limit-14.7 { |
| 635 SELECT 123 LIMIT -1 OFFSET 1 |
| 636 } {} |
| 637 |
471 | 638 |
472 finish_test | 639 finish_test |
OLD | NEW |