File tree 9 files changed +35
-23
lines changed
9 files changed +35
-23
lines changed Original file line number Diff line number Diff line change @@ -32,10 +32,14 @@ impl Statement for AnyStatement {
32
32
}
33
33
}
34
34
35
- fn sql ( & self ) -> SqlStr {
35
+ fn sql_cloned ( & self ) -> SqlStr {
36
36
self . sql . clone ( )
37
37
}
38
38
39
+ fn into_sql ( self ) -> SqlStr {
40
+ self . sql
41
+ }
42
+
39
43
fn parameters ( & self ) -> Option < Either < & [ AnyTypeInfo ] , usize > > {
40
44
match & self . parameters {
41
45
Some ( Either :: Left ( types) ) => Some ( Either :: Left ( types) ) ,
@@ -64,8 +68,7 @@ impl<'i> ColumnIndex<AnyStatement> for &'i str {
64
68
impl < ' q > AnyStatement {
65
69
#[ doc( hidden) ]
66
70
pub fn try_from_statement < S > (
67
- query : SqlStr ,
68
- statement : & S ,
71
+ statement : S ,
69
72
column_names : Arc < HashMap < UStr , usize > > ,
70
73
) -> crate :: Result < Self >
71
74
where
@@ -91,7 +94,7 @@ impl<'q> AnyStatement {
91
94
. collect :: < Result < Vec < _ > , _ > > ( ) ?;
92
95
93
96
Ok ( Self {
94
- sql : query ,
97
+ sql : statement . into_sql ( ) ,
95
98
columns,
96
99
column_names,
97
100
parameters,
Original file line number Diff line number Diff line change 47
47
#[ inline]
48
48
fn sql ( self ) -> SqlStr {
49
49
match self . statement {
50
- Either :: Right ( statement) => statement. sql ( ) ,
50
+ Either :: Right ( statement) => statement. sql_cloned ( ) ,
51
51
Either :: Left ( sql) => sql,
52
52
}
53
53
}
Original file line number Diff line number Diff line change @@ -25,7 +25,9 @@ pub trait Statement: Send + Sync {
25
25
fn to_owned ( & self ) -> <Self :: Database as Database >:: Statement ;
26
26
27
27
/// Get the original SQL text used to create this statement.
28
- fn sql ( & self ) -> SqlStr ;
28
+ fn sql_cloned ( & self ) -> SqlStr ;
29
+
30
+ fn into_sql ( self ) -> SqlStr ;
29
31
30
32
/// Get the expected parameters for this statement.
31
33
///
Original file line number Diff line number Diff line change @@ -132,12 +132,9 @@ impl AnyConnectionBackend for MySqlConnection {
132
132
_parameters : & [ AnyTypeInfo ] ,
133
133
) -> BoxFuture < ' c , sqlx_core:: Result < AnyStatement > > {
134
134
Box :: pin ( async move {
135
- let statement = Executor :: prepare_with ( self , sql. clone ( ) , & [ ] ) . await ?;
136
- AnyStatement :: try_from_statement (
137
- sql,
138
- & statement,
139
- statement. metadata . column_names . clone ( ) ,
140
- )
135
+ let statement = Executor :: prepare_with ( self , sql, & [ ] ) . await ?;
136
+ let column_names = statement. metadata . column_names . clone ( ) ;
137
+ AnyStatement :: try_from_statement ( statement, column_names)
141
138
} )
142
139
}
143
140
Original file line number Diff line number Diff line change @@ -33,10 +33,14 @@ impl Statement for MySqlStatement {
33
33
}
34
34
}
35
35
36
- fn sql ( & self ) -> SqlStr {
36
+ fn sql_cloned ( & self ) -> SqlStr {
37
37
self . sql . clone ( )
38
38
}
39
39
40
+ fn into_sql ( self ) -> SqlStr {
41
+ self . sql
42
+ }
43
+
40
44
fn parameters ( & self ) -> Option < Either < & [ MySqlTypeInfo ] , usize > > {
41
45
Some ( Either :: Right ( self . metadata . parameters ) )
42
46
}
Original file line number Diff line number Diff line change @@ -132,12 +132,9 @@ impl AnyConnectionBackend for PgConnection {
132
132
_parameters : & [ AnyTypeInfo ] ,
133
133
) -> BoxFuture < ' c , sqlx_core:: Result < AnyStatement > > {
134
134
Box :: pin ( async move {
135
- let statement = Executor :: prepare_with ( self , sql. clone ( ) , & [ ] ) . await ?;
136
- AnyStatement :: try_from_statement (
137
- sql,
138
- & statement,
139
- statement. metadata . column_names . clone ( ) ,
140
- )
135
+ let statement = Executor :: prepare_with ( self , sql, & [ ] ) . await ?;
136
+ let colunn_names = statement. metadata . column_names . clone ( ) ;
137
+ AnyStatement :: try_from_statement ( statement, colunn_names)
141
138
} )
142
139
}
143
140
Original file line number Diff line number Diff line change @@ -34,10 +34,14 @@ impl Statement for PgStatement {
34
34
}
35
35
}
36
36
37
- fn sql ( & self ) -> SqlStr {
37
+ fn sql_cloned ( & self ) -> SqlStr {
38
38
self . sql . clone ( )
39
39
}
40
40
41
+ fn into_sql ( self ) -> SqlStr {
42
+ self . sql
43
+ }
44
+
41
45
fn parameters ( & self ) -> Option < Either < & [ PgTypeInfo ] , usize > > {
42
46
Some ( Either :: Left ( & self . metadata . parameters ) )
43
47
}
Original file line number Diff line number Diff line change @@ -128,8 +128,9 @@ impl AnyConnectionBackend for SqliteConnection {
128
128
_parameters : & [ AnyTypeInfo ] ,
129
129
) -> BoxFuture < ' c , sqlx_core:: Result < AnyStatement > > {
130
130
Box :: pin ( async move {
131
- let statement = Executor :: prepare_with ( self , sql. clone ( ) , & [ ] ) . await ?;
132
- AnyStatement :: try_from_statement ( sql, & statement, statement. column_names . clone ( ) )
131
+ let statement = Executor :: prepare_with ( self , sql, & [ ] ) . await ?;
132
+ let column_names = statement. column_names . clone ( ) ;
133
+ AnyStatement :: try_from_statement ( statement, column_names)
133
134
} )
134
135
}
135
136
Original file line number Diff line number Diff line change @@ -36,10 +36,14 @@ impl Statement for SqliteStatement {
36
36
}
37
37
}
38
38
39
- fn sql ( & self ) -> SqlStr {
39
+ fn sql_cloned ( & self ) -> SqlStr {
40
40
self . sql . clone ( )
41
41
}
42
42
43
+ fn into_sql ( self ) -> SqlStr {
44
+ self . sql
45
+ }
46
+
43
47
fn parameters ( & self ) -> Option < Either < & [ SqliteTypeInfo ] , usize > > {
44
48
Some ( Either :: Right ( self . parameters ) )
45
49
}
You can’t perform that action at this time.
0 commit comments