elefant_client/postgres_client/
easy_client.rs1use crate::pool::ConnectionFactory;
2use crate::postgres_client::statements::Statement;
3use crate::postgres_client::{PostgresClient, QueryResultSet};
4use crate::{ElefantClientError, ToSql};
5
6impl<F: ConnectionFactory> PostgresClient<F> {
7 pub async fn execute_non_query<S>(
9 &mut self,
10 query: &S,
11 parameters: &[&dyn ToSql],
12 ) -> Result<(), ElefantClientError>
13 where
14 S: Statement + ?Sized,
15 {
16 let mut query_result = self.query(query, parameters).await?;
17
18 loop {
19 let result_set = query_result.next_result_set().await?;
20
21 match result_set {
22 QueryResultSet::QueryProcessingComplete => return Ok(()),
23 QueryResultSet::RowDescriptionReceived(mut reader) => {
24 while reader.next_row().await?.is_some() {}
25 }
26 }
27 }
28 }
29
30 pub async fn execute_non_query_simple(
32 &mut self,
33 query: &str,
34 ) -> Result<(), ElefantClientError> {
35 let mut query_result = self.query_simple(query).await?;
36
37 loop {
38 let result_set = query_result.next_result_set().await?;
39
40 match result_set {
41 QueryResultSet::QueryProcessingComplete => return Ok(()),
42 QueryResultSet::RowDescriptionReceived(mut reader) => {
43 while reader.next_row().await?.is_some() {}
44 }
45 }
46 }
47 }
48}