sqlx_postgres/
lib.rs

1//! **PostgreSQL** database driver.
2
3#[macro_use]
4extern crate sqlx_core;
5
6use crate::executor::Executor;
7
8mod advisory_lock;
9mod arguments;
10mod column;
11mod connection;
12mod copy;
13mod database;
14mod error;
15mod io;
16mod listener;
17mod message;
18mod options;
19mod query_result;
20mod row;
21mod statement;
22mod transaction;
23mod type_checking;
24mod type_info;
25pub mod types;
26mod value;
27
28#[cfg(feature = "any")]
29// We are hiding the any module with its AnyConnectionBackend trait
30// so that IDEs don't show it in the autocompletion list
31// and end users don't accidentally use it. This can result in
32// nested transactions not behaving as expected.
33// For more information, see https://github.com/launchbadge/sqlx/pull/3254#issuecomment-2144043823
34#[doc(hidden)]
35pub mod any;
36
37#[cfg(feature = "migrate")]
38mod migrate;
39
40#[cfg(feature = "migrate")]
41mod testing;
42
43pub(crate) use sqlx_core::driver_prelude::*;
44
45pub use advisory_lock::{PgAdvisoryLock, PgAdvisoryLockGuard, PgAdvisoryLockKey};
46pub use arguments::{PgArgumentBuffer, PgArguments};
47pub use column::PgColumn;
48pub use connection::PgConnection;
49pub use copy::{PgCopyIn, PgPoolCopyExt};
50pub use database::Postgres;
51pub use error::{PgDatabaseError, PgErrorPosition};
52pub use listener::{PgListener, PgNotification};
53pub use message::PgSeverity;
54pub use options::{PgConnectOptions, PgSslMode};
55pub use query_result::PgQueryResult;
56pub use row::PgRow;
57pub use statement::PgStatement;
58pub use transaction::PgTransactionManager;
59pub use type_info::{PgTypeInfo, PgTypeKind};
60pub use types::PgHasArrayType;
61pub use value::{PgValue, PgValueFormat, PgValueRef};
62
63/// An alias for [`Pool`][crate::pool::Pool], specialized for Postgres.
64pub type PgPool = crate::pool::Pool<Postgres>;
65
66/// An alias for [`PoolOptions`][crate::pool::PoolOptions], specialized for Postgres.
67pub type PgPoolOptions = crate::pool::PoolOptions<Postgres>;
68
69/// An alias for [`Executor<'_, Database = Postgres>`][Executor].
70pub trait PgExecutor<'c>: Executor<'c, Database = Postgres> {}
71impl<'c, T: Executor<'c, Database = Postgres>> PgExecutor<'c> for T {}
72
73/// An alias for [`Transaction`][crate::transaction::Transaction], specialized for Postgres.
74pub type PgTransaction<'c> = crate::transaction::Transaction<'c, Postgres>;
75
76impl_into_arguments_for_arguments!(PgArguments);
77impl_acquire!(Postgres, PgConnection);
78impl_column_index_for_row!(PgRow);
79impl_column_index_for_statement!(PgStatement);
80impl_encode_for_option!(Postgres);