Skip to content
Snippets Groups Projects
Verified Commit a6ba06ba authored by Denis Smirnov's avatar Denis Smirnov
Browse files

refactoring: remove duplication in vtable cleanup

parent c5f683ca
No related branches found
No related tags found
1 merge request!1414sbroad import
......@@ -73,18 +73,19 @@ impl TmpSpace {
let space = Space::create(&name, &options).map_err(|e| {
SbroadError::FailedTo(Action::Create, Some(Entity::Space), format!("{name}: {e}"))
})?;
let cleanup = |space: Space| match space.drop() {
Ok(_) => {}
Err(e) => {
error!(
Option::from("Temporary space"),
&format!("Failed to drop {}: {e}", name)
);
}
};
match space.create_index(&pk_name, &pk) {
Ok(_) => {}
Err(e) => {
match space.drop() {
Ok(_) => {}
Err(e) => {
error!(
Option::from("Temporary space"),
&format!("Failed to drop {}: {e}", name)
);
}
}
cleanup(space);
return Err(SbroadError::FailedTo(
Action::Create,
Some(Entity::Index),
......@@ -102,15 +103,7 @@ impl TmpSpace {
let data = match rmp_serde::to_vec(&extended_value) {
Ok(data) => data,
Err(e) => {
match space.drop() {
Ok(_) => {}
Err(e) => {
error!(
Option::from("Temporary space"),
&format!("Failed to drop {}: {e}", name)
);
}
}
cleanup(space);
return Err(SbroadError::FailedTo(
Action::Serialize,
Some(Entity::Value),
......@@ -121,15 +114,7 @@ impl TmpSpace {
let tuple = match Tuple::try_from_slice(data.as_slice()) {
Ok(tuple) => tuple,
Err(e) => {
match space.drop() {
Ok(_) => {}
Err(e) => {
error!(
Option::from("Temporary space"),
&format!("Failed to drop {}: {e}", name)
);
}
}
cleanup(space);
return Err(SbroadError::FailedTo(
Action::Serialize,
Some(Entity::Bytes),
......@@ -140,15 +125,7 @@ impl TmpSpace {
match space.insert(&tuple) {
Ok(_) => {}
Err(e) => {
match space.drop() {
Ok(_) => {}
Err(e) => {
error!(
Option::from("Temporary space"),
&format!("Failed to drop {}: {e}", name)
);
}
}
cleanup(space);
return Err(SbroadError::FailedTo(
Action::Insert,
Some(Entity::Tuple),
......
......@@ -32,8 +32,8 @@ pub mod statistics;
#[cfg(not(feature = "mock"))]
mod prod_imports {
pub use crate::warn;
pub use crate::otm::fiber::fiber_id;
pub use crate::warn;
pub use tarantool::error::Error as TntError;
pub use tarantool::transaction::start_transaction;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment