diff --git a/sqlx-core/src/mariadb/backend.rs b/sqlx-core/src/mariadb/backend.rs index 84538247..6f13cd4e 100644 --- a/sqlx-core/src/mariadb/backend.rs +++ b/sqlx-core/src/mariadb/backend.rs @@ -26,5 +26,5 @@ impl Backend for MariaDb { } } -impl_from_row_for_backend!(MariaDb); +impl_from_row_for_backend!(MariaDb, ResultRow); impl_into_query_parameters_for_backend!(MariaDb); diff --git a/sqlx-core/src/mariadb/executor.rs b/sqlx-core/src/mariadb/executor.rs index 1f798ade..e2946651 100644 --- a/sqlx-core/src/mariadb/executor.rs +++ b/sqlx-core/src/mariadb/executor.rs @@ -24,8 +24,6 @@ impl Executor for MariaDb { query: &'q str, params: MariaDbQueryParameters, ) -> BoxFuture<'e, crate::Result> { - let params = params.into_params(); - Box::pin(async move { let prepare = self.send_prepare(query).await?; self.send_execute(prepare.statement_id, params).await?; @@ -64,16 +62,14 @@ impl Executor for MariaDb { }) } - fn fetch<'e, 'q: 'e, O: 'e, T: 'e>( + fn fetch<'e, 'q: 'e, T: 'e>( &'e mut self, query: &'q str, params: MariaDbQueryParameters, ) -> BoxStream<'e, crate::Result> where - T: FromRow + Send + Unpin, + T: FromRow + Send + Unpin, { - let params = params.into_params(); - Box::pin(async_stream::try_stream! { let prepare = self.send_prepare(query).await?; self.send_execute(prepare.statement_id, params).await?; @@ -104,16 +100,14 @@ impl Executor for MariaDb { }) } - fn fetch_optional<'e, 'q: 'e, O: 'e, T: 'e>( + fn fetch_optional<'e, 'q: 'e, T: 'e>( &'e mut self, query: &'q str, params: MariaDbQueryParameters, ) -> BoxFuture<'e, crate::Result>> where - T: FromRow + Send, + T: FromRow + Send, { - let params = params.into_params(); - Box::pin(async move { let prepare = self.send_prepare(query).await?; self.send_execute(prepare.statement_id, params).await?; @@ -148,8 +142,6 @@ impl Executor for MariaDb { fn describe<'e, 'q: 'e>( &'e mut self, - query: &'q str, - ) -> BoxFuture<'e, crate::Result>> { - unimplemented!(); - } + _query: &'q str, + ) -> BoxFuture<'e, crate::Result>> { unimplemented!(); } } diff --git a/sqlx-core/src/mariadb/query.rs b/sqlx-core/src/mariadb/query.rs index 0a798937..109f717f 100644 --- a/sqlx-core/src/mariadb/query.rs +++ b/sqlx-core/src/mariadb/query.rs @@ -40,7 +40,7 @@ impl QueryParameters for MariaDbQueryParameters { self.null_bitmap.resize(index / 8, 0); if let IsNull::Yes = value.encode(&mut self.params) { - self.null_bitmap[index / 8] &= (1 << index % 8); + self.null_bitmap[index / 8] &= 1 << index % 8; } } } diff --git a/sqlx-core/src/params.rs b/sqlx-core/src/params.rs index 20f377ae..0a61c5eb 100644 --- a/sqlx-core/src/params.rs +++ b/sqlx-core/src/params.rs @@ -27,6 +27,8 @@ macro_rules! impl_into_query_parameters { $($T: crate::encode::Encode<$B>,)+ { fn into_params(self) -> <$B as crate::backend::Backend>::QueryParameters { + use crate::params::QueryParameters; + let mut params = <$B as crate::backend::Backend>::QueryParameters::default(); let binds = 0 $(+ { $idx; 1 } )+;