OLD | NEW |
1 # The author disclaims copyright to this source code. In place of | 1 # The author disclaims copyright to this source code. In place of |
2 # a legal notice, here is a blessing: | 2 # a legal notice, here is a blessing: |
3 # | 3 # |
4 # May you do good and not evil. | 4 # May you do good and not evil. |
5 # May you find forgiveness for yourself and forgive others. | 5 # May you find forgiveness for yourself and forgive others. |
6 # May you share freely, never taking more than you give. | 6 # May you share freely, never taking more than you give. |
7 # | 7 # |
8 #*********************************************************************** | 8 #*********************************************************************** |
9 # | 9 # |
10 # Regression testing of FOR EACH ROW table triggers | 10 # Regression testing of FOR EACH ROW table triggers |
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 execsql { | 490 execsql { |
491 BEGIN; | 491 BEGIN; |
492 INSERT INTO tbl values (1, 2, 3); | 492 INSERT INTO tbl values (1, 2, 3); |
493 SELECT * from tbl; | 493 SELECT * from tbl; |
494 } | 494 } |
495 } {1 2 3} | 495 } {1 2 3} |
496 do_test trigger2-6.1b { | 496 do_test trigger2-6.1b { |
497 catchsql { | 497 catchsql { |
498 INSERT OR ABORT INTO tbl values (2, 2, 3); | 498 INSERT OR ABORT INTO tbl values (2, 2, 3); |
499 } | 499 } |
500 } {1 {column a is not unique}} | 500 } {1 {UNIQUE constraint failed: tbl.a}} |
501 do_test trigger2-6.1c { | 501 do_test trigger2-6.1c { |
502 execsql { | 502 execsql { |
503 SELECT * from tbl; | 503 SELECT * from tbl; |
504 } | 504 } |
505 } {1 2 3} | 505 } {1 2 3} |
506 do_test trigger2-6.1d { | 506 do_test trigger2-6.1d { |
507 catchsql { | 507 catchsql { |
508 INSERT OR FAIL INTO tbl values (2, 2, 3); | 508 INSERT OR FAIL INTO tbl values (2, 2, 3); |
509 } | 509 } |
510 } {1 {column a is not unique}} | 510 } {1 {UNIQUE constraint failed: tbl.a}} |
511 do_test trigger2-6.1e { | 511 do_test trigger2-6.1e { |
512 execsql { | 512 execsql { |
513 SELECT * from tbl; | 513 SELECT * from tbl; |
514 } | 514 } |
515 } {1 2 3 2 2 3} | 515 } {1 2 3 2 2 3} |
516 do_test trigger2-6.1f { | 516 do_test trigger2-6.1f { |
517 execsql { | 517 execsql { |
518 INSERT OR REPLACE INTO tbl values (2, 2, 3); | 518 INSERT OR REPLACE INTO tbl values (2, 2, 3); |
519 SELECT * from tbl; | 519 SELECT * from tbl; |
520 } | 520 } |
521 } {1 2 3 2 0 0} | 521 } {1 2 3 2 0 0} |
522 do_test trigger2-6.1g { | 522 do_test trigger2-6.1g { |
523 catchsql { | 523 catchsql { |
524 INSERT OR ROLLBACK INTO tbl values (3, 2, 3); | 524 INSERT OR ROLLBACK INTO tbl values (3, 2, 3); |
525 } | 525 } |
526 } {1 {column a is not unique}} | 526 } {1 {UNIQUE constraint failed: tbl.a}} |
527 do_test trigger2-6.1h { | 527 do_test trigger2-6.1h { |
528 execsql { | 528 execsql { |
529 SELECT * from tbl; | 529 SELECT * from tbl; |
530 } | 530 } |
531 } {} | 531 } {} |
532 execsql {DELETE FROM tbl} | 532 execsql {DELETE FROM tbl} |
533 | 533 |
534 | 534 |
535 # Handling of ON CONFLICT by UPDATE statements inside triggers | 535 # Handling of ON CONFLICT by UPDATE statements inside triggers |
536 execsql { | 536 execsql { |
537 INSERT INTO tbl values (4, 2, 3); | 537 INSERT INTO tbl values (4, 2, 3); |
538 INSERT INTO tbl values (6, 3, 4); | 538 INSERT INTO tbl values (6, 3, 4); |
539 CREATE TRIGGER au_tbl AFTER UPDATE ON tbl BEGIN | 539 CREATE TRIGGER au_tbl AFTER UPDATE ON tbl BEGIN |
540 UPDATE OR IGNORE tbl SET a = new.a, c = 10; | 540 UPDATE OR IGNORE tbl SET a = new.a, c = 10; |
541 END; | 541 END; |
542 } | 542 } |
543 do_test trigger2-6.2a { | 543 do_test trigger2-6.2a { |
544 execsql { | 544 execsql { |
545 BEGIN; | 545 BEGIN; |
546 UPDATE tbl SET a = 1 WHERE a = 4; | 546 UPDATE tbl SET a = 1 WHERE a = 4; |
547 SELECT * from tbl; | 547 SELECT * from tbl; |
548 } | 548 } |
549 } {1 2 10 6 3 4} | 549 } {1 2 10 6 3 4} |
550 do_test trigger2-6.2b { | 550 do_test trigger2-6.2b { |
551 catchsql { | 551 catchsql { |
552 UPDATE OR ABORT tbl SET a = 4 WHERE a = 1; | 552 UPDATE OR ABORT tbl SET a = 4 WHERE a = 1; |
553 } | 553 } |
554 } {1 {column a is not unique}} | 554 } {1 {UNIQUE constraint failed: tbl.a}} |
555 do_test trigger2-6.2c { | 555 do_test trigger2-6.2c { |
556 execsql { | 556 execsql { |
557 SELECT * from tbl; | 557 SELECT * from tbl; |
558 } | 558 } |
559 } {1 2 10 6 3 4} | 559 } {1 2 10 6 3 4} |
560 do_test trigger2-6.2d { | 560 do_test trigger2-6.2d { |
561 catchsql { | 561 catchsql { |
562 UPDATE OR FAIL tbl SET a = 4 WHERE a = 1; | 562 UPDATE OR FAIL tbl SET a = 4 WHERE a = 1; |
563 } | 563 } |
564 } {1 {column a is not unique}} | 564 } {1 {UNIQUE constraint failed: tbl.a}} |
565 do_test trigger2-6.2e { | 565 do_test trigger2-6.2e { |
566 execsql { | 566 execsql { |
567 SELECT * from tbl; | 567 SELECT * from tbl; |
568 } | 568 } |
569 } {4 2 10 6 3 4} | 569 } {4 2 10 6 3 4} |
570 do_test trigger2-6.2f.1 { | 570 do_test trigger2-6.2f.1 { |
571 execsql { | 571 execsql { |
572 UPDATE OR REPLACE tbl SET a = 1 WHERE a = 4; | 572 UPDATE OR REPLACE tbl SET a = 1 WHERE a = 4; |
573 SELECT * from tbl; | 573 SELECT * from tbl; |
574 } | 574 } |
575 } {1 3 10} | 575 } {1 3 10} |
576 do_test trigger2-6.2f.2 { | 576 do_test trigger2-6.2f.2 { |
577 execsql { | 577 execsql { |
578 INSERT INTO tbl VALUES (2, 3, 4); | 578 INSERT INTO tbl VALUES (2, 3, 4); |
579 SELECT * FROM tbl; | 579 SELECT * FROM tbl; |
580 } | 580 } |
581 } {1 3 10 2 3 4} | 581 } {1 3 10 2 3 4} |
582 do_test trigger2-6.2g { | 582 do_test trigger2-6.2g { |
583 catchsql { | 583 catchsql { |
584 UPDATE OR ROLLBACK tbl SET a = 4 WHERE a = 1; | 584 UPDATE OR ROLLBACK tbl SET a = 4 WHERE a = 1; |
585 } | 585 } |
586 } {1 {column a is not unique}} | 586 } {1 {UNIQUE constraint failed: tbl.a}} |
587 do_test trigger2-6.2h { | 587 do_test trigger2-6.2h { |
588 execsql { | 588 execsql { |
589 SELECT * from tbl; | 589 SELECT * from tbl; |
590 } | 590 } |
591 } {4 2 3 6 3 4} | 591 } {4 2 3 6 3 4} |
592 execsql { | 592 execsql { |
593 DROP TABLE tbl; | 593 DROP TABLE tbl; |
594 } | 594 } |
595 } ; # ifcapable conflict | 595 } ; # ifcapable conflict |
596 | 596 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 END; | 750 END; |
751 DELETE FROM v3 WHERE a = 1; | 751 DELETE FROM v3 WHERE a = 1; |
752 } | 752 } |
753 } {} | 753 } {} |
754 | 754 |
755 } ;# ifcapable view | 755 } ;# ifcapable view |
756 | 756 |
757 integrity_check trigger2-9.9 | 757 integrity_check trigger2-9.9 |
758 | 758 |
759 finish_test | 759 finish_test |
OLD | NEW |