Change Face related DB Schema. add modified_time in face_scan_list, add user_marked... 36/144236/3
authorHaejeong Kim <backto.kim@samsung.com>
Wed, 16 Aug 2017 05:00:06 +0000 (14:00 +0900)
committerHaejeong Kim <backto.kim@samsung.com>
Wed, 16 Aug 2017 22:49:39 +0000 (07:49 +0900)
Change-Id: I936e841016e3bde09565758e0de85770af41c5e4

packaging/libmedia-service.spec
src/common/media-svc-db-utils.c
src/include/common/media-svc-env.h

index b2f5e20..3948a37 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmedia-service
 Summary:    Media information service library for multimedia applications
-Version: 0.3.14
+Version: 0.3.15
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0 and PD
index c9c5d45..0c06bde 100755 (executable)
@@ -787,24 +787,28 @@ int _media_svc_init_table_query(const char *event_table_name)
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
        ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE_SCAN_LIST], "storage_uuid", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, NULL, false, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
+       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE_SCAN_LIST], "modified_time", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V6, NULL, false, false, false);
+       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
        /*face*/
        ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_uuid", MEDIA_SVC_DB_TYPE_TEXT, "PRIMARY KEY", USER_V4, NULL, false, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "media_uuid", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, NULL, false, true, false);
+       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "media_uuid", MEDIA_SVC_DB_TYPE_TEXT, "NOT NULL", USER_V4, NULL, true, true, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_x", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false);
+       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_x", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_y", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false);
+       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_y", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_w", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false);
+       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_w", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
-       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_h", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false);
+       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_rect_h", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, true, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
        ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "orientation", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V4, NULL, false, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
        ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "face_tag", MEDIA_SVC_DB_TYPE_TEXT, NULL, USER_V4, NULL, false, false, false);
        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
+       ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_FACE], "user_marked", MEDIA_SVC_DB_TYPE_INT, "DEFAULT 0", USER_V6, NULL, false, false, false);
+       media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
 
        /*uhd*/
        ret = __media_svc_add_column_info(&column_list[MEDIA_SVC_DB_LIST_UHD], "media_uuid", MEDIA_SVC_DB_TYPE_TEXT, "PRIMARY KEY", USER_V4, NULL, true, true, false);
@@ -1080,6 +1084,8 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid
        int ret = MS_MEDIA_ERR_NONE;
        char *sql = NULL;
 
+       media_svc_debug_fenter();
+
        ret = _media_svc_init_table_query(MEDIA_SVC_DB_TABLE_MEDIA);
        if (ret != MS_MEDIA_ERR_NONE) {
                 media_svc_error("Query initialization failed");
@@ -1228,6 +1234,7 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid
 
        /* Upgrade issue tizen 3.0 to 4.0 */
        if (cur_version < USER_V6) {
+               /******Upgrade Storage Table******/
                /* remove  "storage_account" column */
                sql = sqlite3_mprintf("ALTER TABLE %q RENAME TO %q;", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_TMP_TABLE);
                if (sql == NULL) {
@@ -1277,50 +1284,83 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid
                        goto ERROR;
                }
 
+               /******Upgrade Folder Table******/
                /* remove  "parent_folder_uuid" 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;
+                       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);
                if (ret != MS_MEDIA_ERR_NONE) {
-                        media_svc_error("_media_svc_sql_query failed");
+                       media_svc_error("_media_svc_sql_query failed");
                        goto ERROR;
                }
 
                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");
+                       media_svc_error("_media_svc_make_table_query failed");
                        goto ERROR;
                }
 
                sql = sqlite3_mprintf("INSERT INTO %q (folder_uuid, path, name, modified_time, name_pinyin, storage_type, storage_uuid, folder_order, validity, scan_status) SELECT folder_uuid, path, name, modified_time, name_pinyin, storage_type, storage_uuid, folder_order, validity, scan_status 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;
+                       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);
                if (ret != MS_MEDIA_ERR_NONE) {
-                        media_svc_error("_media_svc_sql_query failed");
+                       media_svc_error("_media_svc_sql_query failed");
                        goto ERROR;
                }
 
                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;
+                       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);
+               if (ret != MS_MEDIA_ERR_NONE) {
+                       media_svc_error("_media_svc_sql_query failed");
+                       goto ERROR;
+               }
+
+               /******Upgrade Face Table******/
+               sql = sqlite3_mprintf("DROP TABLE %q; DROP TABLE %q; ", 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;
+               }
+
+               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_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, MEDIA_SVC_DB_LIST_FACE, uid);
+               if (ret != MS_MEDIA_ERR_NONE) {
+                       media_svc_error("_media_svc_make_table_query failed");
+                       goto ERROR;
+               }
+
        }
 
        /* Rebuilding view */
@@ -1339,6 +1379,8 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid
 
        _media_svc_destroy_table_query();
 
+       media_svc_debug_fleave();
+
        return ret;
 
 ERROR:
index 0a1ef9b..6f279e0 100755 (executable)
@@ -42,10 +42,10 @@ extern "C" {
  */
 #define USER_V1                                                                        1
 #define USER_V2                                                                        2
-#define USER_V3                                                                        3
-#define USER_V4                                                                        4
-#define USER_V5                                                                        5
-#define USER_V6                                                                        6
+#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*/
 
 
 /**