Modified checking labels and deleted unused checking.
authorJan Olszak <j.olszak@samsung.com>
Thu, 3 Oct 2013 14:22:27 +0000 (16:22 +0200)
committerJan Olszak <j.olszak@samsung.com>
Fri, 18 Oct 2013 12:41:14 +0000 (14:41 +0200)
[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
src/rules-db-internals.c

index 9f5f486..e4959bb 100644 (file)
@@ -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
index 31684c0..354eb98 100644 (file)
@@ -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)