File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -806,12 +806,7 @@ impl Statement {
806806 stmt. reset ( ) ;
807807 let params = map_params ( & stmt, params) ?;
808808 let mut rows = stmt. query ( params) . await . map_err ( Error :: from) ?;
809- let mut column_names = Vec :: new ( ) ;
810- for i in 0 ..rows. column_count ( ) {
811- column_names. push (
812- std:: ffi:: CString :: new ( rows. column_name ( i) . unwrap ( ) . to_string ( ) ) . unwrap ( ) ,
813- ) ;
814- }
809+ let column_names = self . get_column_names ( & rows) ?;
815810 let row = rows. next ( ) . await . map_err ( Error :: from) ?;
816811 let duration = start. elapsed ( ) . as_secs_f64 ( ) ;
817812 let result = match row {
@@ -857,6 +852,18 @@ impl Statement {
857852 . map_err ( Error :: from) ?;
858853 Ok ( ( ) )
859854 }
855+
856+ fn get_column_names ( & self , rows : & libsql:: Rows ) -> Result < Vec < std:: ffi:: CString > > {
857+ let mut column_names = Vec :: new ( ) ;
858+ for i in 0 ..rows. column_count ( ) {
859+ let column_name = match rows. column_name ( i) {
860+ Some ( name) => name. to_string ( ) ,
861+ None => return Err ( napi:: Error :: from_reason ( "Failed to get column name" ) ) ,
862+ } ;
863+ column_names. push ( std:: ffi:: CString :: new ( column_name) . unwrap ( ) ) ;
864+ }
865+ Ok ( column_names)
866+ }
860867}
861868
862869/// A raw iterator over rows. The JavaScript layer wraps this in a iterable.
You can’t perform that action at this time.
0 commit comments