sqlx_core_oldapi/mysql/
mod.rs

1//! **MySQL** database driver.
2
3use crate::executor::Executor;
4
5mod arguments;
6mod collation;
7mod column;
8mod connection;
9mod database;
10mod error;
11mod io;
12mod options;
13mod protocol;
14mod query_result;
15mod row;
16mod statement;
17mod transaction;
18mod type_info;
19pub mod types;
20mod value;
21
22#[cfg(feature = "migrate")]
23mod migrate;
24
25#[cfg(feature = "migrate")]
26mod testing;
27
28pub use arguments::MySqlArguments;
29pub use column::MySqlColumn;
30pub use connection::MySqlConnection;
31pub use database::MySql;
32pub use error::MySqlDatabaseError;
33pub use options::{MySqlConnectOptions, MySqlSslMode};
34pub use query_result::MySqlQueryResult;
35pub use row::MySqlRow;
36pub use statement::MySqlStatement;
37pub use transaction::MySqlTransactionManager;
38pub use type_info::MySqlTypeInfo;
39pub use value::{MySqlValue, MySqlValueFormat, MySqlValueRef};
40
41/// An alias for [`Pool`][crate::pool::Pool], specialized for MySQL.
42pub type MySqlPool = crate::pool::Pool<MySql>;
43
44/// An alias for [`PoolOptions`][crate::pool::PoolOptions], specialized for MySQL.
45pub type MySqlPoolOptions = crate::pool::PoolOptions<MySql>;
46
47/// An alias for [`Executor<'_, Database = MySql>`][Executor].
48pub trait MySqlExecutor<'c>: Executor<'c, Database = MySql> {}
49impl<'c, T: Executor<'c, Database = MySql>> MySqlExecutor<'c> for T {}
50
51// NOTE: required due to the lack of lazy normalization
52impl_into_arguments_for_arguments!(MySqlArguments);
53impl_executor_for_pool_connection!(MySql, MySqlConnection, MySqlRow);
54impl_executor_for_transaction!(MySql, MySqlRow);
55impl_acquire!(MySql, MySqlConnection);
56impl_column_index_for_row!(MySqlRow);
57impl_column_index_for_statement!(MySqlStatement);
58impl_into_maybe_pool!(MySql, MySqlConnection);
59
60// required because some databases have a different handling of NULL
61impl_encode_for_option!(MySql);