/
germanubis
/
sqlx
Обзор
Документация
Войти
/
germanubis
/
sqlx
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
sqlx-sqlite/src/transaction.rs
35 строк
1008 B
Kevin Cox
SQLite: fix transaction level accounting with bad custom command. (#3981)
19 авг 2025, 02:16
Не верифицирован
19 авг 2025, 02:16
1f7af3a
Код
Авторство
О чём код?
use std::future::Future; use sqlx_core::transaction::TransactionManager; use sqlx_core::{error::Error, sql_str::SqlStr}; use crate::{Sqlite, SqliteConnection}; /// Implementation of [`TransactionManager`] for SQLite. pub struct SqliteTransactionManager; impl TransactionManager for SqliteTransactionManager { type Database = Sqlite; async fn begin(conn: &mut SqliteConnection, statement: Option<SqlStr>) -> Result<(), Error> { conn.worker.begin(statement).await } fn commit(conn: &mut SqliteConnection) -> impl Future<Output = Result<(), Error>> + Send + '_ { conn.worker.commit() } fn rollback( conn: &mut SqliteConnection, ) -> impl Future<Output = Result<(), Error>> + Send + '_ { conn.worker.rollback() } fn start_rollback(conn: &mut SqliteConnection) { conn.worker.start_rollback().ok(); } fn get_transaction_depth(conn: &SqliteConnection) -> usize { conn.worker.shared.get_transaction_depth() } }