@@ -24,7 +24,7 @@ use std::pin::Pin;
2424use std:: sync:: Arc ;
2525use std:: task:: { Context , Poll } ;
2626
27- use super :: rows:: { RowInner , RowsInner } ;
27+ use super :: rows:: { ColumnsInner , RowInner , RowsInner } ;
2828
2929pub ( crate ) type Result < T > = std:: result:: Result < T , HranaError > ;
3030
@@ -261,7 +261,12 @@ where
261261 async fn next ( & mut self ) -> crate :: Result < Option < super :: Row > > {
262262 self . next ( ) . await
263263 }
264+ }
264265
266+ impl < S > ColumnsInner for HranaRows < S >
267+ where
268+ S : Stream < Item = std:: io:: Result < Bytes > > + Send + Sync + Unpin ,
269+ {
265270 fn column_count ( & self ) -> i32 {
266271 self . column_count ( )
267272 }
@@ -303,13 +308,6 @@ impl RowInner for Row {
303308 Ok ( into_value2 ( v) )
304309 }
305310
306- fn column_name ( & self , idx : i32 ) -> Option < & str > {
307- self . cols
308- . get ( idx as usize )
309- . and_then ( |c| c. name . as_ref ( ) )
310- . map ( |s| s. as_str ( ) )
311- }
312-
313311 fn column_str ( & self , idx : i32 ) -> crate :: Result < & str > {
314312 if let Some ( value) = self . inner . get ( idx as usize ) {
315313 if let proto:: Value :: Text { value } = value {
@@ -321,6 +319,15 @@ impl RowInner for Row {
321319 Err ( crate :: Error :: ColumnNotFound ( idx) )
322320 }
323321 }
322+ }
323+
324+ impl ColumnsInner for Row {
325+ fn column_name ( & self , idx : i32 ) -> Option < & str > {
326+ self . cols
327+ . get ( idx as usize )
328+ . and_then ( |c| c. name . as_ref ( ) )
329+ . map ( |s| s. as_str ( ) )
330+ }
324331
325332 fn column_type ( & self , idx : i32 ) -> crate :: Result < ValueType > {
326333 if let Some ( value) = self . inner . get ( idx as usize ) {
@@ -337,8 +344,8 @@ impl RowInner for Row {
337344 }
338345 }
339346
340- fn column_count ( & self ) -> usize {
341- self . cols . len ( )
347+ fn column_count ( & self ) -> i32 {
348+ self . cols . len ( ) as i32
342349 }
343350}
344351
@@ -417,7 +424,9 @@ impl RowsInner for StmtResultRows {
417424 inner : Box :: new ( row) ,
418425 } ) )
419426 }
427+ }
420428
429+ impl ColumnsInner for StmtResultRows {
421430 fn column_count ( & self ) -> i32 {
422431 self . cols . len ( ) as i32
423432 }
0 commit comments