pub struct PostgresAdapter { /* private fields */ }Expand description
Async PostgreSQL adapter backed by an sqlx connection pool.
Obtain one via PostgresAdapter::connect_url (quick) or
PostgresAdapter::connect (full PostgresConfig options).
Implementations§
Source§impl PostgresAdapter
impl PostgresAdapter
pub async fn connect(config: PostgresConfig) -> Result<Self>
pub async fn connect_url(url: impl Into<String>) -> Result<Self>
Trait Implementations§
Source§impl DatabaseAdapter for PostgresAdapter
impl DatabaseAdapter for PostgresAdapter
Source§fn ping<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn ping<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Ping the server — cheapest possible health check.
Source§fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Close all connections and release pool resources.
Source§fn create_table<'life0, 'life1, 'async_trait>(
&'life0 self,
schema: &'life1 TableSchema,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_table<'life0, 'life1, 'async_trait>(
&'life0 self,
schema: &'life1 TableSchema,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create the table / collection described by
schema if it does not exist. Read moreSource§fn drop_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn drop_table<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Drop the table / collection. Irreversible.
Source§fn table_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn table_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Return
true if the table / collection exists.Source§fn insert<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
row: Row,
) -> Pin<Box<dyn Future<Output = Result<Row>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
row: Row,
) -> Pin<Box<dyn Future<Output = Result<Row>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Insert one row and return it with any database-generated fields populated
(e.g. auto-increment IDs,
DEFAULT expressions). Read moreSource§fn insert_many<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
rows: Vec<Row>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert_many<'life0, 'life1, 'async_trait>(
&'life0 self,
table: &'life1 str,
rows: Vec<Row>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Insert multiple rows in a single transaction. Returns the count inserted.
Source§fn find<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<Vec<Row>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<Vec<Row>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the SELECT described by
query and return all matching rows.Source§fn find_one<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<Option<Row>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_one<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<Option<Row>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the SELECT described by
query and return the first row if any.Source§fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the UPDATE described by
query. Returns the number of rows affected.Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the DELETE described by
query. Returns the number of rows deleted.Source§fn count<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn count<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 QueryBuilder,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Count rows matching
query.Source§fn execute_raw<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
bindings: Vec<Value>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute_raw<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
bindings: Vec<Value>,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute a raw SQL string (or JSON command for MongoDB) with positional
parameter bindings. Returns the number of rows affected. Read more
Source§fn query_raw<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
bindings: Vec<Value>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Row>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_raw<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
bindings: Vec<Value>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Row>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute a raw SQL string with positional bindings and return the result rows.
Auto Trait Implementations§
impl !RefUnwindSafe for PostgresAdapter
impl !UnwindSafe for PostgresAdapter
impl Freeze for PostgresAdapter
impl Send for PostgresAdapter
impl Sync for PostgresAdapter
impl Unpin for PostgresAdapter
impl UnsafeUnpin for PostgresAdapter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more