From cef954f26c098ce828edf9e2c3b234e769a04979 Mon Sep 17 00:00:00 2001 From: Jan Olszak Date: Thu, 3 Oct 2013 16:22:27 +0200 Subject: [PATCH] Modified checking labels and deleted unused checking. [Issue#] SSDWSSP-183 [Bug/Feature] Little speed-up in checking application label. [Cause] N/A [Solution] Changed the select stmt. Deleted two unused functions. [Verification] Build, install, run tests. Change-Id: I69685bed16c7b1bc955bc4695f341e969714a7d1 --- include/rules-db-internals.h | 29 -------------- src/rules-db-internals.c | 92 +++++--------------------------------------- 2 files changed, 9 insertions(+), 112 deletions(-) diff --git a/include/rules-db-internals.h b/include/rules-db-internals.h index 9f5f486..e4959bb 100644 --- a/include/rules-db-internals.h +++ b/include/rules-db-internals.h @@ -129,20 +129,6 @@ int prepare_stmt(sqlite3 *p_db, const char *const s_sql, ...); - -/** - * Check if the label is present in the database. - * - * @ingroup RDB internal functions - * - * @param p_db pointer to a SQLite3 database object - * @param s_label_name label's name - * @return PC_OPERATION_SUCCESS on success, error code otherwise - */ -int check_label_internal(sqlite3 *p_db, - const char *const s_label_name); - - /** * Check if the label is available for an application. * @@ -159,21 +145,6 @@ int check_app_label_internal(sqlite3 *p_db, /** - * Check if permission with a given name and type is available - * - * @ingroup RDB internal functions - * - * @param p_db pointer to a SQLite3 database object - * @param s_permission_name permission name - * @param s_permission_type_name permission type name - * @return PC_OPERATION_SUCCESS on success, error code otherwise - */ -int check_permission_internal(sqlite3 *p_db, - const char *const s_permission_name, - const char *const s_permission_type_name); - - -/** * Adds the application to the database. * * @ingroup RDB internal functions diff --git a/src/rules-db-internals.c b/src/rules-db-internals.c index 31684c0..354eb98 100644 --- a/src/rules-db-internals.c +++ b/src/rules-db-internals.c @@ -324,20 +324,20 @@ int check_app_label_internal(sqlite3 *p_db, sqlite3_stmt *p_stmt = NULL; ret = prepare_stmt(p_db, &p_stmt, - "SELECT COUNT(application_view.name) \ - FROM application_view \ - WHERE application_view.name=%Q \ - LIMIT 1", + "SELECT 1 \ + FROM application_view \ + WHERE application_view.name=%Q \ + LIMIT 1", s_label_name); if(ret != PC_OPERATION_SUCCESS) goto finish; ret = sqlite3_step(p_stmt); if(ret == SQLITE_ROW) { - switch(sqlite3_column_int(p_stmt, RDB_FIRST_COLUMN)) { - case 0: ret = PC_OPERATION_SUCCESS; break; - case 1: ret = PC_ERR_DB_LABEL_TAKEN; break; - } - + // There is such application label + ret = PC_ERR_DB_LABEL_TAKEN; + } if(ret == SQLITE_DONE) { + // No such application label + ret = PC_OPERATION_SUCCESS; } else { C_LOGE("RDB: Error during stepping: %s", sqlite3_errmsg(p_db)); ret = PC_ERR_DB_QUERY_STEP; @@ -350,41 +350,6 @@ finish: } -int check_label_internal(sqlite3 *p_db, - const char *const s_label_name) -{ - RDB_LOG_ENTRY_PARAM("%s", s_label_name); - - int ret = PC_ERR_DB_OPERATION; - sqlite3_stmt *p_stmt = NULL; - - ret = prepare_stmt(p_db, &p_stmt, - "SELECT COUNT(label.name) \ - FROM label WHERE name=%Q LIMIT 1", - s_label_name); - - if(ret != PC_OPERATION_SUCCESS) goto finish; - - ret = sqlite3_step(p_stmt); - if(ret == SQLITE_ROW) { - switch(sqlite3_column_int(p_stmt, RDB_FIRST_COLUMN)) { - case 0: ret = PC_OPERATION_SUCCESS; break; - case 1: ret = PC_ERR_DB_LABEL_TAKEN; break; - } - - } else { - C_LOGE("RDB: Error during stepping: %s", sqlite3_errmsg(p_db)); - ret = PC_ERR_DB_QUERY_STEP; - } - -finish: - if(sqlite3_finalize(p_stmt) < 0) - C_LOGE("RDB: Error during finalizing statement: %s", - sqlite3_errmsg(p_db)); - return ret; -} - - int add_app_internal(sqlite3 *p_db, const char *const s_label_name) { @@ -465,45 +430,6 @@ finish: } -int check_permission_internal(sqlite3 *p_db, - const char *const s_permission_name, - const char *const s_permission_type_name) -{ - RDB_LOG_ENTRY_PARAM("%s %s", s_permission_name, s_permission_type_name); - - int ret = PC_ERR_DB_OPERATION; - sqlite3_stmt *p_stmt = NULL; - - ret = prepare_stmt(p_db, &p_stmt, - "SELECT COUNT(SELECT permission_view.permission_id \ - FROM permission_view \ - WHERE name=%Q AND \ - type_name=%Q \ - LIMIT 1)", - s_permission_name, s_permission_type_name); - - if(ret != PC_OPERATION_SUCCESS) goto finish; - - ret = sqlite3_step(p_stmt); - if(ret == SQLITE_ROW) { - switch(sqlite3_column_int(p_stmt, RDB_FIRST_COLUMN)) { - case 0: ret = PC_OPERATION_SUCCESS; break; // No such permission - case 1: ret = PC_PERMISSION_EXISTS; break; // Permission exists - } - - } else { - C_LOGE("RDB: Error during stepping: %s", sqlite3_errmsg(p_db)); - ret = PC_ERR_DB_QUERY_STEP; - } - -finish: - if(sqlite3_finalize(p_stmt) < 0) - C_LOGE("RDB: Error during finalizing statement: %s", - sqlite3_errmsg(p_db)); - return ret; -} - - int add_permission_internal(sqlite3 *p_db, const char *const s_permission_name, const char *const s_permission_type_name) -- 2.7.4