From 2cfdf318840c6fe84bd6084b7058069dc295e6e3 Mon Sep 17 00:00:00 2001 From: Junghyun Yeon Date: Sat, 6 Mar 2021 14:41:49 +0900 Subject: [PATCH] Fix db handlers - Certificate-related db handler will use one handle. - Pkg/Appinfo db handler will break out loop if return value is abnormal. Signed-off-by: Junghyun Yeon --- src/common/database/appinfo_db_handler.cc | 7 ++----- src/common/database/cert_get_db_handler.cc | 5 ++--- src/common/database/cert_set_db_handler.cc | 7 ++----- src/common/database/depinfo_db_handler.cc | 2 +- src/common/database/pkg_get_db_handler.cc | 2 +- src/common/database/query_handler.cc | 3 ++- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/common/database/appinfo_db_handler.cc b/src/common/database/appinfo_db_handler.cc index 50cc841..6fdccd6 100644 --- a/src/common/database/appinfo_db_handler.cc +++ b/src/common/database/appinfo_db_handler.cc @@ -59,13 +59,10 @@ int AppInfoDBHandler::Execute() { for (auto conn : conn_list) { ret = appinfo_internal_filter_get_list(conn, filter_, uid_, GetLocale().c_str(), &list); - if (ret != PMINFO_R_OK) + if (ret == PMINFO_R_ERROR) break; } -/* - int ret = appinfo_internal_filter_get_list(GetConnection(), filter_, uid_, - GetLocale().c_str(), &list); -*/ + g_hash_table_foreach(list, _move, &handle_list_); g_hash_table_destroy(list); return ret; diff --git a/src/common/database/cert_get_db_handler.cc b/src/common/database/cert_get_db_handler.cc index f505116..c2b6363 100644 --- a/src/common/database/cert_get_db_handler.cc +++ b/src/common/database/cert_get_db_handler.cc @@ -46,9 +46,8 @@ int CertGetDBHandler::Execute() { return ret; handle_ = static_cast(handle); - std::vector conn_list = GetConnection(); - for (auto& conn : conn_list) - ret = certinfo_internal_get(conn, pkgid_.c_str(), uid_, handle_); + sqlite3* conn = GetConnection().front(); + ret = certinfo_internal_get(conn, pkgid_.c_str(), uid_, handle_); return ret; } diff --git a/src/common/database/cert_set_db_handler.cc b/src/common/database/cert_set_db_handler.cc index 3077c3a..dc021ed 100644 --- a/src/common/database/cert_set_db_handler.cc +++ b/src/common/database/cert_set_db_handler.cc @@ -38,11 +38,8 @@ int CertSetDBHandler::Execute() { SetDBType(DB_TYPE_FILE_CERTDB); DBHandleProvider::GetInst(uid_).SetMemoryMode(true); - std::vector conn_list = GetConnection(); - int ret; - for (auto& conn : conn_list) - ret = certinfo_internal_set( - conn, handle_->pkgid, handle_, uid_); + sqlite3 *conn = GetConnection().front(); + int ret = certinfo_internal_set(conn, handle_->pkgid, handle_, uid_); return ret; } diff --git a/src/common/database/depinfo_db_handler.cc b/src/common/database/depinfo_db_handler.cc index d9bf3e6..d1fd43f 100644 --- a/src/common/database/depinfo_db_handler.cc +++ b/src/common/database/depinfo_db_handler.cc @@ -47,7 +47,7 @@ int DepInfoGetDBHandler::Execute() { for (auto& conn : conn_list) { ret = pkginfo_internal_filter_get_depends_on( conn, pkgid_.c_str(), &list); - if (ret != PMINFO_R_OK) + if (ret == PMINFO_R_ERROR) break; } return ret; diff --git a/src/common/database/pkg_get_db_handler.cc b/src/common/database/pkg_get_db_handler.cc index 99086fd..4447cd7 100644 --- a/src/common/database/pkg_get_db_handler.cc +++ b/src/common/database/pkg_get_db_handler.cc @@ -59,7 +59,7 @@ int PkgGetDBHandler::Execute() { for (auto& conn : conn_list) { ret = pkginfo_internal_filter_get_list(conn, filter_, uid_, GetLocale().c_str(), &list); - if (ret != PMINFO_R_OK) { + if (ret == PMINFO_R_ERROR) { g_hash_table_destroy(list); return ret; } diff --git a/src/common/database/query_handler.cc b/src/common/database/query_handler.cc index a984771..292f66e 100644 --- a/src/common/database/query_handler.cc +++ b/src/common/database/query_handler.cc @@ -54,7 +54,7 @@ int QueryHandler::Execute() { if (GetOpType() == OPERATION_TYPE_READ) { for (auto& conn : conn_list) { ret = get_query_result(conn, query_[0].c_str(), &list, &row, &col); - if (ret != PMINFO_R_OK) { + if (ret == PMINFO_R_ERROR) { // TODO: error log return ret; } @@ -83,6 +83,7 @@ int QueryHandler::Execute() { for (auto& conn : conn_list) { ret = execute_write_queries(conn, queries, query_.size()); + // TODO: error check? } free(queries); return ret; -- 2.7.4