summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinje Ahn <minje.ahn@samsung.com>2019-05-07 14:37:05 +0900
committerMinje Ahn <minje.ahn@samsung.com>2019-05-07 14:52:35 +0900
commitcc13d7d0266221002964bf149ee810a542f5e06a (patch)
treef3182139a4668d4d49e6a490d7a7f4272aa409c8
parent9fc97c52fd60e99d1d56c955f193483f3e3a8c39 (diff)
downloadlibmedia-service-cc13d7d0266221002964bf149ee810a542f5e06a.tar.gz
libmedia-service-cc13d7d0266221002964bf149ee810a542f5e06a.tar.bz2
libmedia-service-cc13d7d0266221002964bf149ee810a542f5e06a.zip
Change-Id: If06c149814c7f75e0b4416c13ee3dd8502330f72 Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
-rw-r--r--packaging/libmedia-service.spec2
-rwxr-xr-xsrc/common/media-svc-db-utils.c263
-rwxr-xr-xsrc/include/common/media-svc-env.h3
3 files changed, 255 insertions, 13 deletions
diff --git a/packaging/libmedia-service.spec b/packaging/libmedia-service.spec
index 6a6ee7a..d82f8c3 100644
--- a/packaging/libmedia-service.spec
+++ b/packaging/libmedia-service.spec
@@ -1,6 +1,6 @@
Name: libmedia-service
Summary: Media information service library for multimedia applications
-Version: 0.4.1
+Version: 0.4.2
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0 and PD
diff --git a/src/common/media-svc-db-utils.c b/src/common/media-svc-db-utils.c
index 0e20c26..adde488 100755
--- a/src/common/media-svc-db-utils.c
+++ b/src/common/media-svc-db-utils.c
@@ -1230,15 +1230,15 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid
/* 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;
+ 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;
}
@@ -1250,29 +1250,270 @@ static int __media_svc_db_upgrade(sqlite3 *db_handle, int cur_version, uid_t uid
sql = sqlite3_mprintf("INSERT INTO %q (storage_uuid, 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;
+ 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");
+ media_svc_error("_media_svc_sql_query failed");
+ goto ERROR;
+ }
+ }
+
+ /* 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;
+ }
+
+ 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;
+ }
+
+ /*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);
+ 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;
+ }
+
+ /*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;
+ }
+
+ 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;
+ }
+
+ /*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;
+ }
+
+ 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;
+ }
+
+ /*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;
+ }
+
+ 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;
+ }
+
+ /*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;
+ }
+
+ 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;
+ }
+
+ /*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 = _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 */
+ 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;
+ }
+
+ 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;
}
}
@@ -1283,8 +1524,8 @@ 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;
+ media_svc_error("Query creation failed");
+ ret = MS_MEDIA_ERR_OUT_OF_MEMORY;
goto ERROR;
}
diff --git a/src/include/common/media-svc-env.h b/src/include/common/media-svc-env.h
index 231f909..42e327a 100755
--- a/src/include/common/media-svc-env.h
+++ b/src/include/common/media-svc-env.h
@@ -34,7 +34,7 @@ extern "C" {
* DB information
*/
-#define LATEST_VERSION_NUMBER 7
+#define LATEST_VERSION_NUMBER 8
/**
* Notice : New table user version -1 : alter table issue
@@ -46,6 +46,7 @@ extern "C" {
#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*/
/**