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