11use backend:: Backend ;
22use expression:: * ;
3+ use expression:: subselect:: Subselect ;
34use query_builder:: * ;
45use result:: QueryResult ;
56use sql_types:: Bool ;
@@ -103,7 +104,6 @@ where
103104impl_selectable_expression ! ( In <T , U >) ;
104105impl_selectable_expression ! ( NotIn <T , U >) ;
105106
106- use std:: marker:: PhantomData ;
107107use query_builder:: { BoxedSelectStatement , SelectStatement } ;
108108
109109pub trait AsInExpression < T > {
@@ -136,10 +136,7 @@ where
136136 type InExpression = Subselect < Self , ST > ;
137137
138138 fn as_in_expression ( self ) -> Self :: InExpression {
139- Subselect {
140- values : self ,
141- _sql_type : PhantomData ,
142- }
139+ Subselect :: new ( self )
143140 }
144141}
145142
@@ -150,10 +147,7 @@ where
150147 type InExpression = Subselect < Self , ST > ;
151148
152149 fn as_in_expression ( self ) -> Self :: InExpression {
153- Subselect {
154- values : self ,
155- _sql_type : PhantomData ,
156- }
150+ Subselect :: new ( self )
157151 }
158152}
159153
@@ -209,43 +203,3 @@ impl<T> QueryId for Many<T> {
209203
210204 const HAS_STATIC_QUERY_ID : bool = false ;
211205}
212-
213- #[ derive( Debug , Copy , Clone , QueryId ) ]
214- pub struct Subselect < T , ST > {
215- values : T ,
216- _sql_type : PhantomData < ST > ,
217- }
218-
219- impl < T : Expression , ST > Expression for Subselect < T , ST > {
220- type SqlType = ST ;
221- }
222-
223- impl < T , ST > MaybeEmpty for Subselect < T , ST > {
224- fn is_empty ( & self ) -> bool {
225- false
226- }
227- }
228-
229- impl < T , ST , QS > SelectableExpression < QS > for Subselect < T , ST >
230- where
231- Subselect < T , ST > : AppearsOnTable < QS > ,
232- T : SelectableExpression < QS > ,
233- {
234- }
235-
236- impl < T , ST , QS > AppearsOnTable < QS > for Subselect < T , ST >
237- where
238- Subselect < T , ST > : Expression ,
239- T : AppearsOnTable < QS > ,
240- {
241- }
242-
243- impl < T , ST , DB > QueryFragment < DB > for Subselect < T , ST >
244- where
245- DB : Backend ,
246- T : QueryFragment < DB > ,
247- {
248- fn walk_ast ( & self , pass : AstPass < DB > ) -> QueryResult < ( ) > {
249- self . values . walk_ast ( pass)
250- }
251- }
0 commit comments