@@ -461,30 +461,43 @@ impl<'r> Decode<'r, Odbc> for DateTime<Local> {
461461#[ cfg( test) ]
462462mod tests {
463463 use super :: * ;
464- use crate :: odbc:: { ColumnData , OdbcTypeInfo , OdbcValueRef , OdbcValueVec } ;
464+ use crate :: odbc:: {
465+ ColumnData , OdbcBatch , OdbcColumn , OdbcTypeInfo , OdbcValueRef , OdbcValueVec ,
466+ } ;
465467 use crate :: type_info:: TypeInfo ;
466468 use chrono:: { DateTime , NaiveDate , NaiveDateTime , NaiveTime , Utc } ;
467469 use odbc_api:: DataType ;
470+ use std:: sync:: Arc ;
468471
469472 fn make_ref ( value_vec : OdbcValueVec , data_type : DataType ) -> OdbcValueRef < ' static > {
470473 let column = ColumnData {
471474 values : value_vec,
472475 type_info : OdbcTypeInfo :: new ( data_type) ,
476+ nulls : vec ! [ false ] ,
473477 } ;
474- let ptr = Box :: leak ( Box :: new ( column) ) ;
475- OdbcValueRef :: new ( ptr, 0 )
478+ let column_data = vec ! [ Arc :: new( column) ] ;
479+ let batch = OdbcBatch {
480+ columns : Arc :: new ( [ OdbcColumn {
481+ name : "test" . to_string ( ) ,
482+ type_info : OdbcTypeInfo :: new ( data_type) ,
483+ ordinal : 0 ,
484+ } ] ) ,
485+ column_data,
486+ } ;
487+ let batch_ptr = Box :: leak ( Box :: new ( batch) ) ;
488+ OdbcValueRef :: new ( batch_ptr, 0 , 0 )
476489 }
477490
478491 fn create_test_value_text ( text : & ' static str , data_type : DataType ) -> OdbcValueRef < ' static > {
479492 make_ref ( OdbcValueVec :: Text ( vec ! [ Some ( text. to_string( ) ) ] ) , data_type)
480493 }
481494
482495 fn create_test_value_int ( value : i64 , data_type : DataType ) -> OdbcValueRef < ' static > {
483- make_ref ( OdbcValueVec :: NullableBigInt ( vec ! [ Some ( value) ] ) , data_type)
496+ make_ref ( OdbcValueVec :: BigInt ( vec ! [ value] ) , data_type)
484497 }
485498
486499 fn create_test_value_float ( value : f64 , data_type : DataType ) -> OdbcValueRef < ' static > {
487- make_ref ( OdbcValueVec :: NullableDouble ( vec ! [ Some ( value) ] ) , data_type)
500+ make_ref ( OdbcValueVec :: Double ( vec ! [ value] ) , data_type)
488501 }
489502
490503 fn create_test_value_blob ( data : & ' static [ u8 ] , data_type : DataType ) -> OdbcValueRef < ' static > {
@@ -625,9 +638,19 @@ mod tests {
625638 let column = ColumnData {
626639 values : OdbcValueVec :: Text ( vec ! [ None ] ) ,
627640 type_info : OdbcTypeInfo :: new ( DataType :: Date ) ,
641+ nulls : vec ! [ true ] ,
642+ } ;
643+ let column_data = vec ! [ Arc :: new( column) ] ;
644+ let batch = OdbcBatch {
645+ columns : Arc :: new ( [ OdbcColumn {
646+ name : "test" . to_string ( ) ,
647+ type_info : OdbcTypeInfo :: new ( DataType :: Date ) ,
648+ ordinal : 0 ,
649+ } ] ) ,
650+ column_data,
628651 } ;
629- let ptr = Box :: leak ( Box :: new ( column ) ) ;
630- let value = OdbcValueRef :: new ( ptr , 0 ) ;
652+ let batch_ptr = Box :: leak ( Box :: new ( batch ) ) ;
653+ let value = OdbcValueRef :: new ( batch_ptr , 0 , 0 ) ;
631654 assert_eq ! ( get_text_from_value( & value) ?, None ) ;
632655
633656 Ok ( ( ) )
0 commit comments