File tree Expand file tree Collapse file tree 2 files changed +31
-1
lines changed
Expand file tree Collapse file tree 2 files changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -813,6 +813,15 @@ pub fn translate_alter_table(
813813 input,
814814 |_program| { } ,
815815 ) ?;
816+
817+ program. emit_insn ( Insn :: DropTrigger {
818+ db : 0 ,
819+ trigger_name : trigger_name. clone ( ) ,
820+ } ) ;
821+ program. emit_insn ( Insn :: ParseSchema {
822+ db : cursor_id,
823+ where_clause : Some ( format ! ( "name = '{trigger_name}'" ) ) ,
824+ } ) ;
816825 }
817826
818827 program. emit_insn ( Insn :: SetCookie {
Original file line number Diff line number Diff line change @@ -867,4 +867,25 @@ do_execsql_test_in_memory_any_error trigger-returning-not-allowed {
867867 CREATE TRIGGER trg AFTER INSERT ON t1 BEGIN
868868 INSERT INTO t2 VALUES (NEW.id) RETURNING id;
869869 END;
870- }
870+ }
871+
872+ do_execsql_test_on_specific_db {:memory:} trigger-rename-column-old-ref {
873+ CREATE TABLE t1 (id INT, val TEXT);
874+ INSERT INTO t1 VALUES (1, 'a'), (2, 'b');
875+ CREATE TRIGGER trg BEFORE DELETE ON t1 FOR EACH ROW BEGIN
876+ UPDATE t1 SET val = 'deleted_' || OLD.val WHERE id != OLD.id;
877+ END;
878+ ALTER TABLE t1 RENAME COLUMN val TO val_new;
879+ DELETE FROM t1 WHERE id = 1;
880+ SELECT * FROM t1;
881+ } {2|deleted_a}
882+
883+ do_execsql_test_on_specific_db {:memory:} trigger-rename-column-new-ref {
884+ CREATE TABLE t1 (id INT, val TEXT);
885+ CREATE TRIGGER trg AFTER INSERT ON t1 BEGIN
886+ UPDATE t1 SET val = val || '_modified' WHERE id = NEW.id;
887+ END;
888+ ALTER TABLE t1 RENAME COLUMN val TO val_new;
889+ INSERT INTO t1 VALUES (1, 'test');
890+ SELECT * FROM t1;
891+ } {1|test_modified}
You can’t perform that action at this time.
0 commit comments