Skip to content
This repository was archived by the owner on Apr 20, 2020. It is now read-only.

Commit 112d9e7

Browse files
committed
Move efficient handling of existing schema
1 parent 6642af3 commit 112d9e7

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/commands/index.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,22 @@ pub mod schema_map {
4646

4747
///////////////////////////
4848

49-
fn add_field(index_name: &str, field_name: &str, path: String) -> RedisResult {
49+
fn add_field(index_name: &str, field_name: &str, path: &str) -> RedisResult {
5050
let map = schema_map::as_mut();
5151

52-
if !map.contains_key(index_name) {
53-
let schema = Schema::new(&index_name);
54-
map.insert(index_name.to_owned(), schema);
55-
}
56-
57-
let schema = map.get_mut(index_name).unwrap();
52+
let schema = if let Some(stored_schema) = map.get_mut(index_name) {
53+
stored_schema
54+
} else {
55+
let new_schema = Schema::new(&index_name);
56+
map.insert(index_name.to_owned(), new_schema);
57+
map.get_mut(index_name).unwrap()
58+
};
5859

5960
if schema.fields.contains_key(field_name) {
6061
Err("Field already exists".into())
6162
} else {
6263
schema.index.create_field(field_name);
63-
schema.fields.insert(field_name.to_string(), path);
64+
schema.fields.insert(field_name.to_owned(), path.to_owned());
6465
REDIS_OK
6566
}
6667
}
@@ -119,7 +120,7 @@ where
119120
match subcommand.to_uppercase().as_str() {
120121
"ADD" => {
121122
let path = args.next_string()?;
122-
add_field(&index_name, &field_name, path)
123+
add_field(&index_name, &field_name, &path)
123124
}
124125
//"DEL" => {}
125126
//"INFO" => {}

0 commit comments

Comments
 (0)