From 7c7f54ab348afb3a5ee4ab63623d23bcce8f00f7 Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Fri, 10 Nov 2017 12:06:41 +0900 Subject: [PATCH] Remove unnecessary DB field and queries Remove storage_id in face_scan_list Remove queries for duplicate check Change-Id: Id8f4649747552e95a13d1ad20e0efd7b03c842cb Signed-off-by: Minje Ahn --- include/dcm_svc_db.h | 5 +- include/dcm_svc_internal.h | 1 - src/dcm_svc_db.c | 107 ++++-------------------------------- src/dcm_svc_extract_color.c | 1 - src/dcm_svc_internal.c | 1 - 5 files changed, 13 insertions(+), 102 deletions(-) diff --git a/include/dcm_svc_db.h b/include/dcm_svc_db.h index 352a700..0c6160c 100755 --- a/include/dcm_svc_db.h +++ b/include/dcm_svc_db.h @@ -30,10 +30,10 @@ #define DB_TABLE_MEDIA "media" #define FACE_ITEM "face_uuid, media_uuid, face_rect_x , face_rect_y, face_rect_w , face_rect_h, orientation" -#define SELECT_MEDIA_INFO_BY_FILE_PATH_FROM_DB "SELECT media_uuid, storage_uuid, width, height, orientation, mime_type, modified_time FROM media WHERE path = '%q';" +#define SELECT_MEDIA_INFO_BY_FILE_PATH_FROM_DB "SELECT media_uuid, width, height, orientation, mime_type, modified_time FROM media WHERE path = '%q';" #define SELECT_SCAN_INFO_BY_MEDIA_ID "SELECT modified_time FROM "DB_TABLE_FACE_SCAN_LIST" WHERE media_uuid = '%q';" -#define INSERT_FACE_ITEM_TO_DB "INSERT INTO " DB_TABLE_FACE" (" FACE_ITEM") VALUES ('%q', '%q', %d, %d, %d, %d, %d);" +#define INSERT_FACE_ITEM_TO_DB "INSERT OR IGNORE INTO " DB_TABLE_FACE" (" FACE_ITEM") VALUES ('%q', '%q', %d, %d, %d, %d, %d);" typedef struct { char *face_uuid; @@ -47,7 +47,6 @@ typedef struct { typedef struct { char *media_uuid; - char *storage_uuid; unsigned char rgb_r; unsigned char rgb_g; unsigned char rgb_b; diff --git a/include/dcm_svc_internal.h b/include/dcm_svc_internal.h index 621b624..6ef548d 100755 --- a/include/dcm_svc_internal.h +++ b/include/dcm_svc_internal.h @@ -24,7 +24,6 @@ typedef struct { char *media_uuid; char *file_path; - char *storage_uuid; time_t modified_time; int image_width; int image_height; diff --git a/src/dcm_svc_db.c b/src/dcm_svc_db.c index 251edd8..6d92f6b 100755 --- a/src/dcm_svc_db.c +++ b/src/dcm_svc_db.c @@ -28,77 +28,6 @@ static GMutex gMutexLock; static MediaDBHandle *db_handle; static uid_t dcm_uid; -static gboolean __dcm_svc_db_check_duplicated(MediaDBHandle *db_handle, dcm_face_item_s *data); -static gboolean __dcm_svc_db_check_duplicated_scan_list(MediaDBHandle *db_handle, const char *data); -static int __dcm_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3_stmt** stmt); - -static gboolean __dcm_svc_db_check_duplicated(MediaDBHandle *db_handle, dcm_face_item_s *data) -{ - int ret = MS_MEDIA_ERR_NONE; - sqlite3 * handle = (sqlite3 *)db_handle; - sqlite3_stmt *sql_stmt = NULL; - char *query_string = NULL; - int count = 0; - - DCM_CHECK_FALSE((data != NULL)); - DCM_CHECK_FALSE((data->media_uuid != NULL)); - - query_string = sqlite3_mprintf("SELECT count(*) FROM %s WHERE (media_uuid='%s' AND" - " face_rect_x='%d' AND face_rect_y='%d' AND face_rect_w='%d' AND face_rect_h='%d' AND orientation='%d')" - , DB_TABLE_FACE, data->media_uuid - , data->face_rect_x, data->face_rect_y, data->face_rect_w, data->face_rect_h, data->orientation); - - ret = __dcm_svc_sql_prepare_to_step(handle, query_string, &sql_stmt); - - if (ret != MS_MEDIA_ERR_NONE) { - dcm_error("error when __dcm_svc_sql_prepare_to_step. ret = [%d]", ret); - return TRUE; - } - - count = sqlite3_column_int(sql_stmt, 0); - - DCM_SQLITE3_FINALIZE(sql_stmt); - - if (count > 0) { - dcm_warn("duplicated face data!"); - return TRUE; - } - - return FALSE; -} - -static gboolean __dcm_svc_db_check_duplicated_scan_list(MediaDBHandle *db_handle, const char *data) -{ - int ret = MS_MEDIA_ERR_NONE; - sqlite3 * handle = (sqlite3 *)db_handle; - sqlite3_stmt *sql_stmt = NULL; - char *query_string = NULL; - int count = 0; - - DCM_CHECK_FALSE((data != NULL)); - - query_string = sqlite3_mprintf("SELECT count(*) FROM %s WHERE media_uuid='%s'", DB_TABLE_FACE_SCAN_LIST, data); - - ret = __dcm_svc_sql_prepare_to_step(handle, query_string, &sql_stmt); - - if (ret != MS_MEDIA_ERR_NONE) { - dcm_error("error when __dcm_svc_sql_prepare_to_step. ret = [%d]", ret); - return TRUE; - } - - count = sqlite3_column_int(sql_stmt, 0); - - DCM_SQLITE3_FINALIZE(sql_stmt); - - if (count > 0) { - dcm_warn("duplicated media data!"); - return TRUE; - } - - return FALSE; -} - - static int __dcm_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3_stmt** stmt) { int ret = MS_MEDIA_ERR_NONE; @@ -204,12 +133,11 @@ int dcm_svc_db_get_scan_image_info_by_path(const char *file_path, dcm_svc_item_s _item->media_uuid = g_strdup((const char *)sqlite3_column_text(sql_stmt, 0)); _item->file_path = g_strdup(file_path); - _item->storage_uuid = g_strdup((const char *)sqlite3_column_text(sql_stmt, 1)); - _item->image_width = sqlite3_column_int(sql_stmt, 2); - _item->image_height = sqlite3_column_int(sql_stmt, 3); - _item->image_orientation = sqlite3_column_int(sql_stmt, 4); - _item->mime_type = g_strdup((const char *)sqlite3_column_text(sql_stmt, 5)); - _item->modified_time = sqlite3_column_int(sql_stmt, 6); + _item->image_width = sqlite3_column_int(sql_stmt, 1); + _item->image_height = sqlite3_column_int(sql_stmt, 2); + _item->image_orientation = sqlite3_column_int(sql_stmt, 3); + _item->mime_type = g_strdup((const char *)sqlite3_column_text(sql_stmt, 4)); + _item->modified_time = sqlite3_column_int(sql_stmt, 5); DCM_SQLITE3_FINALIZE(sql_stmt); @@ -257,14 +185,8 @@ int dcm_svc_db_insert_face_to_db(dcm_face_item_s *face) dcm_retvm_if(face == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid face"); dcm_retvm_if(face->face_uuid == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid face_uuid"); - if (__dcm_svc_db_check_duplicated(db_handle, face) == TRUE) { - dcm_error("[__dcm_svc_db_check_duplicated] The data is duplicated!"); - return MS_MEDIA_ERR_INTERNAL; - } - query_string = sqlite3_mprintf(INSERT_FACE_ITEM_TO_DB, face->face_uuid, face->media_uuid, face->face_rect_x, face->face_rect_y, face->face_rect_w, face->face_rect_h, face->orientation); - - dcm_debug("query is %s", query_string); + dcm_debug("query[%s]", query_string); g_mutex_trylock(&gMutexLock); ret = media_db_request_update_db(query_string, dcm_uid); @@ -291,14 +213,8 @@ int dcm_svc_db_insert_face_to_face_scan_list(dcm_svc_item_s *scan_item) dcm_retvm_if(scan_item == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid scan_item"); dcm_retvm_if(scan_item->media_uuid == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid media_uuid"); - if (__dcm_svc_db_check_duplicated_scan_list(db_handle, scan_item->media_uuid) == TRUE) { - dcm_error("[_dcm_svc_db_insert_face_to_face_scan_list] The data is duplicated!"); - return MS_MEDIA_ERR_INTERNAL; - } - - query_string = sqlite3_mprintf("INSERT INTO %s (media_uuid, storage_uuid, modified_time) values('%q', '%q', '%d')", DB_TABLE_FACE_SCAN_LIST, scan_item->media_uuid, scan_item->storage_uuid, scan_item->modified_time); - - dcm_debug("query is %s", query_string); + query_string = sqlite3_mprintf("INSERT OR IGNORE INTO %s (media_uuid, modified_time) values('%q', %d)", DB_TABLE_FACE_SCAN_LIST, scan_item->media_uuid, scan_item->modified_time); + dcm_debug("query[%s]", query_string); g_mutex_trylock(&gMutexLock); ret = media_db_request_update_db(query_string, dcm_uid); @@ -327,7 +243,7 @@ int dcm_svc_db_update_face_to_face_scan_list(dcm_svc_item_s *scan_item) query_string = sqlite3_mprintf("UPDATE %s SET modified_time = %d WHERE media_uuid='%q'", DB_TABLE_FACE_SCAN_LIST, scan_item->modified_time, scan_item->media_uuid); - dcm_debug("query is %s", query_string); + dcm_debug("query[%s]", query_string); g_mutex_trylock(&gMutexLock); ret = media_db_request_update_db(query_string, dcm_uid); @@ -355,7 +271,7 @@ int dcm_svc_db_delete_face_from_db(const char *media_uuid) query_string = sqlite3_mprintf("DELETE FROM %s WHERE media_uuid='%q' AND user_marked = 0", DB_TABLE_FACE, media_uuid); - dcm_sec_debug("query is %s", query_string); + dcm_sec_debug("query[%s]", query_string); g_mutex_trylock(&gMutexLock); ret = media_db_request_update_db(query_string, dcm_uid); @@ -381,9 +297,8 @@ int dcm_svc_db_update_color_to_db(dcm_color_item_s color) dcm_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid db_handle"); dcm_retvm_if(color.media_uuid == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid media_uuid"); - dcm_retvm_if(color.storage_uuid == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid storage_uuid"); - query_string = sqlite3_mprintf(UPDATE_COLOR_ITEM_TO_DB, (int)(color.rgb_r), (int)(color.rgb_g), (int)(color.rgb_b), color.media_uuid, color.storage_uuid); + query_string = sqlite3_mprintf(UPDATE_COLOR_ITEM_TO_DB, (int)(color.rgb_r), (int)(color.rgb_g), (int)(color.rgb_b), color.media_uuid); dcm_debug("query is %s", query_string); g_mutex_trylock(&gMutexLock); diff --git a/src/dcm_svc_extract_color.c b/src/dcm_svc_extract_color.c index aea1d13..bdad34f 100755 --- a/src/dcm_svc_extract_color.c +++ b/src/dcm_svc_extract_color.c @@ -44,7 +44,6 @@ int dcm_color_extract_process(dcm_svc_item_s *scan_item, dcm_image_info_s *image dcm_debug("image_util_extract_color_from_memory result r:%02x, g:%02x, b:%02x", colorItem.rgb_r, colorItem.rgb_g, colorItem.rgb_b); colorItem.media_uuid = g_strdup(scan_item->media_uuid); - colorItem.storage_uuid = g_strdup(scan_item->storage_uuid); ret = dcm_svc_db_update_color_to_db(colorItem); if (ret != MS_MEDIA_ERR_NONE) { dcm_error("Failed to update color item into db! err: %d", ret); diff --git a/src/dcm_svc_internal.c b/src/dcm_svc_internal.c index 98b7432..4a89e7a 100755 --- a/src/dcm_svc_internal.c +++ b/src/dcm_svc_internal.c @@ -158,7 +158,6 @@ int dcm_scan_single(const char *file_path, uid_t uid, int *face_count) DCM_SAFE_FREE(scan_item->media_uuid); DCM_SAFE_FREE(scan_item->file_path); - DCM_SAFE_FREE(scan_item->storage_uuid); DCM_SAFE_FREE(scan_item); dcm_debug_fleave(); -- 2.34.1