mirror of
https://github.com/nushell/nushell.git
synced 2024-11-22 00:13:21 +01:00
Revert "fix: now sqlite insert handles column names as expected" (#12112)
Reverts nushell/nushell#12039
This commit is contained in:
parent
b2b4562376
commit
89b3fb92aa
@ -201,8 +201,29 @@ fn insert_in_transaction(
|
||||
span: Span,
|
||||
mut table: Table,
|
||||
) -> Result<Value, ShellError> {
|
||||
let mut stream = stream;
|
||||
let mut stream = stream.peekable();
|
||||
let first_val = match stream.peek() {
|
||||
None => return Ok(Value::nothing(span)),
|
||||
Some(val) => val.as_record()?,
|
||||
};
|
||||
|
||||
let table_name = table.name().clone();
|
||||
let tx = table.try_init(first_val)?;
|
||||
let insert_statement = format!(
|
||||
"INSERT INTO [{}] VALUES ({})",
|
||||
table_name,
|
||||
["?"].repeat(first_val.values().len()).join(", ")
|
||||
);
|
||||
|
||||
let mut insert_statement =
|
||||
tx.prepare(&insert_statement)
|
||||
.map_err(|e| ShellError::GenericError {
|
||||
error: "Failed to prepare SQLite statement".into(),
|
||||
msg: e.to_string(),
|
||||
span: None,
|
||||
help: None,
|
||||
inner: Vec::new(),
|
||||
})?;
|
||||
|
||||
// insert all the records
|
||||
stream.try_for_each(|stream_value| {
|
||||
@ -212,47 +233,25 @@ fn insert_in_transaction(
|
||||
}
|
||||
}
|
||||
|
||||
let val = stream_value.as_record()?;
|
||||
insert_value(stream_value, &mut insert_statement)
|
||||
})?;
|
||||
|
||||
let tx = table.try_init(val)?;
|
||||
let insert_statement = format!(
|
||||
"INSERT INTO [{}] ({}) VALUES ({})",
|
||||
table_name,
|
||||
val.cols.join(", "),
|
||||
["?"].repeat(val.values().len()).join(", ")
|
||||
);
|
||||
|
||||
let mut insert_statement =
|
||||
tx.prepare(&insert_statement)
|
||||
.map_err(|e| ShellError::GenericError {
|
||||
error: "Failed to prepare SQLite statement".into(),
|
||||
msg: e.to_string(),
|
||||
span: None,
|
||||
help: None,
|
||||
inner: Vec::new(),
|
||||
})?;
|
||||
|
||||
let result = insert_value(stream_value, &mut insert_statement);
|
||||
|
||||
insert_statement
|
||||
.finalize()
|
||||
.map_err(|e| ShellError::GenericError {
|
||||
error: "Failed to finalize SQLite prepared statement".into(),
|
||||
msg: e.to_string(),
|
||||
span: None,
|
||||
help: None,
|
||||
inner: Vec::new(),
|
||||
})?;
|
||||
|
||||
tx.commit().map_err(|e| ShellError::GenericError {
|
||||
error: "Failed to commit SQLite transaction".into(),
|
||||
insert_statement
|
||||
.finalize()
|
||||
.map_err(|e| ShellError::GenericError {
|
||||
error: "Failed to finalize SQLite prepared statement".into(),
|
||||
msg: e.to_string(),
|
||||
span: None,
|
||||
help: None,
|
||||
inner: Vec::new(),
|
||||
})?;
|
||||
|
||||
result
|
||||
tx.commit().map_err(|e| ShellError::GenericError {
|
||||
error: "Failed to commit SQLite transaction".into(),
|
||||
msg: e.to_string(),
|
||||
span: None,
|
||||
help: None,
|
||||
inner: Vec::new(),
|
||||
})?;
|
||||
|
||||
Ok(Value::nothing(span))
|
||||
|
Loading…
Reference in New Issue
Block a user