@@ -177,6 +177,15 @@ let rollback_cont mariadb status =
177177let rollback mariadb =
178178 (rollback_start mariadb, rollback_cont mariadb)
179179
180+ let start_txn_start mariadb =
181+ handle_int mariadb (B. mysql_real_query_start mariadb.Common. raw " START TRANSACTION" )
182+
183+ let start_txn_cont mariadb status =
184+ handle_int mariadb (B. mysql_real_query_cont mariadb.Common. raw status)
185+
186+ let start_txn mariadb =
187+ (start_txn_start mariadb, start_txn_cont mariadb)
188+
180189let build_stmt mariadb raw =
181190 `Ok (Common.Stmt. init mariadb raw)
182191
@@ -516,6 +525,7 @@ module type S = sig
516525 val set_server_option : t -> server_option -> unit result future
517526 val ping : t -> unit result future
518527 val autocommit : t -> bool -> unit result future
528+ val start_txn : t -> unit result future
519529 val commit : t -> unit result future
520530 val rollback : t -> unit result future
521531 val prepare : t -> string -> Stmt .t result future
@@ -704,6 +714,8 @@ module Make (W : Wait) : S with type 'a future = 'a W.IO.future = struct
704714
705715 let autocommit m b = nonblocking m (autocommit m b)
706716
717+ let start_txn m = nonblocking m (start_txn m)
718+
707719 let commit m = nonblocking m (commit m)
708720
709721 let rollback m = nonblocking m (rollback m)
0 commit comments