11use deadpool_postgres:: Object ;
22use pyo3:: { pyclass, pymethods, types:: PyList , PyAny , Python } ;
33use std:: { collections:: HashSet , sync:: Arc , vec} ;
4- use tokio_postgres:: types:: ToSql ;
54
65use crate :: {
76 common:: rustdriver_future,
87 exceptions:: rust_errors:: RustPSQLDriverPyResult ,
98 query_result:: { PSQLDriverPyQueryResult , PSQLDriverSinglePyQueryResult } ,
10- value_converter:: { convert_parameters, postgres_to_py, PythonDTO } ,
9+ value_converter:: { convert_parameters, postgres_to_py, PythonDTO , QueryParameter } ,
1110} ;
1211use tokio_postgres:: Row ;
1312
@@ -37,14 +36,14 @@ impl RustConnection {
3736 pub async fn inner_execute (
3837 & self ,
3938 querystring : String ,
40- params : Vec < PythonDTO > ,
39+ parameters : Vec < PythonDTO > ,
4140 prepared : bool ,
4241 ) -> RustPSQLDriverPyResult < PSQLDriverPyQueryResult > {
4342 let db_client = self . db_client . read ( ) . await ;
44- let mut vec_parameters: Vec < & ( dyn ToSql + Sync ) > = Vec :: with_capacity ( params . len ( ) ) ;
45- for param in & params {
46- vec_parameters . push ( param) ;
47- }
43+ let vec_parameters: Vec < & QueryParameter > = parameters
44+ . iter ( )
45+ . map ( | param| param as & QueryParameter )
46+ . collect ( ) ;
4847
4948 let result = if prepared {
5049 db_client
@@ -90,7 +89,7 @@ impl RustConnection {
9089 & transaction. prepare_cached ( & querystring) . await ?,
9190 & single_parameters
9291 . iter ( )
93- . map ( |p| p as & ( dyn ToSql + Sync ) )
92+ . map ( |p| p as & QueryParameter )
9493 . collect :: < Vec < _ > > ( ) ,
9594 )
9695 . await ?;
@@ -100,7 +99,7 @@ impl RustConnection {
10099 & querystring,
101100 & single_parameters
102101 . iter ( )
103- . map ( |p| p as & ( dyn ToSql + Sync ) )
102+ . map ( |p| p as & QueryParameter )
104103 . collect :: < Vec < _ > > ( ) ,
105104 )
106105 . await ?;
@@ -132,10 +131,10 @@ impl RustConnection {
132131 parameters : Vec < PythonDTO > ,
133132 prepared : bool ,
134133 ) -> RustPSQLDriverPyResult < PSQLDriverSinglePyQueryResult > {
135- let mut vec_parameters: Vec < & ( dyn ToSql + Sync ) > = Vec :: with_capacity ( parameters. len ( ) ) ;
136- for param in & parameters {
137- vec_parameters . push ( param) ;
138- }
134+ let vec_parameters: Vec < & QueryParameter > = parameters
135+ . iter ( )
136+ . map ( | param| param as & QueryParameter )
137+ . collect ( ) ;
139138 let db_client_guard = self . db_client . read ( ) . await ;
140139
141140 let result = if prepared {
@@ -176,10 +175,10 @@ impl RustConnection {
176175 prepared : bool ,
177176 ) -> RustPSQLDriverPyResult < Vec < Row > > {
178177 let db_client_guard = self . db_client . read ( ) . await ;
179- let mut vec_parameters: Vec < & ( dyn ToSql + Sync ) > = Vec :: with_capacity ( parameters. len ( ) ) ;
180- for param in & parameters {
181- vec_parameters . push ( param) ;
182- }
178+ let vec_parameters: Vec < & QueryParameter > = parameters
179+ . iter ( )
180+ . map ( | param| param as & QueryParameter )
181+ . collect ( ) ;
183182
184183 let result = if prepared {
185184 db_client_guard
0 commit comments