Remove user version 24/281424/2 accepted/tizen/unified/20220920.110709
authorminje.ahn <minje.ahn@samsung.com>
Mon, 19 Sep 2022 01:11:09 +0000 (10:11 +0900)
committerminje.ahn <minje.ahn@samsung.com>
Mon, 19 Sep 2022 05:08:44 +0000 (14:08 +0900)
Change-Id: Iad7312f87d013f8fbc659fcf2ec9d9183f2b0ffc
Signed-off-by: minje.ahn <minje.ahn@samsung.com>
include/media-svc.h
packaging/libmedia-service.spec
plugin/media-content-plugin.c
src/common/media-svc-db-utils.c
src/common/media-svc.c
src/include/common/media-svc-db-utils.h
src/include/common/media-svc-env.h

index 3c523c542a4b881471d70fd2880a64e76426a720..ca9b1c140d2b53b4d0c4bf094aee1dab961ddec1 100755 (executable)
@@ -33,7 +33,7 @@ extern "C" {
 #endif
 
 
-int media_svc_get_user_version(sqlite3 *handle, int *user_version);
+int media_svc_check_table_exist(sqlite3 *handle, bool *exist);
 int media_svc_create_table(uid_t uid);
 int media_svc_check_item_exist_by_path(sqlite3 *handle, const char *storage_id, const char *path);
 int media_svc_get_modified_time(sqlite3 *handle, const char *storage_id, const char *path, int *modified_time);
@@ -54,7 +54,6 @@ int media_svc_set_item_validity(const char *path, int validity, uid_t uid);
 int media_svc_delete_item_by_path(sqlite3 *handle, const char *storage_id, const char *path, uid_t uid);
 int media_svc_refresh_item(sqlite3 *handle, bool is_direct, const char *storage_id, ms_user_storage_type_e storage_type, const char *path, uid_t uid);
 int media_svc_send_dir_update_noti(const char *dir_path, const char *folder_id, media_item_update_type_e update_type, int pid);
-int media_svc_check_db_upgrade(sqlite3 *handle, int user_version, uid_t uid);
 int media_svc_publish_noti(media_item_update_type_e update_type, const char *path, media_type_e media_type, const char *uuid, const char *mime_type);
 int media_svc_get_pinyin(const char *src_str, char **pinyin_str);
 int media_svc_check_pinyin_support(bool *support);
index ad00fd534be343a31d3a78486044ded1c7eb4881..5289ddc990e98aab81c16a1fca9be22a171cd298 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmedia-service
 Summary:    Media information service library for multimedia applications
-Version:    0.4.23
+Version:    0.4.24
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0 and PD
index 18995202e3532c680f2de750a25a4412d97d7942..4b5c6ea971e60e833831f38c14aaae35d827b4fc 100755 (executable)
@@ -59,16 +59,14 @@ int send_dir_update_noti(const char *dir_path, const char *folder_id, int update
 int check_db(sqlite3 *handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       int user_version = -1;
+       bool exist = false;
 
-       ret = media_svc_get_user_version(handle, &user_version);
+       ret = media_svc_check_table_exist(handle, &exist);
        if (ret != MS_MEDIA_ERR_NONE)
                return ret;
 
-       if (user_version == 0)
+       if (!exist)
                ret = media_svc_create_table(uid);
-       else
-               ret = media_svc_check_db_upgrade(handle, user_version, uid);
 
        return ret;
 }
index fac20e44cff2a163e99ac2de0b603165dc0d1fcd..17e6302e44c4bdbdfc9273cf7650528533bd75a4 100755 (executable)
@@ -44,8 +44,6 @@ typedef struct {
        char *name;
        char *type;
        char *option;
-       int version;
-       char *index_name;
        bool is_unique;
        bool is_trigger;
        bool is_view;
@@ -85,8 +83,6 @@ static void __add_column_info(GSList **slist,
                                                                const char *name,
                                                                const char *type,
                                                                const char *option,
-                                                               int version,
-                                                               const char *index_name,
                                                                bool is_unique,
                                                                bool is_trigger,
                                                                bool is_view)
@@ -96,8 +92,6 @@ static void __add_column_info(GSList **slist,
        col->name = g_strdup(name);
        col->type = g_strdup(type);
        col->option = g_strdup(option);
-       col->version = version;
-       col->index_name = g_strdup(index_name);
 
        col->is_unique = is_unique;
        col->is_trigger = is_trigger;
@@ -220,35 +214,6 @@ static int __create_tag_view(uid_t uid)
        return ret;
 }
 
-static int __drop_views(uid_t uid)
-{
-       int ret = MS_MEDIA_ERR_NONE;
-       char *sql = NULL;
-
-       sql = sqlite3_mprintf("DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q;DROP VIEW IF EXISTS %q",
-                                                       DB_VIEW_PLAYLIST, DB_VIEW_TAG, DB_VIEW_MEDIA);
-
-       ret = _media_svc_sql_query(sql, uid);
-       SQLITE3_SAFE_FREE(sql);
-
-       return ret;
-}
-
-static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
-{
-       int ret = MS_MEDIA_ERR_NONE;
-
-       /*create playlist_view */
-       ret = __create_playlist_view(uid);
-       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-
-       /*create tag_view */
-       ret = __create_tag_view(uid);
-       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-
-       return MS_MEDIA_ERR_NONE;
-}
-
 int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
@@ -257,11 +222,10 @@ int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e
        column_info_s *col_ptr = NULL;
        char *sql = NULL;
        GString *table_query = g_string_new(NULL);
-       GString *index_query = g_string_new(NULL);
        GString *trigger_query = g_string_new(NULL);
        GString *unique_query = g_string_new(NULL);
 
-       if (!table_query || !index_query || !trigger_query || !unique_query) {
+       if (!table_query || !trigger_query || !unique_query) {
                media_svc_error("g_string_new failed");
                ret = MS_MEDIA_ERR_INTERNAL;
                goto ERROR;
@@ -300,10 +264,6 @@ int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e
                                g_string_append_printf(unique_query, "%s", col_ptr->name);
                }
 
-               /*create index */
-               if (col_ptr->index_name)
-                       g_string_append_printf(index_query, DB_QUERY_INDEX, col_ptr->index_name, table_name, col_ptr->name);
-
                /*create trigger */
                if (col_ptr->is_trigger) {
                        if (STRING_VALID(tb->trigger_name)) {
@@ -333,12 +293,6 @@ int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e
        if (ret != MS_MEDIA_ERR_NONE)
                goto ERROR;
 
-       if (index_query->len > 0) {
-               ret = _media_svc_sql_query(index_query->str, uid);
-               if (ret != MS_MEDIA_ERR_NONE)
-                       goto ERROR;
-       }
-
        if (trigger_query->len > 0) {
                ret = _media_svc_sql_query(trigger_query->str, uid);
                if (ret != MS_MEDIA_ERR_NONE)
@@ -352,8 +306,6 @@ int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e
                ret = __create_tag_view(uid);
 
 ERROR:
-       if (index_query)
-               g_string_free(index_query, TRUE);
        if (trigger_query)
                g_string_free(trigger_query, TRUE);
        if (unique_query)
@@ -364,57 +316,6 @@ ERROR:
        return ret;
 }
 
-/* NOTICE : This function will be used someday.. Do not remove.
-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;
-       GSList *iter = NULL;
-       column_info_s *col_ptr = NULL;
-       char *sql = NULL;
-       char temp[1024] = {0, };
-       int cur_version = 0;
-       sqlite3_stmt *sql_stmt = NULL;
-
-       sql = sqlite3_mprintf("PRAGMA user_version");
-       ret = _media_svc_sql_prepare_to_step(db_handle, sql, &sql_stmt);
-
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("error when get user_version. err = [%d]", ret);
-               return ret;
-       }
-       cur_version = sqlite3_column_int(sql_stmt, 0);
-       SQLITE3_FINALIZE(sql_stmt);
-
-       for (iter = column_list[list]; iter; iter = g_slist_next(iter)) {
-               col_ptr = iter->data;
-
-               if (!col_ptr)
-                       continue;
-
-               if (col_ptr->version > cur_version) {
-                       // alter table
-                       memset(temp, 0, sizeof(temp));
-                       if (col_ptr->option)
-                               snprintf(temp, sizeof(temp), "%s %s %s", col_ptr->name, col_ptr->type, col_ptr->option);
-                       else
-                               snprintf(temp, sizeof(temp), "%s %s", col_ptr->name, col_ptr->type);
-                       sql = sqlite3_mprintf(DB_QUERY_ALTER_TABLE, table_name, temp);
-                       ret = _media_svc_sql_query(sql, uid);
-                       SQLITE3_SAFE_FREE(sql);
-                       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-                       //create index
-                       if (col_ptr->index_name) {
-                               sql = sqlite3_mprintf(DB_QUERY_INDEX, col_ptr->index_name, table_name, col_ptr->name);
-                               ret = _media_svc_sql_query(sql, uid);
-                               SQLITE3_SAFE_FREE(sql);
-                               media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-                       }
-               }
-       }
-
-       return MS_MEDIA_ERR_NONE;
-}
-*/
 static void __media_svc_table_free(gpointer data)
 {
        table_info_s *tb = (table_info_s *) data;
@@ -433,7 +334,6 @@ static void __media_svc_column_free(gpointer data)
        g_free(col->name);
        g_free(col->type);
        g_free(col->option);
-       g_free(col->index_name);
        g_free(col);
 }
 
@@ -459,127 +359,124 @@ int _media_svc_init_table_query(void)
 
        /*insert column info.. */
        /*media*/
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_id", DB_TYPE_TEXT, "PRIMARY KEY", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_path", DB_TYPE_TEXT, "NOT NULL UNIQUE", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_display_name", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_type", DB_TYPE_INT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_mime_type", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_size", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_added_time", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_modified_time", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "folder_id", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_thumbnail_path", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_title", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "album_id", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_artist", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album_artist", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_genre", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_composer", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_year", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_recorded_date", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_copyright", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_track_num", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_description", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_bitrate", DB_TYPE_INT, "DEFAULT -1", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_bitpersample", DB_TYPE_INT, "DEFAULT 0", USER_V3, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_samplerate", DB_TYPE_INT, "DEFAULT -1", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_channel", DB_TYPE_INT, "DEFAULT -1", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_duration", DB_TYPE_INT, "DEFAULT -1", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_longitude", DB_TYPE_DOUBLE, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_latitude", DB_TYPE_DOUBLE, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_altitude", DB_TYPE_DOUBLE, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "exposure_time", DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "fnumber", DB_TYPE_DOUBLE, "DEFAULT 0", USER_V4, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "iso", DB_TYPE_INT, "DEFAULT -1", USER_V4, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "model", DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_width", DB_TYPE_INT, "DEFAULT -1", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_height", DB_TYPE_INT, "DEFAULT -1", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_datetaken", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_orientation", DB_TYPE_INT, "DEFAULT -1", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_rating", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_favourite", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_is_drm", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_storage_type", DB_TYPE_INT, NULL, USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_timeline", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_file_name_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_title_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_artist_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album_artist_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_genre_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_composer_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_copyright_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_description_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       /* storage_uuid column is added in DB v4. When doing DB upgrade to v4, if storage_uuid is NOT NULL, alter table failed. */
-       __add_column_info(&column_list[DB_LIST_MEDIA], "storage_uuid", DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_MEDIA], "validity", DB_TYPE_INT, "DEFAULT 1", USER_V2, NULL, false, false, false);
-       /* color column is added with dcm. (DB v5) */
-       __add_column_info(&column_list[DB_LIST_MEDIA], "media_360", DB_TYPE_INT, "DEFAULT 0", USER_V5, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_id", DB_TYPE_TEXT, "PRIMARY KEY", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_path", DB_TYPE_TEXT, "NOT NULL UNIQUE", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_display_name", DB_TYPE_TEXT, "NOT NULL", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_type", DB_TYPE_INT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_mime_type", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_size", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_added_time", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_modified_time", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "folder_id", DB_TYPE_TEXT, "NOT NULL", false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_thumbnail_path", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_title", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "album_id", DB_TYPE_INT, "DEFAULT 0", false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_artist", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album_artist", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_genre", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_composer", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_year", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_recorded_date", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_copyright", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_track_num", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_description", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_bitrate", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_bitpersample", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_samplerate", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_channel", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_duration", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_longitude", DB_TYPE_DOUBLE, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_latitude", DB_TYPE_DOUBLE, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_altitude", DB_TYPE_DOUBLE, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "exposure_time", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "fnumber", DB_TYPE_DOUBLE, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "iso", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "model", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_width", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_height", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_datetaken", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_orientation", DB_TYPE_INT, "DEFAULT -1", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_rating", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_favourite", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_is_drm", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_storage_type", DB_TYPE_INT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_timeline", DB_TYPE_INT, "DEFAULT 0", false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_file_name_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_title_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_artist_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_album_artist_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_genre_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_composer_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_copyright_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_description_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "storage_uuid", DB_TYPE_TEXT, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "validity", DB_TYPE_INT, "DEFAULT 1", false, false, false);
+       __add_column_info(&column_list[DB_LIST_MEDIA], "media_360", DB_TYPE_INT, "DEFAULT 0", false, false, true);
 
        /*folder*/
-       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_id", DB_TYPE_TEXT, "PRIMARY KEY", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_path", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_name", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_modified_time", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_name_pinyin", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_storage_type", DB_TYPE_INT, NULL, USER_V2, NULL, false, false, false);
-       /* storage_uuid column is added in DB v4. When doing DB upgrade to v4, if storage_uuid is NOT NULL, alter table failed. */
-       __add_column_info(&column_list[DB_LIST_FOLDER], "storage_uuid", DB_TYPE_TEXT, NULL, USER_V4, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_FOLDER], "validity", DB_TYPE_INT, "DEFAULT 1", USER_V4, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_id", DB_TYPE_TEXT, "PRIMARY KEY", false, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_path", DB_TYPE_TEXT, "NOT NULL", true, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_name", DB_TYPE_TEXT, "NOT NULL", false, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_modified_time", DB_TYPE_INT, "DEFAULT 0", false, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_name_pinyin", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "folder_storage_type", DB_TYPE_INT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "storage_uuid", DB_TYPE_TEXT, NULL, true, false, false);
+       __add_column_info(&column_list[DB_LIST_FOLDER], "validity", DB_TYPE_INT, "DEFAULT 1", false, false, false);
 
        /*playlist_map*/
-       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "playlist_id", DB_TYPE_INT, "NOT NULL", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "media_id", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, false, true, false);
-       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "playlist_member_order", DB_TYPE_INT, "NOT NULL", USER_V2, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", false, false, true);
+       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "playlist_id", DB_TYPE_INT, "NOT NULL", false, false, false);
+       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "media_id", DB_TYPE_TEXT, "NOT NULL", false, true, false);
+       __add_column_info(&column_list[DB_LIST_PLAYLIST_MAP], "playlist_member_order", DB_TYPE_INT, "NOT NULL", false, false, true);
 
        /*playlist*/
-       __add_column_info(&column_list[DB_LIST_PLAYLIST], "playlist_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", USER_V2, NULL, false, true, true);
-       __add_column_info(&column_list[DB_LIST_PLAYLIST], "playlist_name", DB_TYPE_TEXT, "NOT NULL UNIQUE", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_PLAYLIST], "thumbnail_path", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_PLAYLIST], "playlist_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", false, true, true);
+       __add_column_info(&column_list[DB_LIST_PLAYLIST], "playlist_name", DB_TYPE_TEXT, "NOT NULL UNIQUE", false, false, true);
+       __add_column_info(&column_list[DB_LIST_PLAYLIST], "thumbnail_path", DB_TYPE_TEXT, NULL, false, false, true);
 
        /*album*/
-       __add_column_info(&column_list[DB_LIST_ALBUM], "album_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", USER_V2, NULL, false, true, false);
-       __add_column_info(&column_list[DB_LIST_ALBUM], "name", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_ALBUM], "artist", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_ALBUM], "album_art", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_ALBUM], "album_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", false, true, false);
+       __add_column_info(&column_list[DB_LIST_ALBUM], "name", DB_TYPE_TEXT, "NOT NULL", false, false, false);
+       __add_column_info(&column_list[DB_LIST_ALBUM], "artist", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_ALBUM], "album_art", DB_TYPE_TEXT, NULL, false, false, false);
 
        /*tag_map*/
-       __add_column_info(&column_list[DB_LIST_TAG_MAP], "_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", USER_V2, NULL, false, false, true);
-       __add_column_info(&column_list[DB_LIST_TAG_MAP], "tag_id", DB_TYPE_INT, "NOT NULL", USER_V2, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_TAG_MAP], "media_id", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, true, true, false);
+       __add_column_info(&column_list[DB_LIST_TAG_MAP], "_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", false, false, true);
+       __add_column_info(&column_list[DB_LIST_TAG_MAP], "tag_id", DB_TYPE_INT, "NOT NULL", true, false, false);
+       __add_column_info(&column_list[DB_LIST_TAG_MAP], "media_id", DB_TYPE_TEXT, "NOT NULL", true, true, false);
 
        /*tag*/
-       __add_column_info(&column_list[DB_LIST_TAG], "tag_id ", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", USER_V2, NULL, false, true, true);
-       __add_column_info(&column_list[DB_LIST_TAG], "tag_name", DB_TYPE_TEXT, "NOT NULL UNIQUE", USER_V2, NULL, false, false, true);
+       __add_column_info(&column_list[DB_LIST_TAG], "tag_id ", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", false, true, true);
+       __add_column_info(&column_list[DB_LIST_TAG], "tag_name", DB_TYPE_TEXT, "NOT NULL UNIQUE", false, false, true);
 
        /*bookmark*/
-       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_BOOKMARK], "media_id", DB_TYPE_TEXT, "NOT NULL", USER_V2, NULL, true, true, false);
-       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_marked_time", DB_TYPE_INT, "DEFAULT 0", USER_V2, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_thumbnail_path", DB_TYPE_TEXT, NULL, USER_V2, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_name", DB_TYPE_TEXT, NULL, USER_V6, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", false, false, false);
+       __add_column_info(&column_list[DB_LIST_BOOKMARK], "media_id", DB_TYPE_TEXT, "NOT NULL", true, true, false);
+       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_marked_time", DB_TYPE_INT, "DEFAULT 0", true, false, false);
+       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_thumbnail_path", DB_TYPE_TEXT, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_BOOKMARK], "bookmark_name", DB_TYPE_TEXT, NULL, false, false, false);
 
        /*storage*/
-       __add_column_info(&column_list[DB_LIST_STORAGE], "storage_id", DB_TYPE_TEXT, "PRIMARY KEY", USER_V3, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_STORAGE], "storage_path", DB_TYPE_TEXT, "NOT NULL", USER_V3, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_STORAGE], "storage_type", DB_TYPE_INT, "DEFAULT 0", USER_V3, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_STORAGE], "validity", DB_TYPE_INT, "DEFAULT 1", USER_V3, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_STORAGE], "storage_id", DB_TYPE_TEXT, "PRIMARY KEY", false, false, false);
+       __add_column_info(&column_list[DB_LIST_STORAGE], "storage_path", DB_TYPE_TEXT, "NOT NULL", false, false, false);
+       __add_column_info(&column_list[DB_LIST_STORAGE], "storage_type", DB_TYPE_INT, "DEFAULT 0", false, false, false);
+       __add_column_info(&column_list[DB_LIST_STORAGE], "validity", DB_TYPE_INT, "DEFAULT 1", false, false, false);
 
        /*face scan list*/
-       __add_column_info(&column_list[DB_LIST_FACE_SCAN_LIST], "media_id", DB_TYPE_TEXT, "NOT NULL UNIQUE", USER_V4, NULL, false, true, false);
-       __add_column_info(&column_list[DB_LIST_FACE_SCAN_LIST], "modified_time", DB_TYPE_INT, "DEFAULT 0", USER_V6, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE_SCAN_LIST], "media_id", DB_TYPE_TEXT, "NOT NULL UNIQUE", false, true, false);
+       __add_column_info(&column_list[DB_LIST_FACE_SCAN_LIST], "modified_time", DB_TYPE_INT, "DEFAULT 0", false, false, false);
 
        /*face*/
-       __add_column_info(&column_list[DB_LIST_FACE], "media_face_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", USER_V4, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_FACE], "media_id", DB_TYPE_TEXT, "NOT NULL", USER_V4, NULL, true, true, false);
-       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_x", DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_y", DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_w", DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_h", DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
-       __add_column_info(&column_list[DB_LIST_FACE], "face_orientation", DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false);
-       __add_column_info(&column_list[DB_LIST_FACE], "media_face_tag", DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "media_face_id", DB_TYPE_INT, "PRIMARY KEY AUTOINCREMENT", false, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "media_id", DB_TYPE_TEXT, "NOT NULL", true, true, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_x", DB_TYPE_INT, "DEFAULT 0", true, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_y", DB_TYPE_INT, "DEFAULT 0", true, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_w", DB_TYPE_INT, "DEFAULT 0", true, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "face_rect_h", DB_TYPE_INT, "DEFAULT 0", true, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "face_orientation", DB_TYPE_INT, "DEFAULT 0", false, false, false);
+       __add_column_info(&column_list[DB_LIST_FACE], "media_face_tag", DB_TYPE_TEXT, NULL, false, false, false);
 
        return ret;
 }
@@ -595,108 +492,6 @@ void _media_svc_destroy_table_query(void)
        for (i = 0; i < DB_LIST_MAX; i++)
                g_slist_free_full(column_list[i], __media_svc_column_free);
 }
-/* NOTICE : This function will be used someday.. Do not remove.
-static int __alter_table(sqlite3 *db_handle, uid_t uid)
-{
-       int ret = MS_MEDIA_ERR_NONE;
-
-       ret = __media_svc_upgrade_table_query(db_handle, DB_TABLE_MEDIA, 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_upgrade_table_query(db_handle, DB_TABLE_PLAYLIST_MAP, 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, DB_TABLE_PLAYLIST, 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, DB_TABLE_ALBUM, 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, DB_TABLE_TAG_MAP, 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, DB_TABLE_TAG, 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, DB_TABLE_BOOKMARK, 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, DB_TABLE_STORAGE, DB_LIST_STORAGE, uid);
-       media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "fail to __media_svc_upgrade_table_query [%d]", ret);
-
-       return ret;
-}
-*/
-static void __media_svc_merge_table(gpointer data, gpointer user_data)
-{
-       int ret = MS_MEDIA_ERR_NONE;
-       uid_t uid = GPOINTER_TO_INT(user_data);
-       char *storage_id = (char *)data;
-       char *sql = sqlite3_mprintf("INSERT INTO %q SELECT * FROM %Q;DROP TABLE %Q;", DB_TABLE_MEDIA, storage_id, storage_id);
-
-       ret = _media_svc_sql_query(sql, uid);
-       SQLITE3_SAFE_FREE(sql);
-       if (ret != MS_MEDIA_ERR_NONE)
-               media_svc_error("Merge failed[%s]", storage_id);
-}
-
-static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid)
-{
-       int ret = MS_MEDIA_ERR_NONE;
-       char *sql = NULL;
-       char *storage_id = NULL;
-       sqlite3_stmt *stmt = NULL;
-       GPtrArray *storage_list = NULL;
-
-       /* Basic upgrade routine
-               1. Drop views (No need if media, playlist, playlist_map, tag, tag_map tables are not changed.)
-               2. Alter table(add columns, remove columns, change naming, and etc.)
-               3. Rebuild views (If views are dropped)
-       */
-       media_svc_debug_fenter();
-
-       /* drop view */
-       ret = __drop_views(uid);
-       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-
-       /* Insert items in external tables into media table, and drop external tables (5.5 to 6.0)*/
-       sql = sqlite3_mprintf("SELECT storage_id FROM %q", DB_TABLE_STORAGE);
-
-       ret = media_db_get_result(db_handle, sql, &stmt);
-       media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "Query failed. err[%d]", ret);
-
-       while (sqlite3_step(stmt) == SQLITE_ROW) {
-               if (!storage_list)
-                       storage_list = g_ptr_array_new_with_free_func(g_free);
-
-               storage_id = g_strdup((const char *)sqlite3_column_text(stmt, 0));
-               g_ptr_array_add(storage_list, storage_id);
-       }
-
-       SQLITE3_FINALIZE(stmt);
-
-       if (storage_list) {
-               g_ptr_array_foreach(storage_list, __media_svc_merge_table, GINT_TO_POINTER(uid));
-               g_ptr_array_free(storage_list, TRUE);
-       }
-
-       /* Rebuilding view */
-       ret = _media_svc_init_table_query();
-       media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "_media_svc_init_table_query failed");
-       ret = __media_svc_rebuild_view_query(db_handle, uid);
-       _media_svc_destroy_table_query();
-       media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "__media_svc_rebuild_view_query failed");
-
-       /* Update user version */
-       sql = sqlite3_mprintf("PRAGMA user_version=%d;", LATEST_DB_VERSION);
-       media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "Query failed. err[%d]", ret);
-       ret = _media_svc_sql_query(sql, uid);
-       SQLITE3_SAFE_FREE(sql);
-
-       media_svc_debug_fleave();
-
-       return ret;
-}
 
 int _media_svc_sql_query(const char *sql_str, uid_t uid)
 {
@@ -751,19 +546,16 @@ int _media_svc_sql_query_direct(const char *sql_str, uid_t uid)
        return ret;
 }
 
-int _media_svc_get_user_version(sqlite3 *db_handle, int *user_version)
+int _media_svc_check_table_exist(sqlite3 *db_handle, bool *exist)
 {
        int ret = MS_MEDIA_ERR_NONE;
        sqlite3_stmt *sql_stmt = NULL;
-       char *sql = sqlite3_mprintf("PRAGMA user_version;");
+       char *sql = sqlite3_mprintf("SELECT name FROM sqlite_master WHERE type='table' AND name=%Q;", DB_TABLE_MEDIA);
 
-       ret = _media_svc_sql_prepare_to_step(db_handle, sql, &sql_stmt);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("error when get user_version.");
-               return ret;
-       }
+       ret = _media_svc_sql_prepare_to_step_simple(db_handle, sql, &sql_stmt);
+       media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "_media_svc_sql_prepare_to_step_simple failed");
 
-       *user_version = sqlite3_column_int(sql_stmt, 0);
+       *exist = (sqlite3_data_count(sql_stmt) > 0);
        SQLITE3_FINALIZE(sql_stmt);
 
        return MS_MEDIA_ERR_NONE;
@@ -958,13 +750,3 @@ void _media_svc_sql_query_release(GList **query_list)
                *query_list = NULL;
        }
 }
-
-int _media_svc_check_db_upgrade(sqlite3 *db_handle, int user_version, uid_t uid)
-{
-       if (user_version < LATEST_DB_VERSION) {
-               media_svc_error("Upgrade media DB from (%d) to (%d)", user_version, LATEST_DB_VERSION);
-               return __media_svc_db_upgrade(db_handle, user_version, uid);
-       } else {
-               return MS_MEDIA_ERR_NONE;
-       }
-}
index 59fee8328cd3032f5757fe80ce0b8e6208cfcb82..2ed7b8ca0d10054ca0e19dcc2444142974a87a73 100755 (executable)
@@ -41,16 +41,14 @@ static __thread bool g_insert_with_noti = false;
 
 #define BATCH_ITEM_COUNT_MAX 100
 
-int media_svc_get_user_version(sqlite3 *handle, int *user_version)
+int media_svc_check_table_exist(sqlite3 *handle, bool *exist)
 {
-       return _media_svc_get_user_version(handle, user_version);
+       return _media_svc_check_table_exist(handle, exist);
 }
 
 int media_svc_create_table(uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       char *sql = NULL;
-
        media_svc_debug_fenter();
 
        ret = _media_svc_init_table_query();
@@ -134,14 +132,6 @@ int media_svc_create_table(uid_t uid)
                media_svc_error("_media_svc_make_table_query fail.");
                goto ERROR;
        }
-
-       sql = sqlite3_mprintf("pragma user_version = %d;", LATEST_DB_VERSION);
-       ret = _media_svc_sql_query(sql, uid);
-       SQLITE3_SAFE_FREE(sql);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("user_version update fail.");
-               goto ERROR;
-       }
 ERROR:
        _media_svc_destroy_table_query();
 
@@ -578,13 +568,6 @@ int media_svc_send_dir_update_noti(const char *dir_path, const char *folder_id,
        return _media_svc_publish_dir_noti(update_type, dir_path, folder_id, pid);
 }
 
-int media_svc_check_db_upgrade(sqlite3 *handle, int user_version, uid_t uid)
-{
-       media_svc_debug_fenter();
-
-       return _media_svc_check_db_upgrade(handle, user_version, uid);
-}
-
 static void __media_svc_noti_all_storage(sqlite3 *handle, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
index 0f56259919874c2ceb5ce2de58c904a1d8438e2a..88c728e2e591a6d5a0fbdbec3bed5792b42ee590 100755 (executable)
@@ -35,13 +35,12 @@ int _media_svc_init_table_query(void);
 void _media_svc_destroy_table_query(void);
 int _media_svc_sql_query(const char *sql_str, uid_t uid);
 int _media_svc_sql_query_direct(const char *sql_str, uid_t uid);
-int _media_svc_get_user_version(sqlite3 *db_handle, int *user_version);
+int _media_svc_check_table_exist(sqlite3 *db_handle, bool *exist);
 int _media_svc_sql_prepare_to_step(sqlite3 *handle, const char *sql_str, sqlite3_stmt **stmt);
 int _media_svc_sql_prepare_to_step_simple(sqlite3 *handle, const char *sql_str, sqlite3_stmt **stmt);
 int _media_svc_sql_query_list(GList **query_list, uid_t uid);
 int _media_svc_sql_query_list_direct(GList **query_list, uid_t uid);
 void _media_svc_sql_query_add(GList **query_list, char **query);
 void _media_svc_sql_query_release(GList **query_list);
-int _media_svc_check_db_upgrade(sqlite3 *db_handle, int user_version, uid_t uid);
 
 #endif /*_MEDIA_SVC_DB_UTILS_H_*/
index c4402746564596b70b76e7f1e583b149ec4d47e9..f722ba4697ffe779a456726b4e4526d66f1ffce4 100755 (executable)
 extern "C" {
 #endif
 
-/**
- * Notice : New table user version -1 : alter table issue
- */
-#define USER_V1                                                                        1
-#define USER_V2                                                                        2
-#define USER_V3                                                                        3       /** Tizen 2.3*/
-#define USER_V4                                                                        4       /** Tizen 2.4*/
-#define USER_V5                                                                        5       /** Tizen 3.0*/
-#define USER_V6                                                                        6       /** Tizen 4.0*/
-#define USER_V7                                                                        7       /** Tizen 5.0*/
-#define USER_V8                                                                        8       /** Tizen 5.5*/
-#define USER_V9                                                                        9       /** Tizen 6.0*/
-
-/**
- * DB information
- */
-
-#define LATEST_DB_VERSION                                      USER_V9
-
-
 /**
  * DB table information
  */