@@ -4,8 +4,6 @@ mod cursor;
44#[ doc( hidden) ]
55pub mod raw;
66
7- pub use self :: cursor:: Cursor ;
8-
97use std:: cell:: Cell ;
108use std:: ffi:: { CString , CStr } ;
119use std:: rc:: Rc ;
@@ -22,6 +20,7 @@ use query_builder::pg::PgQueryBuilder;
2220use query_dsl:: { FilterDsl , LimitDsl } ;
2321use query_source:: { Table , Queryable } ;
2422use result:: * ;
23+ use self :: cursor:: Cursor ;
2524use self :: raw:: RawConnection ;
2625use types:: { NativeSqlType , ToSql } ;
2726
@@ -123,13 +122,14 @@ impl Connection {
123122 }
124123
125124 #[ doc( hidden) ]
126- pub fn query_all < T , U > ( & self , source : T ) -> QueryResult < Cursor < T :: SqlType , U > > where
125+ pub fn query_all < ' a , T , U : ' a > ( & self , source : T ) -> QueryResult < Box < Iterator < Item = U > + ' a > > where
127126 T : AsQuery ,
128127 T :: Query : QueryFragment ,
129128 U : Queryable < T :: SqlType > ,
130129 {
131130 let ( sql, params, types) = self . prepare_query ( & source. as_query ( ) ) ;
132- self . exec_sql_params ( & sql, & params, & Some ( types) ) . map ( Cursor :: new)
131+ self . exec_sql_params ( & sql, & params, & Some ( types) )
132+ . map ( |r| Box :: new ( Cursor :: new ( r) ) as Box < Iterator < Item =U > > )
133133 }
134134
135135 fn exec_sql_params ( & self , query : & str , param_data : & Vec < Option < Vec < u8 > > > , param_types : & Option < Vec < u32 > > ) -> QueryResult < DbResult > {
0 commit comments