@@ -163,6 +163,27 @@ func TestSplitStatement(t *testing.T) {
163163 stmts : []string {"CREATE TEMP TRIGGER update_updated_at AFTER UPDATE ON users FOR EACH ROW BEGIN UPDATE users SET updated_at = 0 WHERE id = NEW.id; END" },
164164 extraInfo : generateSimpleSplitStatementExtraInfo (sqliteparser .SQLiteLexerEND_ ),
165165 },
166+ {
167+ name : "CompleteCreateTriggerStatementWithCaseEndInBody" ,
168+ value : "CREATE TRIGGER my_trigger BEFORE INSERT ON my_table BEGIN SELECT CASE WHEN TRUE THEN FALSE END; END;" ,
169+ stmts : []string {"CREATE TRIGGER my_trigger BEFORE INSERT ON my_table BEGIN SELECT CASE WHEN TRUE THEN FALSE END; END" },
170+ extraInfo : generateSimpleSplitStatementExtraInfo (sqliteparser .SQLiteLexerSCOL ),
171+ },
172+ {
173+ name : "CompleteCreateTriggerStatementWithCaseEndInWhenClause" ,
174+ value : "CREATE TRIGGER my_trigger BEFORE INSERT ON my_table WHEN CASE WHEN NEW.id > 0 THEN 1 ELSE 0 END = 1 BEGIN SELECT 1; END" ,
175+ stmts : []string {"CREATE TRIGGER my_trigger BEFORE INSERT ON my_table WHEN CASE WHEN NEW.id > 0 THEN 1 ELSE 0 END = 1 BEGIN SELECT 1; END" },
176+ extraInfo : generateSimpleSplitStatementExtraInfo (sqliteparser .SQLiteLexerEND_ ),
177+ },
178+ {
179+ name : "CreateTriggerWithCaseEndInWhenClauseFollowedByStatement" ,
180+ value : "CREATE TRIGGER my_trigger BEFORE INSERT ON my_table WHEN CASE WHEN NEW.id > 0 THEN 1 ELSE 0 END = 1 BEGIN SELECT 1; END; SELECT 2;" ,
181+ stmts : []string {
182+ "CREATE TRIGGER my_trigger BEFORE INSERT ON my_table WHEN CASE WHEN NEW.id > 0 THEN 1 ELSE 0 END = 1 BEGIN SELECT 1; END" ,
183+ "SELECT 2" ,
184+ },
185+ extraInfo : generateSimpleSplitStatementExtraInfo (sqliteparser .SQLiteLexerSCOL ),
186+ },
166187 {
167188 name : "IncompleteCreateTriggerStatement" ,
168189 value : "CREATE TRIGGER update_updated_at AFTER UPDATE ON users FOR EACH ROW BEGIN UPDATE users SET updated_at = 0 WHERE id = NEW.id;" ,
0 commit comments