@@ -15,6 +15,7 @@ use std::sync::Arc;
1515use std:: time:: Duration ;
1616use tokio:: { runtime:: Runtime , sync:: Mutex } ;
1717use tracing_subscriber:: { filter:: LevelFilter , EnvFilter } ;
18+ use tracing:: trace;
1819
1920#[ napi]
2021pub struct SqliteError {
@@ -575,6 +576,7 @@ impl Statement {
575576
576577 #[ napi]
577578 pub fn iterate ( & self , env : Env , params : Option < napi:: JsUnknown > ) -> Result < napi:: JsObject > {
579+ trace ! ( "Statement::iterate" ) ;
578580 let rt = runtime ( ) ?;
579581 let safe_ints = self . safe_ints . load ( Ordering :: SeqCst ) ;
580582 let raw = self . raw . load ( Ordering :: SeqCst ) ;
@@ -601,8 +603,9 @@ impl Statement {
601603 let mut column_names = vec ! [ ] ;
602604 for i in 0 ..result. column_count ( ) {
603605 let column_name = result. column_name ( i) . unwrap ( ) ;
604- let column_name = env. create_string ( column_name) ?;
605- let column_name = env. create_reference ( column_name) ?;
606+ let column_name = env. create_string ( column_name) . unwrap ( ) ;
607+ let column_name = column_name. coerce_to_object ( ) . unwrap ( ) ;
608+ let column_name = env. create_reference ( column_name) . unwrap ( ) ;
606609 column_names. push ( column_name) ;
607610 }
608611 let iter = RowsIterator :: new (
@@ -638,8 +641,9 @@ impl Statement {
638641 let mut column_names = vec ! [ ] ;
639642 for i in 0 ..rows. column_count ( ) {
640643 let column_name = rows. column_name ( i) . unwrap ( ) ;
641- let column_name = env. create_string ( column_name) ?;
642- let column_name = env. create_reference ( column_name) ?;
644+ let column_name = env. create_string ( column_name) . unwrap ( ) ;
645+ let column_name = column_name. coerce_to_object ( ) . unwrap ( ) ;
646+ let column_name = env. create_reference ( column_name) . unwrap ( ) ;
643647 column_names. push ( column_name) ;
644648 }
645649 Ok :: < _ , napi:: Error > ( ( rows, column_names) )
@@ -732,8 +736,9 @@ impl Statement {
732736 let mut column_names = vec ! [ ] ;
733737 for i in 0 ..rows. column_count ( ) {
734738 let column_name = rows. column_name ( i) . unwrap ( ) ;
735- let column_name = env. create_string ( column_name) ?;
736- let column_name = env. create_reference ( column_name) ?;
739+ let column_name = env. create_string ( column_name) . unwrap ( ) ;
740+ let column_name = column_name. coerce_to_object ( ) . unwrap ( ) ;
741+ let column_name = env. create_reference ( column_name) . unwrap ( ) ;
737742 column_names. push ( column_name) ;
738743 }
739744 let column_names = Arc :: new ( column_names) ;
@@ -813,6 +818,7 @@ impl RowsIterator {
813818
814819 #[ napi]
815820 pub fn next ( & self , env : Env ) -> Result < Record > {
821+ trace ! ( "RowsIterator::next" ) ;
816822 let rt = runtime ( ) ?;
817823 let rows = self . rows . clone ( ) ;
818824 rt. block_on ( async move {
@@ -935,7 +941,7 @@ fn map_row_object(
935941 Ok ( v) => v,
936942 Err ( e) => return Err ( napi:: Error :: from_reason ( e. to_string ( ) ) ) ,
937943 } ;
938- let column_name: JsString = env. get_reference_value ( & column_names[ idx] ) ?;
944+ let column_name: napi :: JsObject = env. get_reference_value ( & column_names[ idx] ) ?;
939945 let js_value = convert_value_to_js ( env, & value, safe_ints) ?;
940946 result. set_property ( column_name, js_value) ?;
941947 }
0 commit comments