Reduce error checker 15/137815/2
authorMinje Ahn <minje.ahn@samsung.com>
Mon, 10 Jul 2017 02:13:24 +0000 (11:13 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Mon, 10 Jul 2017 02:18:21 +0000 (11:18 +0900)
1. Reinforce query
2. Merge function

Change-Id: Ia6c560056f7c4daeaf2dd9107308b91876e19a93
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/include/util/media-thumb-db.h
src/util/media-thumb-db.c

index a4cfc52..a6eedf9 100755 (executable)
@@ -29,7 +29,7 @@
 #define SQLITE3_FINALIZE(x)    {if (x != NULL) sqlite3_finalize(x); }
 #define SQLITE3_SAFE_FREE(x)   {if (x != NULL) {sqlite3_free(x); x = NULL; } }
 
-#define SELECT_THUMB_BY_PATH "SELECT thumbnail_path, width, height FROM media WHERE path='%q';"
+#define SELECT_THUMB_BY_PATH "SELECT thumbnail_path, width, height FROM media WHERE path='%q' AND thumbnail_path IS NOT NULL;"
 #define UPDATE_THUMB_BY_PATH "UPDATE media SET thumbnail_path = '%q' WHERE path='%q';"
 #define UPDATE_THUMB_WH_BY_PATH "UPDATE media SET thumbnail_path = '%q', width=%d,height=%d WHERE path='%q';"
 
index 6f20e12..eab4ef1 100755 (executable)
@@ -34,55 +34,6 @@ sqlite3 *_media_thumb_db_get_handle()
        return db_handle;
 }
 
-int _media_thumb_get_thumb_path_wh_from_db(sqlite3 *handle,
-                                                                       const char *origin_path,
-                                                                       char *thumb_path,
-                                                                       int max_length,
-                                                                       int *width,
-                                                                       int *height)
-{
-
-       int err = MS_MEDIA_ERR_NONE;
-       char *query_string = NULL;
-       sqlite3_stmt *stmt = NULL;
-
-       thumb_retvm_if(handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "DB handle is NULL");
-       thumb_retvm_if(!STRING_VALID(origin_path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid origin_path");
-
-       query_string = sqlite3_mprintf(SELECT_THUMB_BY_PATH, origin_path);
-       thumb_retvm_if(!STRING_VALID(query_string), MS_MEDIA_ERR_OUT_OF_MEMORY, "Memory allocation is failed");
-
-       thumb_dbg_slog("Query: %s", query_string);
-
-       err = sqlite3_prepare_v2(handle, query_string, strlen(query_string), &stmt, NULL);
-       SQLITE3_SAFE_FREE(query_string);
-       if (SQLITE_OK != err) {
-               thumb_err("prepare error [%s]", sqlite3_errmsg(handle));
-               return MS_MEDIA_ERR_DB_INTERNAL;
-       }
-
-       err = sqlite3_step(stmt);
-       if (err != SQLITE_ROW) {
-               thumb_err("end of row [%s]", sqlite3_errmsg(handle));
-               SQLITE3_FINALIZE(stmt);
-               return MS_MEDIA_ERR_DB_INTERNAL;
-       }
-
-       if (sqlite3_column_text(stmt, 0)) {
-               strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length);
-               *width = sqlite3_column_int(stmt, 1);
-               *height = sqlite3_column_int(stmt, 2);
-       } else {
-               thumb_path[0] = '\0';
-               *width = 0;
-               *height = 0;
-       }
-
-       SQLITE3_FINALIZE(stmt);
-
-       return MS_MEDIA_ERR_NONE;
-}
-
 int _media_thumb_db_connect(uid_t uid)
 {
        int err = MS_MEDIA_ERR_NONE;
@@ -113,24 +64,34 @@ int _media_thumb_db_disconnect()
 int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *width, int *height)
 {
        int err = MS_MEDIA_ERR_NONE;
-       int orig_w = 0;
-       int orig_h = 0;
+       char *query_string = NULL;
+       sqlite3_stmt *stmt = NULL;
+
+       thumb_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "DB handle is NULL");
+       thumb_retvm_if(!STRING_VALID(origin_path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid origin_path");
 
-       err = _media_thumb_get_thumb_path_wh_from_db(db_handle, origin_path, thumb_path, max_length, &orig_w, &orig_h);
-       thumb_retvm_if(err != MS_MEDIA_ERR_NONE, err, "Original path doesn't exist in DB");
-       thumb_retvm_if(!STRING_VALID(thumb_path), MS_MEDIA_ERR_INTERNAL, "[No-error] thumb path doesn't exist in DB");
+       query_string = sqlite3_mprintf(SELECT_THUMB_BY_PATH, origin_path);
+       thumb_retvm_if(!STRING_VALID(query_string), MS_MEDIA_ERR_OUT_OF_MEMORY, "Memory allocation is failed");
+       thumb_dbg_slog("Query: %s", query_string);
 
-       thumb_dbg_slog("Thumb path in DB is %s", thumb_path);
+       err = sqlite3_prepare_v2(db_handle, query_string, strlen(query_string), &stmt, NULL);
+       SQLITE3_SAFE_FREE(query_string);
+       thumb_retvm_if(SQLITE_OK != err, MS_MEDIA_ERR_DB_INTERNAL, "prepare error [%s]", sqlite3_errmsg(db_handle));
 
-       if (!g_file_test(thumb_path, G_FILE_TEST_EXISTS)) {
-               thumb_warn("thumb path doesn't exist in file system");
-               return MS_MEDIA_ERR_INTERNAL;
+       if (sqlite3_step(stmt) == SQLITE_ROW) {
+               strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length);
+               *width = sqlite3_column_int(stmt, 1);
+               *height = sqlite3_column_int(stmt, 2);
        } else {
-               thumb_dbg("This thumb path already exist");
-               *width = orig_w;
-               *height = orig_h;
+               thumb_err("end of row [%s]", sqlite3_errmsg(db_handle));
+               SQLITE3_FINALIZE(stmt);
+               return MS_MEDIA_ERR_DB_INTERNAL;
        }
 
+       SQLITE3_FINALIZE(stmt);
+
+       thumb_retvm_if(!g_file_test(thumb_path, G_FILE_TEST_EXISTS), MS_MEDIA_ERR_INTERNAL, "thumb path doesn't exist in file system");
+
        return MS_MEDIA_ERR_NONE;
 }