Skip to content

Commit 0d03ed2

Browse files
committed
PERF
1 parent 4e8846d commit 0d03ed2

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

src/lib.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use std::sync::Arc;
1515
use std::time::Duration;
1616
use tokio::{runtime::Runtime, sync::Mutex};
1717
use tracing_subscriber::{filter::LevelFilter, EnvFilter};
18+
use tracing::trace;
1819

1920
#[napi]
2021
pub 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

Comments
 (0)