use bb8::PooledConnection;
use crate::executor::QueryTarget;
use crate::middleware::{RowValues, SqlMiddlewareDbError};
use crate::postgres::query::execute_query_on_client;
use crate::postgres::query::execute_query_prepared_on_client;
use crate::query_builder::QueryBuilder;
use crate::results::ResultSet;
use super::{PgConnection, PgManager};
impl PgConnection<super::core::Idle> {
pub async fn select(
&mut self,
query: &str,
params: &[RowValues],
) -> Result<ResultSet, SqlMiddlewareDbError> {
crate::postgres::executor::execute_select(self.conn_mut(), query, params).await
}
pub fn query<'a>(&'a mut self, sql: &'a str) -> QueryBuilder<'a, 'a> {
QueryBuilder::new_target(
QueryTarget::from_typed_postgres(self.conn_mut(), false),
sql,
)
}
}
impl PgConnection<super::core::InTx> {
pub async fn select(
&mut self,
query: &str,
params: &[RowValues],
) -> Result<ResultSet, SqlMiddlewareDbError> {
execute_query_on_client(self.conn_mut(), query, params).await
}
pub fn query<'a>(&'a mut self, sql: &'a str) -> QueryBuilder<'a, 'a> {
QueryBuilder::new_target(QueryTarget::from_typed_postgres(self.conn_mut(), true), sql)
}
}
pub async fn select(
conn: &mut PooledConnection<'_, PgManager>,
query: &str,
params: &[RowValues],
) -> Result<ResultSet, SqlMiddlewareDbError> {
execute_query_on_client(conn, query, params).await
}
pub async fn select_prepared(
conn: &mut PooledConnection<'_, PgManager>,
query: &str,
params: &[RowValues],
) -> Result<ResultSet, SqlMiddlewareDbError> {
execute_query_prepared_on_client(conn, query, params).await
}