Modified to write directly instead of request 81/206681/1 accepted/tizen/unified/20190530.043050 submit/tizen/20190524.060410
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 23 May 2019 06:06:16 +0000 (15:06 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Thu, 23 May 2019 06:06:16 +0000 (15:06 +0900)
Change-Id: Ibd16f2a38aa573fedf6339e3d5175586cf28c3bd
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
lib/include/media-util-db.h
lib/media-util-db.c
src/common/include/media-common-db-svc.h
src/common/media-common-db-svc.c
src/scanner-v2/media-scanner-scan-v2.c
src/scanner/media-scanner-scan.c

index 2c818c4..437b0a7 100755 (executable)
@@ -36,6 +36,8 @@ int media_db_disconnect(sqlite3 *handle);
 
 int media_db_request_update_db(const char *query_str, uid_t uid);
 
+int media_db_update_db_direct(const char *query_str, uid_t uid);
+
 int media_db_request_update_db_batch_start(const char *query_str, uid_t uid);
 
 int media_db_request_update_db_batch(const char *query_str, uid_t uid);
index b461130..e5fbf08 100755 (executable)
@@ -568,6 +568,27 @@ int media_db_request_update_db(const char *query_str, uid_t uid)
        return ret;
 }
 
+int media_db_update_db_direct(const char *query_str, uid_t uid)
+{
+       int ret = MS_MEDIA_ERR_NONE;
+       sqlite3 *handle = NULL;
+
+       MSAPI_DBG_FUNC();
+
+       MSAPI_RETVM_IF(!MS_STRING_VALID(query_str), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid Query");
+
+       ret = media_db_connect(&handle, uid, true);
+       MSAPI_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "Connect failed");
+
+       ret = _media_db_update_directly(handle, query_str);
+       if (ret != MS_MEDIA_ERR_NONE)
+               MSAPI_DBG_ERR("Query failed");
+
+       media_db_disconnect(handle);
+
+       return ret;
+}
+
 int media_db_request_update_db_batch_start(const char *query_str, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
index 8020a56..2b91de0 100755 (executable)
@@ -99,7 +99,7 @@ int ms_cleanup_db(sqlite3 *handle, uid_t uid);
 int ms_validate_item(sqlite3 *handle, const char *storage_id, const char *path, uid_t uid);
 int ms_insert_item_batch(sqlite3 *handle, const char *storage_id, const char *path, uid_t uid);
 int ms_validity_change_all_items(sqlite3 *handle, const char *storage_id, bool validity, uid_t uid);
-bool ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid);
+int ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid);
 int ms_set_folder_item_validity(sqlite3 *handle, const char *storage_id, const char *path, int validity, int recursive, uid_t uid);
 int ms_delete_invalid_items_in_folder(sqlite3 *handle, const char *storage_id, const char *path, bool is_recursive, uid_t uid);
 int ms_send_dir_update_noti(const char *path, const char *folder_id, ms_noti_type_e noti_type, int pid);
index a5b0d6f..d9c0a91 100755 (executable)
@@ -443,7 +443,7 @@ int ms_validity_change_all_items(sqlite3 *handle, const char *storage_id, bool v
 
        char *sql = sqlite3_mprintf("UPDATE '%q' SET validity=%d;", storage_id, validity);
 
-       ret = media_db_request_update_db(sql, uid);
+       ret = media_db_update_db_direct(sql, uid);
        MS_SQLITE3_SAFE_FREE(sql);
 
        return ret;
@@ -526,7 +526,7 @@ int ms_query_do_update_list(sqlite3 *handle)
        return ret;
 }
 
-bool ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid)
+int ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
@@ -551,9 +551,9 @@ bool ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid)
 
        MS_SQLITE3_FINALIZE(sql_stmt);
 
-       sql = sqlite3_mprintf("DELETE FROM '%q' WHERE validity = 0;", storage_id);
+       sql = sqlite3_mprintf("DELETE FROM '%q' WHERE validity=0;", storage_id);
 
-       ret = media_db_request_update_db(sql, uid);
+       ret = media_db_update_db_direct(sql, uid);
        MS_SQLITE3_SAFE_FREE(sql);
        if (ret != MS_MEDIA_ERR_NONE) {
                while ((thumb_list != NULL) && (thumb_list->len != 0)) {
@@ -598,7 +598,7 @@ int ms_set_folder_item_validity(sqlite3 *handle, const char *storage_id, const c
        else
                sql = sqlite3_mprintf("UPDATE '%q' SET validity=%d WHERE folder_id IN (SELECT folder_id FROM folder WHERE folder_path='%q' AND storage_uuid='%q');", storage_id, validity, path, storage_id);
 
-       ret = media_db_request_update_db(sql, uid);
+       ret = media_db_update_db_direct(sql, uid);
        MS_SQLITE3_SAFE_FREE(sql);
 
        return ret;
@@ -736,7 +736,7 @@ int ms_delete_invalid_folder(const char *storage_id, uid_t uid)
 
        sql = sqlite3_mprintf("DELETE FROM folder WHERE storage_uuid='%q' AND validity=0;", storage_id);
 
-       ret = media_db_request_update_db(sql, uid);
+       ret = media_db_update_db_direct(sql, uid);
 
        MS_SQLITE3_SAFE_FREE(sql);
 
index 035f803..fc73926 100755 (executable)
@@ -1454,7 +1454,7 @@ gboolean msc_storage_scan_thread(void *data)
 
                if (scan_type == MS_MSG_STORAGE_ALL) {
                        /* Delete all data before full scanning */
-                       if (!ms_delete_invalid_items(handle, scan_data->storage_id, uid))
+                       if (ms_delete_invalid_items(handle, scan_data->storage_id, uid) != MS_MEDIA_ERR_NONE)
                                MS_DBG_ERR("ms_delete_invalid_items fails");
                }
 
index 2c459b4..77ce858 100755 (executable)
@@ -304,7 +304,7 @@ gboolean msc_directory_scan_thread(void *data)
 
                ms_batch_commit_disable(true, true, scan_data->uid);
 
-               if (!ms_delete_invalid_items(handle, storage_id, scan_data->uid))
+               if (ms_delete_invalid_items(handle, storage_id, scan_data->uid) != MS_MEDIA_ERR_NONE)
                        MS_DBG_ERR("deleting invalid items in storage failed");
 
                if (ms_delete_invalid_folder(storage_id, scan_data->uid) != MS_MEDIA_ERR_NONE)
@@ -421,7 +421,7 @@ gboolean msc_storage_scan_thread(void *data)
                ms_batch_commit_disable(true, valid_status, scan_data->uid);
 
                if (scan_type == MS_MSG_STORAGE_PARTIAL && ret == MS_MEDIA_ERR_NONE) {
-                       if (!ms_delete_invalid_items(handle, storage_id, scan_data->uid))
+                       if (ms_delete_invalid_items(handle, storage_id, scan_data->uid) != MS_MEDIA_ERR_NONE)
                                MS_DBG_ERR("deleting invalid items in storage failed");
 
                        if (ms_delete_invalid_folder(storage_id, scan_data->uid) != MS_MEDIA_ERR_NONE)