From f0b219c2570e26aa23bbf858862abea7ee6839f2 Mon Sep 17 00:00:00 2001 From: hj kim Date: Mon, 9 Sep 2019 15:57:20 +0900 Subject: [PATCH] Update __media_svc_db_upgrade to reduce Cyclomatic Complexity Change-Id: I80e294187da2b11acc4eb9efb0194392b17b908b --- src/common/media-svc-db-utils.c | 869 ++++++++++++-------------------- src/include/common/media-svc-db-utils.h | 1 - 2 files changed, 325 insertions(+), 545 deletions(-) diff --git a/src/common/media-svc-db-utils.c b/src/common/media-svc-db-utils.c index 9cf30bc..0cf32a5 100755 --- a/src/common/media-svc-db-utils.c +++ b/src/common/media-svc-db-utils.c @@ -444,7 +444,7 @@ int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e return MS_MEDIA_ERR_NONE; } -int _media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table_name, media_svc_table_slist_e list, uid_t uid) +static int __media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table_name, media_svc_table_slist_e list, uid_t uid) { int ret = MS_MEDIA_ERR_NONE; column_info_s *col_ptr = NULL; @@ -890,623 +890,414 @@ void _media_svc_destroy_table_query() } -static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid) +static int __alter_table(sqlite3 *db_handle, uid_t uid) { int ret = MS_MEDIA_ERR_NONE; - char *sql = NULL; - media_svc_debug_fenter(); + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_LIST_MEDIA, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_init_table_query(MEDIA_SVC_DB_TABLE_MEDIA); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("Query initialization failed"); - goto ERROR; - } + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP, MEDIA_SVC_DB_LIST_PLAYLIST_MAP, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_LIST_MEDIA, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST, MEDIA_SVC_DB_LIST_PLAYLIST, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP, MEDIA_SVC_DB_LIST_PLAYLIST_MAP, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_ALBUM, MEDIA_SVC_DB_LIST_ALBUM, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_PLAYLIST, MEDIA_SVC_DB_LIST_PLAYLIST, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG_MAP, MEDIA_SVC_DB_LIST_TAG_MAP, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_ALBUM, MEDIA_SVC_DB_LIST_ALBUM, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG, MEDIA_SVC_DB_LIST_TAG, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG_MAP, MEDIA_SVC_DB_LIST_TAG_MAP, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_BOOKMARK, MEDIA_SVC_DB_LIST_BOOKMARK, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_TAG, MEDIA_SVC_DB_LIST_TAG, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } + ret = __media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret); - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_BOOKMARK, MEDIA_SVC_DB_LIST_BOOKMARK, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } + return ret; +} - ret = _media_svc_upgrade_table_query(db_handle, MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_upgrade_table_query failed"); - goto ERROR; - } +static int __update_db_from_V6_to_V8(uid_t uid) //tizen 4.0 to 5.5 +{ + int ret = MS_MEDIA_ERR_NONE; + char *sql = NULL; - /* Upgrade issue tizen 4.0 to 5.5 */ - if (cur_version == USER_V6) { - /*Drop view first*/ - sql = sqlite3_mprintf("DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q", - MEDIA_SVC_DB_VIEW_PLAYLIST, MEDIA_SVC_DB_VIEW_TAG, MEDIA_SVC_DB_VIEW_MEDIA); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /*Drop view first*/ + sql = sqlite3_mprintf("DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q", + MEDIA_SVC_DB_VIEW_PLAYLIST, MEDIA_SVC_DB_VIEW_TAG, MEDIA_SVC_DB_VIEW_MEDIA); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - /******Upgrade Media Table******/ - /* remove user data columns */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /******Upgrade Media Table******/ + /* remove user data columns */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_LIST_MEDIA, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query failed"); - goto ERROR; - } + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_LIST_MEDIA, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_make_table_query [%d]", ret); - sql = sqlite3_mprintf("INSERT INTO %q (media_id, media_path, media_display_name, media_type, media_mime_type, media_size, media_added_time, media_modified_time, folder_id, media_thumbnail_path, media_title, album_id, media_album, media_artist, media_album_artist, media_genre, media_composer, media_year, media_recorded_date, media_copyright, media_track_num, media_description, media_bitrate, media_bitpersample, media_samplerate, media_channel, media_duration, media_longitude, media_latitude, media_altitude, exposure_time, fnumber, iso, model, media_width, media_height, media_datetaken, media_orientation, media_rating, media_favourite, media_is_drm, media_storage_type, media_timeline, sync_status, media_file_name_pinyin, media_title_pinyin, media_album_pinyin, media_artist_pinyin, media_album_artist_pinyin, media_genre_pinyin, media_composer_pinyin, media_copyright_pinyin, media_description_pinyin, age_rating_pinyin, keyword_pinyin, storage_uuid, validity, media_360) \ - SELECT media_uuid, path, file_name, media_type, mime_type, size, added_time, modified_time, folder_uuid, thumbnail_path, title, album_id, album, artist, album_artist, genre, composer, year, recorded_date, copyright, track_num, description, bitrate, bitpersample, samplerate, channel, duration, longitude, latitude, altitude, exposure_time, fnumber, iso, model, width, height, datetaken, orientation, rating, favourite, is_drm, storage_type, timeline, sync_status, file_name_pinyin, title_pinyin, album_pinyin, artist_pinyin, album_artist_pinyin, genre_pinyin, composer_pinyin, copyright_pinyin, description_pinyin, age_rating_pinyin, keyword_pinyin, storage_uuid, validity, is_360 FROM %q;", - MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("INSERT INTO %q (media_id, media_path, media_display_name, media_type, media_mime_type, media_size, media_added_time, media_modified_time, folder_id, media_thumbnail_path, media_title, album_id, media_album, media_artist, media_album_artist, media_genre, media_composer, media_year, media_recorded_date, media_copyright, media_track_num, media_description, media_bitrate, media_bitpersample, media_samplerate, media_channel, media_duration, media_longitude, media_latitude, media_altitude, exposure_time, fnumber, iso, model, media_width, media_height, media_datetaken, media_orientation, media_rating, media_favourite, media_is_drm, media_storage_type, media_timeline, sync_status, media_file_name_pinyin, media_title_pinyin, media_album_pinyin, media_artist_pinyin, media_album_artist_pinyin, media_genre_pinyin, media_composer_pinyin, media_copyright_pinyin, media_description_pinyin, age_rating_pinyin, keyword_pinyin, storage_uuid, validity, media_360) \ + SELECT media_uuid, path, file_name, media_type, mime_type, size, added_time, modified_time, folder_uuid, thumbnail_path, title, album_id, album, artist, album_artist, genre, composer, year, recorded_date, copyright, track_num, description, bitrate, bitpersample, samplerate, channel, duration, longitude, latitude, altitude, exposure_time, fnumber, iso, model, width, height, datetaken, orientation, rating, favourite, is_drm, storage_type, timeline, sync_status, file_name_pinyin, title_pinyin, album_pinyin, artist_pinyin, album_artist_pinyin, genre_pinyin, composer_pinyin, copyright_pinyin, description_pinyin, age_rating_pinyin, keyword_pinyin, storage_uuid, validity, is_360 FROM %q;", + MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - /******Upgrade Folder Table******/ - /* remove "scan_status" column */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /******Upgrade Folder Table******/ + /* remove "scan_status" column */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_LIST_FOLDER, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query failed"); - goto ERROR; - } + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_LIST_FOLDER, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_make_table_query [%d]", ret); - sql = sqlite3_mprintf("INSERT INTO %q (folder_id, folder_path, folder_name, folder_modified_time, folder_name_pinyin, folder_storage_type, storage_uuid, validity) SELECT folder_uuid, path, name, modified_time, name_pinyin, storage_type, storage_uuid, validity FROM %q;", MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("INSERT INTO %q (folder_id, folder_path, folder_name, folder_modified_time, folder_name_pinyin, folder_storage_type, storage_uuid, validity) SELECT folder_uuid, path, name, modified_time, name_pinyin, storage_type, storage_uuid, validity FROM %q;", MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - /******Upgrade Storage Table******/ - /* remove "scan_status", "storage_name" column */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /******Upgrade Storage Table******/ + /* remove "scan_status", "storage_name" column */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query failed"); - goto ERROR; - } + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_make_table_query [%d]", ret); - sql = sqlite3_mprintf("INSERT INTO %q (storage_id, storage_path, storage_type, validity) SELECT storage_uuid, storage_path, storage_type, validity FROM %q;", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("INSERT INTO %q (storage_id, storage_path, storage_type, validity) SELECT storage_uuid, storage_path, storage_type, validity FROM %q;", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - /******Upgrade face Table******/ - /* Change "face_uuid" to "face_id" (face_uuid is TEXT, face_id is INTEGER) */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /******Upgrade face Table******/ + /* Change "face_uuid" to "face_id" (face_uuid is TEXT, face_id is INTEGER) */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_LIST_FACE, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query failed"); - goto ERROR; - } + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_LIST_FACE, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_make_table_query [%d]", ret); - sql = sqlite3_mprintf("INSERT INTO %q (media_id, face_rect_x, face_rect_y, face_rect_w, face_rect_h, face_orientation, media_face_tag) SELECT media_uuid, face_rect_x, face_rect_y, face_rect_w, face_rect_h, orientation, face_tag FROM %q;", MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("INSERT INTO %q (media_id, face_rect_x, face_rect_y, face_rect_w, face_rect_h, face_orientation, media_face_tag) SELECT media_uuid, face_rect_x, face_rect_y, face_rect_w, face_rect_h, orientation, face_tag FROM %q;", MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - /******Upgrade face_scan_list Table******/ - /* Drop trigger first */ - sql = sqlite3_mprintf("DROP TRIGGER IF EXISTS %q_%q;DROP TRIGGER IF EXISTS %q_%q;", - MEDIA_SVC_DB_TRIGGER_FACE, MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TRIGGER_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_MEDIA); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /******Upgrade face_scan_list Table******/ + /* Drop trigger first */ + sql = sqlite3_mprintf("DROP TRIGGER IF EXISTS %q_%q;DROP TRIGGER IF EXISTS %q_%q;", + MEDIA_SVC_DB_TRIGGER_FACE, MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TRIGGER_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_MEDIA); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - /* remove "storage_uuid" column */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /* remove "storage_uuid" column */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_LIST_FACE_SCAN_LIST, uid); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_make_table_query failed"); - goto ERROR; - } + ret = _media_svc_make_table_query(MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_LIST_FACE_SCAN_LIST, uid); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_make_table_query [%d]", ret); - sql = sqlite3_mprintf("INSERT INTO %q (media_id, modified_time) SELECT media_uuid, modified_time FROM %q;", MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("INSERT INTO %q (media_id, modified_time) SELECT media_uuid, modified_time FROM %q;", MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_TMP_TABLE); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + sql = sqlite3_mprintf("DROP TABLE %q;", MEDIA_SVC_DB_TABLE_TMP_TABLE); + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); + + return ret; +} + +static int __update_db_to_latest(int cur_version, uid_t uid) //tizen 5.0(and before) to 5.5 +{ + int ret = MS_MEDIA_ERR_NONE; + char *sql = NULL; + + /*Drop view first*/ + sql = sqlite3_mprintf("DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q", + MEDIA_SVC_DB_VIEW_PLAYLIST, MEDIA_SVC_DB_VIEW_TAG, MEDIA_SVC_DB_VIEW_MEDIA); + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); + + if (cur_version == USER_V6) { + /* Drop trigger first */ + sql = sqlite3_mprintf("DROP TRIGGER IF EXISTS %q_%q;DROP TRIGGER IF EXISTS %q_%q;", + MEDIA_SVC_DB_TRIGGER_FACE, MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TRIGGER_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_MEDIA); ret = _media_svc_sql_query(sql, uid); SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); } - /* Upgrade issue tizen 5.0 to 5.5 */ - if (cur_version < USER_V8) { - /*Drop view first*/ - sql = sqlite3_mprintf("DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q", - MEDIA_SVC_DB_VIEW_PLAYLIST, MEDIA_SVC_DB_VIEW_TAG, MEDIA_SVC_DB_VIEW_MEDIA); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /*playlist */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN play_order TO playlist_member_order;\ + ALTER TABLE %q RENAME COLUMN name TO playlist_name;\ + ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;", + MEDIA_SVC_DB_TABLE_PLAYLIST_MAP, MEDIA_SVC_DB_TABLE_PLAYLIST, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } - if (cur_version == USER_V6) { - /* Drop trigger first */ - sql = sqlite3_mprintf("DROP TRIGGER IF EXISTS %q_%q;DROP TRIGGER IF EXISTS %q_%q;", - MEDIA_SVC_DB_TRIGGER_FACE, MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TRIGGER_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_MEDIA); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } - } + /*tag */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN name TO tag_name;\ + ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;", + MEDIA_SVC_DB_TABLE_TAG, MEDIA_SVC_DB_TABLE_TAG_MAP); + + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); + + /*bookmark */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN marked_time TO bookmark_marked_time;\ + ALTER TABLE %q RENAME COLUMN name TO bookmark_name;\ + ALTER TABLE %q RENAME COLUMN thumbnail_path TO bookmark_thumbnail_path;\ + ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;", + MEDIA_SVC_DB_TABLE_BOOKMARK, MEDIA_SVC_DB_TABLE_BOOKMARK, + MEDIA_SVC_DB_TABLE_BOOKMARK, MEDIA_SVC_DB_TABLE_BOOKMARK); - /*playlist */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN play_order TO playlist_member_order;\ - ALTER TABLE %q RENAME COLUMN name TO playlist_name;\ + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); + + if (cur_version == USER_V7) { + /*face */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN face_id TO media_face_id;\ + ALTER TABLE %q RENAME COLUMN orientation TO face_orientation;\ + ALTER TABLE %q RENAME COLUMN face_tag TO media_face_tag;\ + ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;\ ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;", - MEDIA_SVC_DB_TABLE_PLAYLIST_MAP, MEDIA_SVC_DB_TABLE_PLAYLIST, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_FACE, + MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_FACE); ret = _media_svc_sql_query(sql, uid); SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } - - /*tag */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN name TO tag_name;\ - ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;", - MEDIA_SVC_DB_TABLE_TAG, MEDIA_SVC_DB_TABLE_TAG_MAP); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); + + /*folder */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN modified_time TO folder_modified_time;\ + ALTER TABLE %q RENAME COLUMN path TO folder_path;\ + ALTER TABLE %q RENAME COLUMN name TO folder_name;\ + ALTER TABLE %q RENAME COLUMN name_pinyin TO folder_name_pinyin;\ + ALTER TABLE %q RENAME COLUMN storage_type TO folder_storage_type;\ + ALTER TABLE %q RENAME COLUMN folder_uuid TO folder_id;", + MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, + MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER); ret = _media_svc_sql_query(sql, uid); SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); - /*bookmark */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN marked_time TO bookmark_marked_time;\ - ALTER TABLE %q RENAME COLUMN name TO bookmark_name;\ - ALTER TABLE %q RENAME COLUMN thumbnail_path TO bookmark_thumbnail_path;\ - ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;", - MEDIA_SVC_DB_TABLE_BOOKMARK, MEDIA_SVC_DB_TABLE_BOOKMARK, - MEDIA_SVC_DB_TABLE_BOOKMARK, MEDIA_SVC_DB_TABLE_BOOKMARK); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /*storage */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN storage_uuid TO storage_id;", + MEDIA_SVC_DB_TABLE_STORAGE); ret = _media_svc_sql_query(sql, uid); SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); + + /*media */ + sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN file_name_pinyin TO media_file_name_pinyin;\ + ALTER TABLE %q RENAME COLUMN title_pinyin TO media_title_pinyin;\ + ALTER TABLE %q RENAME COLUMN album_pinyin TO media_album_pinyin;\ + ALTER TABLE %q RENAME COLUMN artist_pinyin TO media_artist_pinyin;\ + ALTER TABLE %q RENAME COLUMN album_artist_pinyin TO media_album_artist_pinyin;\ + ALTER TABLE %q RENAME COLUMN genre_pinyin TO media_genre_pinyin;\ + ALTER TABLE %q RENAME COLUMN composer_pinyin TO media_composer_pinyin;\ + ALTER TABLE %q RENAME COLUMN copyright_pinyin TO media_copyright_pinyin;\ + ALTER TABLE %q RENAME COLUMN description_pinyin TO media_description_pinyin;\ + ALTER TABLE %q RENAME COLUMN folder_uuid TO folder_id;\ + ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;\ + ALTER TABLE %q RENAME COLUMN path TO media_path;\ + ALTER TABLE %q RENAME COLUMN file_name TO media_display_name;\ + ALTER TABLE %q RENAME COLUMN mime_type TO media_mime_type;\ + ALTER TABLE %q RENAME COLUMN size TO media_size;\ + ALTER TABLE %q RENAME COLUMN added_time TO media_added_time;\ + ALTER TABLE %q RENAME COLUMN modified_time TO media_modified_time;\ + ALTER TABLE %q RENAME COLUMN thumbnail_path TO media_thumbnail_path;\ + ALTER TABLE %q RENAME COLUMN title TO media_title;\ + ALTER TABLE %q RENAME COLUMN album TO media_album;\ + ALTER TABLE %q RENAME COLUMN artist TO media_artist;\ + ALTER TABLE %q RENAME COLUMN album_artist TO media_album_artist;\ + ALTER TABLE %q RENAME COLUMN genre TO media_genre;\ + ALTER TABLE %q RENAME COLUMN composer TO media_composer;\ + ALTER TABLE %q RENAME COLUMN year TO media_year;\ + ALTER TABLE %q RENAME COLUMN recorded_date TO media_recorded_date;\ + ALTER TABLE %q RENAME COLUMN copyright TO media_copyright;\ + ALTER TABLE %q RENAME COLUMN track_num TO media_track_num;\ + ALTER TABLE %q RENAME COLUMN description TO media_description;\ + ALTER TABLE %q RENAME COLUMN bitrate TO media_bitrate;\ + ALTER TABLE %q RENAME COLUMN bitpersample TO media_bitpersample;\ + ALTER TABLE %q RENAME COLUMN samplerate TO media_samplerate;\ + ALTER TABLE %q RENAME COLUMN channel TO media_channel;\ + ALTER TABLE %q RENAME COLUMN duration TO media_duration;\ + ALTER TABLE %q RENAME COLUMN longitude TO media_longitude;\ + ALTER TABLE %q RENAME COLUMN latitude TO media_latitude;\ + ALTER TABLE %q RENAME COLUMN altitude TO media_altitude;\ + ALTER TABLE %q RENAME COLUMN width TO media_width;\ + ALTER TABLE %q RENAME COLUMN height TO media_height;\ + ALTER TABLE %q RENAME COLUMN datetaken TO media_datetaken;\ + ALTER TABLE %q RENAME COLUMN orientation TO media_orientation;\ + ALTER TABLE %q RENAME COLUMN rating TO media_rating;\ + ALTER TABLE %q RENAME COLUMN favourite TO media_favourite;\ + ALTER TABLE %q RENAME COLUMN is_drm TO media_is_drm;\ + ALTER TABLE %q RENAME COLUMN storage_type TO media_storage_type;\ + ALTER TABLE %q RENAME COLUMN timeline TO media_timeline;\ + ALTER TABLE %q RENAME COLUMN is_360 TO media_360;", + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA, + MEDIA_SVC_DB_TABLE_MEDIA); + ret = _media_svc_sql_query(sql, uid); + SQLITE3_SAFE_FREE(sql); + media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to _media_svc_sql_query [%d]", ret); + } - if (cur_version == USER_V7) { - /*face */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN face_id TO media_face_id;\ - ALTER TABLE %q RENAME COLUMN orientation TO face_orientation;\ - ALTER TABLE %q RENAME COLUMN face_tag TO media_face_tag;\ - ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;\ - ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;", - MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_FACE, MEDIA_SVC_DB_TABLE_FACE, - MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_FACE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + return ret; +} - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } +static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid) +{ + int ret = MS_MEDIA_ERR_NONE; + char *sql = NULL; - /*folder */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN modified_time TO folder_modified_time;\ - ALTER TABLE %q RENAME COLUMN path TO folder_path;\ - ALTER TABLE %q RENAME COLUMN name TO folder_name;\ - ALTER TABLE %q RENAME COLUMN name_pinyin TO folder_name_pinyin;\ - ALTER TABLE %q RENAME COLUMN storage_type TO folder_storage_type;\ - ALTER TABLE %q RENAME COLUMN folder_uuid TO folder_id;", - MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, - MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER, MEDIA_SVC_DB_TABLE_FOLDER); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + media_svc_debug_fenter(); - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = _media_svc_init_table_query(MEDIA_SVC_DB_TABLE_MEDIA); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("Query initialization failed [%d]", ret); + goto ERROR; + } - /*storage */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN storage_uuid TO storage_id;", - MEDIA_SVC_DB_TABLE_STORAGE); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + ret = __alter_table(db_handle, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("fail to __alter_table [%d]", ret); + goto ERROR; + } - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + ret = __update_db_from_V6_to_V8(uid); - /*media */ - sql = sqlite3_mprintf("ALTER TABLE %q RENAME COLUMN file_name_pinyin TO media_file_name_pinyin;\ - ALTER TABLE %q RENAME COLUMN title_pinyin TO media_title_pinyin;\ - ALTER TABLE %q RENAME COLUMN album_pinyin TO media_album_pinyin;\ - ALTER TABLE %q RENAME COLUMN artist_pinyin TO media_artist_pinyin;\ - ALTER TABLE %q RENAME COLUMN album_artist_pinyin TO media_album_artist_pinyin;\ - ALTER TABLE %q RENAME COLUMN genre_pinyin TO media_genre_pinyin;\ - ALTER TABLE %q RENAME COLUMN composer_pinyin TO media_composer_pinyin;\ - ALTER TABLE %q RENAME COLUMN copyright_pinyin TO media_copyright_pinyin;\ - ALTER TABLE %q RENAME COLUMN description_pinyin TO media_description_pinyin;\ - ALTER TABLE %q RENAME COLUMN folder_uuid TO folder_id;\ - ALTER TABLE %q RENAME COLUMN media_uuid TO media_id;\ - ALTER TABLE %q RENAME COLUMN path TO media_path;\ - ALTER TABLE %q RENAME COLUMN file_name TO media_display_name;\ - ALTER TABLE %q RENAME COLUMN mime_type TO media_mime_type;\ - ALTER TABLE %q RENAME COLUMN size TO media_size;\ - ALTER TABLE %q RENAME COLUMN added_time TO media_added_time;\ - ALTER TABLE %q RENAME COLUMN modified_time TO media_modified_time;\ - ALTER TABLE %q RENAME COLUMN thumbnail_path TO media_thumbnail_path;\ - ALTER TABLE %q RENAME COLUMN title TO media_title;\ - ALTER TABLE %q RENAME COLUMN album TO media_album;\ - ALTER TABLE %q RENAME COLUMN artist TO media_artist;\ - ALTER TABLE %q RENAME COLUMN album_artist TO media_album_artist;\ - ALTER TABLE %q RENAME COLUMN genre TO media_genre;\ - ALTER TABLE %q RENAME COLUMN composer TO media_composer;\ - ALTER TABLE %q RENAME COLUMN year TO media_year;\ - ALTER TABLE %q RENAME COLUMN recorded_date TO media_recorded_date;\ - ALTER TABLE %q RENAME COLUMN copyright TO media_copyright;\ - ALTER TABLE %q RENAME COLUMN track_num TO media_track_num;\ - ALTER TABLE %q RENAME COLUMN description TO media_description;\ - ALTER TABLE %q RENAME COLUMN bitrate TO media_bitrate;\ - ALTER TABLE %q RENAME COLUMN bitpersample TO media_bitpersample;\ - ALTER TABLE %q RENAME COLUMN samplerate TO media_samplerate;\ - ALTER TABLE %q RENAME COLUMN channel TO media_channel;\ - ALTER TABLE %q RENAME COLUMN duration TO media_duration;\ - ALTER TABLE %q RENAME COLUMN longitude TO media_longitude;\ - ALTER TABLE %q RENAME COLUMN latitude TO media_latitude;\ - ALTER TABLE %q RENAME COLUMN altitude TO media_altitude;\ - ALTER TABLE %q RENAME COLUMN width TO media_width;\ - ALTER TABLE %q RENAME COLUMN height TO media_height;\ - ALTER TABLE %q RENAME COLUMN datetaken TO media_datetaken;\ - ALTER TABLE %q RENAME COLUMN orientation TO media_orientation;\ - ALTER TABLE %q RENAME COLUMN rating TO media_rating;\ - ALTER TABLE %q RENAME COLUMN favourite TO media_favourite;\ - ALTER TABLE %q RENAME COLUMN is_drm TO media_is_drm;\ - ALTER TABLE %q RENAME COLUMN storage_type TO media_storage_type;\ - ALTER TABLE %q RENAME COLUMN timeline TO media_timeline;\ - ALTER TABLE %q RENAME COLUMN is_360 TO media_360;", - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA, - MEDIA_SVC_DB_TABLE_MEDIA); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } + /* Upgrade issue tizen 4.0 to 5.5 */ + if (cur_version == USER_V6) { + ret = __update_db_from_V6_to_V8(uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("fail to __update_db_from_V6_to_V8 [%d]", ret); + goto ERROR; + } + } - ret = _media_svc_sql_query(sql, uid); - SQLITE3_SAFE_FREE(sql); - if (ret != MS_MEDIA_ERR_NONE) { - media_svc_error("_media_svc_sql_query failed"); - goto ERROR; - } + /* Upgrade issue tizen 5.0 to 5.5 */ + if (cur_version < USER_V8) { + ret = __update_db_to_latest(cur_version, uid); + if (ret != MS_MEDIA_ERR_NONE) { + media_svc_error("fail to __update_db_from_V6_to_V8 [%d]", ret); + goto ERROR; } } if (cur_version == USER_V6) { /* Create the removed trigger */ sql = sqlite3_mprintf(MEDIA_SVC_DB_QUERY_TRIGGER, "face_cleanup_face_scan_list", MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, MEDIA_SVC_DB_TABLE_FACE, "media_id", "media_id"); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } ret = _media_svc_sql_query(sql, uid); SQLITE3_SAFE_FREE(sql); @@ -1516,11 +1307,6 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid } sql = sqlite3_mprintf(MEDIA_SVC_DB_QUERY_TRIGGER, "face_scan_list_cleanup_media", MEDIA_SVC_DB_TABLE_MEDIA, MEDIA_SVC_DB_TABLE_FACE_SCAN_LIST, "media_id", "media_id"); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } ret = _media_svc_sql_query(sql, uid); SQLITE3_SAFE_FREE(sql); @@ -1535,11 +1321,6 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid /* Update user version */ sql = sqlite3_mprintf("PRAGMA user_version=%d;", LATEST_VERSION_NUMBER); - if (sql == NULL) { - media_svc_error("Query creation failed"); - ret = MS_MEDIA_ERR_OUT_OF_MEMORY; - goto ERROR; - } ret = _media_svc_sql_query(sql, uid); SQLITE3_SAFE_FREE(sql); diff --git a/src/include/common/media-svc-db-utils.h b/src/include/common/media-svc-db-utils.h index 3462a8b..b25e57b 100755 --- a/src/include/common/media-svc-db-utils.h +++ b/src/include/common/media-svc-db-utils.h @@ -30,7 +30,6 @@ #define SQLITE3_SAFE_FREE(x) {if (x != NULL) {sqlite3_free(x); x = NULL; } } int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid); -int _media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table_name, media_svc_table_slist_e list, uid_t uid); int _media_svc_init_table_query(const char *event_table_name); void _media_svc_destroy_table_query(); int _media_svc_create_media_table_with_id(const char *table_id, uid_t uid); -- 2.7.4