diff --git a/crates/nu-command/src/database/mod.rs b/crates/nu-command/src/database/mod.rs index 52fd929e6..6087a936a 100644 --- a/crates/nu-command/src/database/mod.rs +++ b/crates/nu-command/src/database/mod.rs @@ -6,8 +6,8 @@ pub use commands::add_commands_decls; pub use expressions::add_expression_decls; use nu_protocol::engine::StateWorkingSet; pub use values::{ - convert_sqlite_row_to_nu_value, convert_sqlite_value_to_nu_value, open_and_read_sqlite_db, - open_connection_in_memory, read_sqlite_db, SQLiteDatabase, + convert_sqlite_row_to_nu_value, convert_sqlite_value_to_nu_value, open_connection_in_memory, + SQLiteDatabase, }; pub fn add_database_decls(working_set: &mut StateWorkingSet) { diff --git a/crates/nu-command/src/database/values/mod.rs b/crates/nu-command/src/database/values/mod.rs index 2a3673f79..7459538c9 100644 --- a/crates/nu-command/src/database/values/mod.rs +++ b/crates/nu-command/src/database/values/mod.rs @@ -3,6 +3,6 @@ pub mod dsl; pub mod sqlite; pub use sqlite::{ - convert_sqlite_row_to_nu_value, convert_sqlite_value_to_nu_value, open_and_read_sqlite_db, - open_connection_in_memory, read_sqlite_db, SQLiteDatabase, + convert_sqlite_row_to_nu_value, convert_sqlite_value_to_nu_value, open_connection_in_memory, + SQLiteDatabase, }; diff --git a/crates/nu-command/src/database/values/sqlite.rs b/crates/nu-command/src/database/values/sqlite.rs index 0fb14cfcf..2189bcf0b 100644 --- a/crates/nu-command/src/database/values/sqlite.rs +++ b/crates/nu-command/src/database/values/sqlite.rs @@ -541,7 +541,7 @@ mod test { #[test] fn can_read_empty_db() { - let db = Connection::open_in_memory().unwrap(); + let db = open_connection_in_memory().unwrap(); let converted_db = read_entire_sqlite_db(db, Span::test_data()).unwrap(); let expected = Value::Record { @@ -555,7 +555,7 @@ mod test { #[test] fn can_read_empty_table() { - let db = Connection::open_in_memory().unwrap(); + let db = open_connection_in_memory().unwrap(); db.execute( "CREATE TABLE person ( @@ -583,7 +583,7 @@ mod test { #[test] fn can_read_null_and_non_null_data() { let span = Span::test_data(); - let db = Connection::open_in_memory().unwrap(); + let db = open_connection_in_memory().unwrap(); db.execute( "CREATE TABLE item ( @@ -632,7 +632,6 @@ mod test { } } -//---------------------------------------------------- pub fn open_connection_in_memory() -> Result { let db = match Connection::open_in_memory() { Ok(conn) => conn, @@ -649,64 +648,3 @@ pub fn open_connection_in_memory() -> Result { Ok(db) } - -pub fn open_and_read_sqlite_db( - path: &Path, - call_span: Span, -) -> Result { - let path = path.to_string_lossy().to_string(); - - match Connection::open(path) { - Ok(conn) => match read_sqlite_db(conn, call_span) { - Ok(data) => Ok(data), - Err(err) => Err(ShellError::GenericError( - "Failed to read from SQLite database".into(), - err.to_string(), - Some(call_span), - None, - Vec::new(), - )), - }, - Err(err) => Err(ShellError::GenericError( - "Failed to open SQLite database".into(), - err.to_string(), - Some(call_span), - None, - Vec::new(), - )), - } -} - -pub fn read_sqlite_db(conn: Connection, call_span: Span) -> Result { - let mut table_names: Vec = Vec::new(); - let mut tables: Vec = Vec::new(); - - let mut get_table_names = - conn.prepare("SELECT name from sqlite_master where type = 'table'")?; - let rows = get_table_names.query_map([], |row| row.get(0))?; - - for row in rows { - let table_name: String = row?; - table_names.push(table_name.clone()); - - let mut rows = Vec::new(); - let mut table_stmt = conn.prepare(&format!("select * from [{}]", table_name))?; - let mut table_rows = table_stmt.query([])?; - while let Some(table_row) = table_rows.next()? { - rows.push(convert_sqlite_row_to_nu_value(table_row, call_span)) - } - - let table_record = Value::List { - vals: rows, - span: call_span, - }; - - tables.push(table_record); - } - - Ok(Value::Record { - cols: table_names, - vals: tables, - span: call_span, - }) -}