Fix failed SqliteKeyValue::init_with_connection.
GitOrigin-RevId: bc0f07ac305706824dffe178ff8d5262f8ced28e
This commit is contained in:
parent
e9568c9a8e
commit
3d7c4426f6
@ -24,6 +24,9 @@ Result<bool> SqliteKeyValue::init(string path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Status SqliteKeyValue::init_with_connection(SqliteDb connection, string table_name) {
|
Status SqliteKeyValue::init_with_connection(SqliteDb connection, string table_name) {
|
||||||
|
auto init_guard = ScopeExit() + [&]() {
|
||||||
|
clear();
|
||||||
|
};
|
||||||
db_ = std::move(connection);
|
db_ = std::move(connection);
|
||||||
table_name_ = std::move(table_name);
|
table_name_ = std::move(table_name);
|
||||||
TRY_STATUS(init(db_, table_name_));
|
TRY_STATUS(init(db_, table_name_));
|
||||||
@ -35,6 +38,7 @@ Status SqliteKeyValue::init_with_connection(SqliteDb connection, string table_na
|
|||||||
TRY_RESULT(erase_stmt, db_.get_statement(PSLICE() << "DELETE FROM " << table_name_ << " WHERE k = ?1"));
|
TRY_RESULT(erase_stmt, db_.get_statement(PSLICE() << "DELETE FROM " << table_name_ << " WHERE k = ?1"));
|
||||||
erase_stmt_ = std::move(erase_stmt);
|
erase_stmt_ = std::move(erase_stmt);
|
||||||
TRY_RESULT(get_all_stmt, db_.get_statement(PSLICE() << "SELECT k, v FROM " << table_name_ << ""));
|
TRY_RESULT(get_all_stmt, db_.get_statement(PSLICE() << "SELECT k, v FROM " << table_name_ << ""));
|
||||||
|
get_all_stmt_ = std::move(get_all_stmt);
|
||||||
|
|
||||||
TRY_RESULT(erase_by_prefix_stmt,
|
TRY_RESULT(erase_by_prefix_stmt,
|
||||||
db_.get_statement(PSLICE() << "DELETE FROM " << table_name_ << " WHERE ?1 <= k AND k < ?2"));
|
db_.get_statement(PSLICE() << "DELETE FROM " << table_name_ << " WHERE ?1 <= k AND k < ?2"));
|
||||||
@ -52,7 +56,7 @@ Status SqliteKeyValue::init_with_connection(SqliteDb connection, string table_na
|
|||||||
db_.get_statement(PSLICE() << "SELECT k, v FROM " << table_name_ << " WHERE ?1 <= k"));
|
db_.get_statement(PSLICE() << "SELECT k, v FROM " << table_name_ << " WHERE ?1 <= k"));
|
||||||
get_by_prefix_rare_stmt_ = std::move(get_by_prefix_rare_stmt);
|
get_by_prefix_rare_stmt_ = std::move(get_by_prefix_rare_stmt);
|
||||||
|
|
||||||
get_all_stmt_ = std::move(get_all_stmt);
|
init_guard.dismiss();
|
||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user