From 910e3b52a7a75214ca7f62f0ec963ac2b56b1952 Mon Sep 17 00:00:00 2001 From: Stefan Holderbach Date: Thu, 28 Mar 2024 11:36:12 +0100 Subject: [PATCH] Avoid uses of `Record` internals again (#12312) # Description Again avoid uses of the `Record` internals, so we are free to change the data layout - **Don't use internals of `Record` in `into sqlite`** - **Don't use internals of `Record` in `to xml`** Remaining: `rename` # User-Facing Changes None --- crates/nu-command/src/database/commands/into_sqlite.rs | 5 +++-- crates/nu-command/src/formats/to/xml.rs | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/nu-command/src/database/commands/into_sqlite.rs b/crates/nu-command/src/database/commands/into_sqlite.rs index 9d9a5ea8c34..bd729939193 100644 --- a/crates/nu-command/src/database/commands/into_sqlite.rs +++ b/crates/nu-command/src/database/commands/into_sqlite.rs @@ -1,6 +1,7 @@ use crate::database::values::sqlite::{open_sqlite_db, values_to_sql}; use nu_engine::command_prelude::*; +use itertools::Itertools; use std::{ path::Path, sync::{ @@ -243,8 +244,8 @@ fn insert_in_transaction( let insert_statement = format!( "INSERT INTO [{}] ({}) VALUES ({})", table_name, - val.cols.join(", "), - ["?"].repeat(val.values().len()).join(", ") + Itertools::intersperse(val.columns().map(String::as_str), ", ").collect::(), + Itertools::intersperse(itertools::repeat_n("?", val.len()), ", ").collect::(), ); let mut insert_statement = diff --git a/crates/nu-command/src/formats/to/xml.rs b/crates/nu-command/src/formats/to/xml.rs index a550b7c1c06..c5b1238714e 100644 --- a/crates/nu-command/src/formats/to/xml.rs +++ b/crates/nu-command/src/formats/to/xml.rs @@ -269,8 +269,7 @@ impl Job { fn find_invalid_column(record: &Record) -> Option<&String> { const VALID_COLS: [&str; 3] = [COLUMN_TAG_NAME, COLUMN_ATTRS_NAME, COLUMN_CONTENT_NAME]; record - .cols - .iter() + .columns() .find(|col| !VALID_COLS.contains(&col.as_str())) }