@@ -28,6 +28,8 @@ pub enum StmtKind {
2828 TxnEnd ,
2929 Read ,
3030 Write ,
31+ Savepoint ,
32+ Release ,
3133 Other ,
3234}
3335
@@ -50,7 +52,7 @@ impl StmtKind {
5052 Cmd :: Explain ( _) => Some ( Self :: Other ) ,
5153 Cmd :: ExplainQueryPlan ( _) => Some ( Self :: Other ) ,
5254 Cmd :: Stmt ( Stmt :: Begin { .. } ) => Some ( Self :: TxnBegin ) ,
53- Cmd :: Stmt ( Stmt :: Commit { .. } | Stmt :: Rollback { .. } ) => Some ( Self :: TxnEnd ) ,
55+ Cmd :: Stmt ( Stmt :: Commit { .. } | Stmt :: Rollback { savepoint_name : None , .. } ) => Some ( Self :: TxnEnd ) ,
5456 Cmd :: Stmt (
5557 Stmt :: CreateVirtualTable { tbl_name, .. }
5658 | Stmt :: CreateTable {
@@ -84,14 +86,15 @@ impl StmtKind {
8486 Cmd :: Stmt ( Stmt :: AlterTable ( tbl_name, _) ) => write_if_not_reserved ( tbl_name) ,
8587 Cmd :: Stmt (
8688 Stmt :: DropIndex { .. }
87- | Stmt :: Savepoint ( _)
8889 | Stmt :: CreateTrigger {
8990 temporary : false , ..
9091 }
9192 | Stmt :: CreateIndex { .. } ,
9293 ) => Some ( Self :: Write ) ,
9394 Cmd :: Stmt ( Stmt :: Select { .. } ) => Some ( Self :: Read ) ,
9495 Cmd :: Stmt ( Stmt :: Pragma ( name, body) ) => Self :: pragma_kind ( name, body. as_ref ( ) ) ,
96+ Cmd :: Stmt ( Stmt :: Savepoint ( _) ) => Some ( Self :: Savepoint ) ,
97+ Cmd :: Stmt ( Stmt :: Release ( _) ) | Cmd :: Stmt ( Stmt :: Rollback { savepoint_name : Some ( _) , ..} ) => Some ( Self :: Release ) ,
9598 _ => None ,
9699 }
97100 }
@@ -181,7 +184,7 @@ impl State {
181184 ( State :: Txn , StmtKind :: TxnEnd ) => State :: Init ,
182185 ( state, StmtKind :: Other | StmtKind :: Write | StmtKind :: Read ) => state,
183186 ( State :: Invalid , _) => State :: Invalid ,
184- ( State :: Init , StmtKind :: TxnBegin ) => State :: Txn ,
187+ ( State :: Init , StmtKind :: TxnBegin | ) => State :: Txn ,
185188 } ;
186189 }
187190
0 commit comments