Skip to content

Commit a1a358f

Browse files
committed
Revert "HACK"
This reverts commit 7d95367.
1 parent 7d95367 commit a1a358f

1 file changed

Lines changed: 16 additions & 26 deletions

File tree

src/lib.rs

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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]
787777
pub 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 {
796786
impl 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]
844833
pub 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

876865
fn 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

912901
fn 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

948938
fn 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

Comments
 (0)