@@ -600,10 +600,7 @@ impl Statement {
600600 env. execute_tokio_future ( future, move |& mut _env, result| {
601601 let mut column_names = vec ! [ ] ;
602602 for i in 0 ..result. column_count ( ) {
603- 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- column_names. push ( column_name) ;
603+ column_names. push ( result. column_name ( i) . unwrap ( ) . to_string ( ) ) ;
607604 }
608605 let iter = RowsIterator :: new (
609606 Arc :: new ( tokio:: sync:: Mutex :: new ( result) ) ,
@@ -637,10 +634,7 @@ impl Statement {
637634 let rows = stmt. query ( params) . await . map_err ( Error :: from) ?;
638635 let mut column_names = vec ! [ ] ;
639636 for i in 0 ..rows. column_count ( ) {
640- 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) ?;
643- column_names. push ( column_name) ;
637+ column_names. push ( rows. column_name ( i) . unwrap ( ) . to_string ( ) ) ;
644638 }
645639 Ok :: < _ , napi:: Error > ( ( rows, column_names) )
646640 } ;
@@ -731,12 +725,8 @@ impl Statement {
731725 let mut rows = stmt. query ( params) . await . map_err ( Error :: from) ?;
732726 let mut column_names = vec ! [ ] ;
733727 for i in 0 ..rows. column_count ( ) {
734- 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) ?;
737- column_names. push ( column_name) ;
728+ column_names. push ( rows. column_name ( i) . unwrap ( ) . to_string ( ) ) ;
738729 }
739- let column_names = Arc :: new ( column_names) ;
740730 let row = rows. next ( ) . await . map_err ( Error :: from) ?;
741731 let duration = start. elapsed ( ) . as_secs_f64 ( ) ;
742732 let result = match row {
@@ -786,7 +776,7 @@ impl Statement {
786776#[ napi]
787777pub struct RowsIterator {
788778 rows : Arc < tokio:: sync:: Mutex < libsql:: Rows > > ,
789- column_names : Arc < Vec < napi :: Ref < ( ) > > > ,
779+ column_names : Vec < String > ,
790780 safe_ints : bool ,
791781 raw : bool ,
792782 pluck : bool ,
@@ -796,14 +786,14 @@ pub struct RowsIterator {
796786impl RowsIterator {
797787 pub fn new (
798788 rows : Arc < tokio:: sync:: Mutex < libsql:: Rows > > ,
799- column_names : Vec < napi :: Ref < ( ) > > ,
789+ column_names : Vec < String > ,
800790 safe_ints : bool ,
801791 raw : bool ,
802792 pluck : bool ,
803793 ) -> Result < Self > {
804794 let iter = RowsIterator {
805795 rows,
806- column_names : Arc :: new ( column_names ) ,
796+ column_names,
807797 safe_ints,
808798 raw,
809799 pluck,
@@ -815,20 +805,19 @@ impl RowsIterator {
815805 pub fn next ( & self , env : Env ) -> Result < Record > {
816806 let rt = runtime ( ) ?;
817807 let rows = self . rows . clone ( ) ;
818- let column_names = self . column_names . clone ( ) ;
819808 rt. block_on ( async move {
820809 let mut rows = rows. lock ( ) . await ;
821810 let next_row = rows. next ( ) . await . map_err ( Error :: from) ?;
822811 let record = match next_row {
823812 Some ( row) => Record {
824- column_names : column_names,
813+ column_names : self . column_names . clone ( ) ,
825814 row : Some ( row) ,
826815 safe_ints : self . safe_ints ,
827816 raw : self . raw ,
828817 pluck : self . pluck ,
829818 } ,
830819 None => Record {
831- column_names : column_names,
820+ column_names : self . column_names . clone ( ) ,
832821 row : None ,
833822 safe_ints : self . safe_ints ,
834823 raw : self . raw ,
@@ -842,7 +831,7 @@ impl RowsIterator {
842831
843832#[ napi]
844833pub struct Record {
845- column_names : Arc < Vec < napi :: Ref < ( ) > > > ,
834+ column_names : Vec < String > ,
846835 row : Option < libsql:: Row > ,
847836 safe_ints : bool ,
848837 raw : bool ,
@@ -875,7 +864,7 @@ fn runtime() -> Result<&'static Runtime> {
875864
876865fn map_row (
877866 env : & Env ,
878- column_names : & Arc < Vec < napi :: Ref < ( ) > > > ,
867+ column_names : & [ String ] ,
879868 row : & libsql:: Row ,
880869 safe_ints : bool ,
881870 raw : bool ,
@@ -884,7 +873,7 @@ fn map_row(
884873 let result = if raw {
885874 map_row_raw ( env, column_names, row, safe_ints, pluck) ?
886875 } else {
887- map_row_object ( env, column_names, row, safe_ints, pluck) ?
876+ map_row_object ( env, column_names, row, safe_ints, pluck) ?. into_unknown ( )
888877 } ;
889878 Ok ( result)
890879}
@@ -911,7 +900,7 @@ fn convert_value_to_js(
911900
912901fn map_row_object (
913902 env : & Env ,
914- column_names : & Arc < Vec < napi :: Ref < ( ) > > > ,
903+ column_names : & [ String ] ,
915904 row : & libsql:: Row ,
916905 safe_ints : bool ,
917906 pluck : bool ,
@@ -936,9 +925,10 @@ fn map_row_object(
936925 Ok ( v) => v,
937926 Err ( e) => return Err ( napi:: Error :: from_reason ( e. to_string ( ) ) ) ,
938927 } ;
939- let column_name: JsString = env. get_reference_value ( & column_names[ idx] ) ?;
928+
929+ let column_name = column_names[ idx] . as_str ( ) ;
940930 let js_value = convert_value_to_js ( env, & value, safe_ints) ?;
941- result. set_property ( column_name, js_value) ?;
931+ result. set_named_property ( column_name, js_value) ?;
942932 }
943933 result. into_unknown ( )
944934 } ;
@@ -947,7 +937,7 @@ fn map_row_object(
947937
948938fn map_row_raw (
949939 env : & Env ,
950- column_names : & Arc < Vec < napi :: Ref < ( ) > > > ,
940+ column_names : & [ String ] ,
951941 row : & libsql:: Row ,
952942 safe_ints : bool ,
953943 pluck : bool ,
0 commit comments