1#[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#[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
63pub type PgPool = crate::pool::Pool<Postgres>;
65
66pub type PgPoolOptions = crate::pool::PoolOptions<Postgres>;
68
69pub trait PgExecutor<'c>: Executor<'c, Database = Postgres> {}
71impl<'c, T: Executor<'c, Database = Postgres>> PgExecutor<'c> for T {}
72
73pub 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);