goto ERROR;
}
- /* Upgrade issue in folder table */
+ /* Upgrade issue in folder table tizen 2.3(unique:path, name, storage_type) to 2.4(unique:path, name, storage_uuid) */
if (cur_version < USER_V4) {
/* Create tmp table */
sql = sqlite3_mprintf("CREATE TABLE '%q' AS SELECT * FROM '%q';", MEDIA_SVC_DB_TABLE_TMP_TABLE, MEDIA_SVC_DB_TABLE_FOLDER);
SQLITE3_SAFE_FREE(sql);
}
+ /* Upgrade issue tizen 3.0 to 4.0 */
+ if (cur_version < USER_V6) {
+ /* 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) {
+ 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_STORAGE, MEDIA_SVC_DB_LIST_STORAGE, uid);
+ if (ret != MS_MEDIA_ERR_NONE) {
+ media_svc_error("_media_svc_make_table_query failed");
+ goto ERROR;
+ }
+
+ sql = sqlite3_mprintf("INSERT INTO %q (storage_uuid, storage_name, storage_path, storage_type, scan_status, validity) SELECT storage_uuid, storage_name, storage_path, storage_type, scan_status, 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;
+ }
+
+ 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;
+ }
+
+ 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;
+ }
+
+ 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;
+ }
+
+ /* 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;
+ 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_FOLDER, MEDIA_SVC_DB_LIST_FOLDER, uid);
+ if (ret != MS_MEDIA_ERR_NONE) {
+ 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;
+ 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;
+ }
+
+ 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;
+ }
+
+ ret = _media_svc_sql_query(sql, uid);
+ SQLITE3_SAFE_FREE(sql);
+ }
+
+ /* Rebuilding view */
ret = __media_svc_rebuild_view_query(db_handle, uid);
+ /* Update user version */
sql = sqlite3_mprintf("PRAGMA user_version=%d;", LATEST_VERSION_NUMBER);
if (sql == NULL) {
media_svc_error("Query creation failed");
sqlite3_stmt *sql_stmt = NULL;
char *sql = NULL;
- sql = sqlite3_mprintf("SELECT * FROM '%s' WHERE storage_uuid=%Q", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_MEDIA);
+ sql = sqlite3_mprintf("SELECT storage_name, storage_path, validity FROM '%s' WHERE storage_uuid=%Q", MEDIA_SVC_DB_TABLE_STORAGE, MEDIA_SVC_DB_TABLE_MEDIA);
ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt);
if (ret != MS_MEDIA_ERR_NONE) {
*validity = 0;
*info_exist = FALSE;
- if (ret == MS_MEDIA_ERR_DB_NO_RECORD)
- *info_exist = FALSE;
-
return ret;
}
- *storage_name = g_strdup((const char *)sqlite3_column_text(sql_stmt, 1));
- *storage_path = g_strdup((const char *)sqlite3_column_text(sql_stmt, 2));
- *validity = sqlite3_column_int(sql_stmt, 6);
+ *storage_name = g_strdup((const char *)sqlite3_column_text(sql_stmt, 0));
+ *storage_path = g_strdup((const char *)sqlite3_column_text(sql_stmt, 1));
+ *validity = sqlite3_column_int(sql_stmt, 2);
*info_exist = TRUE;