[ACR-1618] Add API to get media handle by path
[platform/core/api/media-content.git] / src / media_db.c
index b642437..f382923 100755 (executable)
@@ -67,12 +67,6 @@ static const char * __media_db_get_group_name(media_group_e group)
                return DB_FIELD_MEDIA_MODIFIED_DATE;
        case MEDIA_CONTENT_GROUP_MODIFIED_DATE:
                return DB_FIELD_MEDIA_MODIFIED_DATE;
-#endif
-#ifdef _USE_SENIOR_MODE
-       case MEDIA_CONTENT_GROUP_CONTACT:
-               return DB_FIELD_MEDIA_CONTACT;
-#endif
-#ifdef _USE_TVPD_MODE
        case MEDIA_CONTENT_GROUP_ALBUM:
                return DB_FIELD_MEDIA_ALBUM;
        case MEDIA_PVR_GROUP_DURATION:
@@ -210,14 +204,14 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
 
        switch (group_type) {
        case MEDIA_GROUP_ALBUM:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_ALBUM_COUNT, _filter->storage_id);
                else
                        select_query = g_strdup_printf(SELECT_ALBUM_COUNT, DB_VIEW_MEDIA);
                break;
 
        case MEDIA_GROUP_FOLDER:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_FOLDER_COUNT_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id);
                else
                        select_query = g_strdup_printf(SELECT_FOLDER_COUNT, DB_VIEW_MEDIA);
@@ -232,7 +226,7 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
                break;
 
        case MEDIA_GROUP_BOOKMARK:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT, _filter->storage_id);
                else
                        select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT, DB_VIEW_MEDIA);
@@ -244,7 +238,7 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
                break;
 
        case MEDIA_GROUP_FACE:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_FACE_COUNT, _filter->storage_id);
                else
                        select_query = g_strdup_printf(SELECT_FACE_COUNT, DB_VIEW_MEDIA);
@@ -286,17 +280,17 @@ int _media_db_get_media_group_count(media_group_e group, filter_h filter, int *g
        filter_s *_filter = (filter_s *)filter;
 
        if (group < MEDIA_PVR_GROUP_DURATION) { /*media content*/
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_GROUP_COUNT, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_GROUP_COUNT, __media_db_get_group_name(group), DB_VIEW_MEDIA);
        } else if (group < MEDIA_UHD_GROUP_CONTENT_TITLE) { /*pvr content*/
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_GROUP_COUNT_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_GROUP_COUNT, __media_db_get_group_name(group));
        } else { /*uhd content*/
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_UHD_GROUP_COUNT_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_UHD_GROUP_COUNT, __media_db_get_group_name(group));
@@ -336,17 +330,17 @@ int _media_db_get_media_group(media_group_e group, filter_h filter, media_group_
        filter_s *_filter = (filter_s *)filter;
 
        if (group < MEDIA_PVR_GROUP_DURATION) { /*media content */
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_GROUP_LIST, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_GROUP_LIST, __media_db_get_group_name(group), DB_VIEW_MEDIA);
        } else if (group < MEDIA_UHD_GROUP_CONTENT_TITLE) { /*pvr content */
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_GROUP_LIST_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_GROUP_LIST, __media_db_get_group_name(group));
        } else { /* uhd content */
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_UHD_GROUP_LIST_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_UHD_GROUP_LIST, __media_db_get_group_name(group));
@@ -390,17 +384,17 @@ int _media_db_get_media_group_and_count(media_group_e group, filter_h filter, me
        content_retip_if_fail(STRING_VALID(group_name));
 
        if (group < MEDIA_PVR_GROUP_DURATION) { /*media content*/
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_GROUP_AND_COUNT, group_name, _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_GROUP_AND_COUNT, group_name, DB_VIEW_MEDIA);
        } else if (group < MEDIA_UHD_GROUP_CONTENT_TITLE) {/*pvr content*/
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_GROUP_AND_COUNT_BY_STORAGE_ID, group_name, _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_GROUP_AND_COUNT, group_name);
        } else {/*uhd content*/
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_UHD_GROUP_AND_COUNT_BY_STORAGE_ID, group_name, _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_UHD_GROUP_AND_COUNT, group_name);
@@ -446,14 +440,14 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
 
        switch (group_type) {
        case MEDIA_GROUP_ALBUM:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_ALBUM_COUNT_BY_STORAGE_ID, _filter->storage_id);
                else
                        select_query = g_strdup(SELECT_ALBUM_COUNT);
                break;
 
        case MEDIA_GROUP_FOLDER:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_FOLDER_COUNT_BY_STORAGE_ID, _filter->storage_id);
                else
                        select_query = g_strdup(SELECT_FOLDER_COUNT);
@@ -468,7 +462,7 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
                break;
 
        case MEDIA_GROUP_BOOKMARK:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT_BY_STORAGE_ID, _filter->storage_id);
                else
                        select_query = g_strdup(SELECT_BOOKMARK_COUNT);
@@ -480,7 +474,7 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
                break;
 
        case MEDIA_GROUP_FACE:
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        select_query = g_strdup_printf(SELECT_FACE_COUNT_BY_STORAGE_ID, _filter->storage_id);
                else
                        select_query = g_strdup(SELECT_FACE_COUNT);
@@ -520,7 +514,7 @@ int _media_db_get_media_group_count(media_group_e group, filter_h filter, int *g
        char *option_query = NULL;
        filter_s *_filter = (filter_s *)filter;
 
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (_filter && STRING_VALID(_filter->storage_id))
                select_query = g_strdup_printf(SELECT_MEDIA_GROUP_COUNT_BY_STORAGE_ID, __media_db_get_group_name(group), __media_db_get_group_name(group), _filter->storage_id);
        else
                select_query = g_strdup_printf(SELECT_MEDIA_GROUP_COUNT, __media_db_get_group_name(group), __media_db_get_group_name(group));
@@ -555,7 +549,7 @@ int _media_db_get_media_group(media_group_e group, filter_h filter, media_group_
        sqlite3_stmt *stmt = NULL;
        filter_s *_filter = (filter_s *)filter;
 
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (_filter && STRING_VALID(_filter->storage_id))
                select_query = g_strdup_printf(SELECT_MEDIA_GROUP_LIST_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id);
        else
                select_query = g_strdup_printf(SELECT_MEDIA_GROUP_LIST, __media_db_get_group_name(group));
@@ -592,27 +586,31 @@ int _media_db_get_media_group(media_group_e group, filter_h filter, media_group_
 int _media_db_get_album(filter_h filter, media_album_cb callback, void *user_data)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        sqlite3_stmt *stmt = NULL;
        filter_s *_filter = (filter_s *)filter;
 
 #ifdef _USE_TVPD_MODE
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-               snprintf(select_query, sizeof(select_query), SELECT_ALBUM_LIST, _filter->storage_id);
+       if (_filter && STRING_VALID(_filter->storage_id))
+               select_query = g_strdup_printf(SELECT_ALBUM_LIST, _filter->storage_id);
        else
-               snprintf(select_query, sizeof(select_query), SELECT_ALBUM_LIST, DB_VIEW_MEDIA);
+               select_query = g_strdup_printf(SELECT_ALBUM_LIST, DB_VIEW_MEDIA);
 #else
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-               snprintf(select_query, sizeof(select_query), SELECT_ALBUM_LIST_BY_STORAGE_ID, _filter->storage_id);
+       if (_filter && STRING_VALID(_filter->storage_id))
+               select_query = g_strdup_printf(SELECT_ALBUM_LIST_BY_STORAGE_ID, _filter->storage_id);
        else
-               snprintf(select_query, sizeof(select_query), SELECT_ALBUM_LIST);
+               select_query = g_strdup(SELECT_ALBUM_LIST);
 #endif
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
        g_free(condition_query);
        g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -641,27 +639,31 @@ int _media_db_get_album(filter_h filter, media_album_cb callback, void *user_dat
 int _media_db_get_folder(filter_h filter, media_folder_cb callback, void *user_data)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        sqlite3_stmt *stmt = NULL;
        filter_s *_filter = (filter_s *)filter;
 
 #ifdef _USE_TVPD_MODE
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-               snprintf(select_query, sizeof(select_query), SELECT_FOLDER_LIST_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id);
+       if (_filter && STRING_VALID(_filter->storage_id))
+               select_query = g_strdup_printf(SELECT_FOLDER_LIST_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id);
        else
-               snprintf(select_query, sizeof(select_query), SELECT_FOLDER_LIST, DB_VIEW_MEDIA);
+               select_query = g_strdup_printf(SELECT_FOLDER_LIST, DB_VIEW_MEDIA);
 #else
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-               snprintf(select_query, sizeof(select_query), SELECT_FOLDER_LIST_BY_STORAGE_ID, _filter->storage_id);
+       if (_filter && STRING_VALID(_filter->storage_id))
+               select_query = g_strdup_printf(SELECT_FOLDER_LIST_BY_STORAGE_ID, _filter->storage_id);
        else
-               snprintf(select_query, sizeof(select_query), SELECT_FOLDER_LIST);
+               select_query = g_strdup(SELECT_FOLDER_LIST);
 #endif
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
        g_free(condition_query);
        g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -811,7 +813,7 @@ int _media_db_get_tag(const char *media_id, filter_h filter, media_tag_cb callba
 int _media_db_get_bookmark(const char *media_id, filter_h filter, media_bookmark_cb callback, void *user_data)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        sqlite3_stmt *stmt = NULL;
@@ -819,31 +821,35 @@ int _media_db_get_bookmark(const char *media_id, filter_h filter, media_bookmark
 
 #ifdef _USE_TVPD_MODE
        if (STRING_VALID(media_id)) {   //get bookmark by media_id
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_LIST_BY_MEDIA_ID, _filter->storage_id, media_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_LIST_BY_MEDIA_ID, _filter->storage_id, media_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_LIST_BY_MEDIA_ID, DB_VIEW_MEDIA, media_id);
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_LIST_BY_MEDIA_ID, DB_VIEW_MEDIA, media_id);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_LIST, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_LIST, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_LIST, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_LIST, DB_VIEW_MEDIA);
        }
 #else
        if (STRING_VALID(media_id)) {   //get bookmark by media_id
-               snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_LIST_BY_MEDIA_ID, media_id);
+               select_query = g_strdup_printf(SELECT_BOOKMARK_LIST_BY_MEDIA_ID, media_id);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_LIST_BY_STORAGE_ID, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_LIST_BY_STORAGE_ID, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_LIST);
+                       select_query = g_strdup(SELECT_BOOKMARK_LIST);
        }
 #endif
 
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
        g_free(condition_query);
        g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -874,7 +880,7 @@ int _media_db_get_bookmark(const char *media_id, filter_h filter, media_bookmark
 int _media_db_get_face(const char *media_id, filter_h filter, media_face_cb callback, void *user_data)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        sqlite3_stmt *stmt = NULL;
@@ -882,30 +888,34 @@ int _media_db_get_face(const char *media_id, filter_h filter, media_face_cb call
 
 #ifdef _USE_TVPD_MODE
        if (STRING_VALID(media_id)) {   //get face by media_id
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_LIST_BY_MEDIA_ID, _filter->storage_id, media_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_FACE_LIST_BY_MEDIA_ID, _filter->storage_id, media_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_LIST_BY_MEDIA_ID, DB_VIEW_MEDIA, media_id);
+                       select_query = g_strdup_printf(SELECT_FACE_LIST_BY_MEDIA_ID, DB_VIEW_MEDIA, media_id);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_LIST, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_FACE_LIST, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_LIST, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_FACE_LIST, DB_VIEW_MEDIA);
        }
 #else
        if (STRING_VALID(media_id)) {   //get face by media_id
-               snprintf(select_query, sizeof(select_query), SELECT_FACE_LIST_BY_MEDIA_ID, media_id);
+               select_query = g_strdup_printf(SELECT_FACE_LIST_BY_MEDIA_ID, media_id);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_LIST_BY_STORAGE_ID, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_FACE_LIST_BY_STORAGE_ID, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_LIST);
+                       select_query = g_strdup(SELECT_FACE_LIST);
        }
 #endif
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
        g_free(condition_query);
        g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -940,7 +950,7 @@ int _media_db_get_group_item_count_by_id(int group_id, filter_h filter, group_li
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        filter_s *_filter = (filter_s *)filter;
@@ -948,35 +958,39 @@ int _media_db_get_group_item_count_by_id(int group_id, filter_h filter, group_li
        switch (group_type) {
        case MEDIA_GROUP_ALBUM:
 #ifdef _USE_TVPD_MODE
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_ALBUM, _filter->storage_id, group_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM, _filter->storage_id, group_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_ALBUM, DB_VIEW_MEDIA, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM, DB_VIEW_MEDIA, group_id);
 #else
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_ALBUM_BY_STORAGE_ID, group_id, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM_BY_STORAGE_ID, group_id, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_ALBUM, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM, group_id);
 #endif
                break;
 
        case MEDIA_GROUP_PLAYLIST:
-               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_PLAYLIST, group_id);
+               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_PLAYLIST, group_id);
                break;
 
        case MEDIA_GROUP_TAG:
-               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_TAG, group_id);
+               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_TAG, group_id);
                break;
 
        default:
-               content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               content_error("INVALID_PARAMETER");
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
 
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
        g_free(condition_query);
        g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -993,7 +1007,7 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        char *tmp_option = NULL;
@@ -1004,9 +1018,9 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou
        case MEDIA_GROUP_NONE:
                if (!_filter) {
 #ifdef _USE_TVPD_MODE
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE, DB_VIEW_MEDIA);
 #else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE);
+                       select_query = g_strdup(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE);
 #endif
                        break;
                }
@@ -1014,27 +1028,26 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou
                if (_filter->offset < 0 && _filter->count < 0) {
 #ifdef _USE_TVPD_MODE
                        if (STRING_VALID(_filter->storage_id))
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE, _filter->storage_id);
+                               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE, _filter->storage_id);
                        else
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE, DB_VIEW_MEDIA);
+                               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE, DB_VIEW_MEDIA);
 #else
                        if (STRING_VALID(_filter->storage_id))
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE_BY_STORAGE_ID, _filter->storage_id);
+                               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE_BY_STORAGE_ID, _filter->storage_id);
                        else
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE);
+                               select_query = g_strdup(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE);
 #endif
                } else {
 #ifdef _USE_TVPD_MODE
                        if (STRING_VALID(_filter->storage_id))
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, _filter->storage_id);
+                               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA, _filter->storage_id);
                        else
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, DB_VIEW_MEDIA);
+                               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA, DB_VIEW_MEDIA);
 #else
                        if (STRING_VALID(_filter->storage_id))
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_BY_STORAGE_ID, _filter->storage_id);
+                               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_BY_STORAGE_ID, _filter->storage_id);
                        else
-                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA);
-
+                               select_query = g_strdup(SELECT_MEDIA_COUNT_FROM_MEDIA);
 #endif
                        need_bracket = true;
                }
@@ -1043,73 +1056,76 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou
        case MEDIA_GROUP_FOLDER:
 #ifdef _USE_TVPD_MODE
                if (_filter && STRING_VALID(_filter->storage_id))
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_FOLDER, _filter->storage_id, group_name);
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER, _filter->storage_id, group_name);
                else
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
 #else
                if (_filter && STRING_VALID(_filter->storage_id))
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_FOLDER_BY_STORAGE_ID, group_name, _filter->storage_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER_BY_STORAGE_ID, group_name, _filter->storage_id);
                else
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_FOLDER, group_name);
+                       select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER, group_name);
 #endif
                break;
 
        case MEDIA_GROUP_TAG_BY_MEDIA_ID:
-               snprintf(select_query, sizeof(select_query), SELECT_TAG_COUNT_BY_MEDIA_ID, group_name);
+               select_query = g_strdup_printf(SELECT_TAG_COUNT_BY_MEDIA_ID, group_name);
                break;
 
        case MEDIA_GROUP_BOOKMARK_BY_MEDIA_ID:
 #ifdef _USE_TVPD_MODE
                if (_filter && STRING_VALID(_filter->storage_id))
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_BOOKMARK_COUNT_BY_MEDIA_ID, _filter->storage_id, group_name);
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT_BY_MEDIA_ID, _filter->storage_id, group_name);
                else
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_BOOKMARK_COUNT_BY_MEDIA_ID, DB_VIEW_MEDIA, group_name);
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT_BY_MEDIA_ID, DB_VIEW_MEDIA, group_name);
 #else
-               sqlite3_snprintf(sizeof(select_query), select_query, SELECT_BOOKMARK_COUNT_BY_MEDIA_ID, group_name);
+               select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT_BY_MEDIA_ID, group_name);
 #endif
                break;
 
        case MEDIA_GROUP_STORAGE:
 #ifdef _USE_TVPD_MODE
-               sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_STORAGE, group_name, group_name);
+               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_STORAGE, group_name, group_name);
 #else
-               sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_STORAGE, group_name);
+               select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_STORAGE, group_name);
 #endif
                break;
 
        case MEDIA_GROUP_FACE_BY_MEDIA_ID:
 #ifdef _USE_TVPD_MODE
                if (_filter && STRING_VALID(_filter->storage_id))
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_FACE_COUNT_BY_MEDIA_ID, _filter->storage_id, group_name);
+                       select_query = g_strdup_printf(SELECT_FACE_COUNT_BY_MEDIA_ID, _filter->storage_id, group_name);
                else
-                       sqlite3_snprintf(sizeof(select_query), select_query, SELECT_FACE_COUNT_BY_MEDIA_ID, DB_VIEW_MEDIA, group_name);
+                       select_query = g_strdup_printf(SELECT_FACE_COUNT_BY_MEDIA_ID, DB_VIEW_MEDIA, group_name);
 #else
-               sqlite3_snprintf(sizeof(select_query), select_query, SELECT_FACE_COUNT_BY_MEDIA_ID, group_name);
+               select_query = g_strdup_printf(SELECT_FACE_COUNT_BY_MEDIA_ID, group_name);
 #endif
                break;
 
 #ifdef _USE_TVPD_MODE
        case MEDIA_GROUP_PVR:
                if (_filter && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_PVR_COUNT_BY_STORAGE_ID, _filter->storage_id);
+                       select_query = g_strdup_printf(SELECT_PVR_COUNT_BY_STORAGE_ID, _filter->storage_id);
                else
-                       SAFE_STRLCPY(select_query, SELECT_PVR_COUNT, sizeof(select_query));
+                       select_query = g_strdup(SELECT_PVR_COUNT);
                break;
 
        case MEDIA_GROUP_UHD:
                if (_filter && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_UHD_COUNT_BY_STORAGE_ID, _filter->storage_id);
+                       select_query = g_strdup_printf(SELECT_UHD_COUNT_BY_STORAGE_ID, _filter->storage_id);
                else
-                       SAFE_STRLCPY(select_query, SELECT_UHD_COUNT, sizeof(select_query));
+                       select_query = g_strdup(SELECT_UHD_COUNT);
                break;
 #endif
        default:
-               content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               content_error("INVALID_PARAMETER");
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
 
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        if (need_bracket) {
                tmp_option = g_strconcat(option_query, ")", NULL);
@@ -1118,6 +1134,7 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou
        }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
        g_free(condition_query);
        g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -1133,7 +1150,7 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou
 int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb callback, void *user_data, group_list_e group_type)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        sqlite3_stmt *stmt = NULL;
@@ -1142,55 +1159,59 @@ int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb
        switch (group_type) {
        case MEDIA_GROUP_ALBUM:
 #ifdef _USE_TVPD_MODE
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_ALBUM, _filter->storage_id, group_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM, _filter->storage_id, group_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_ALBUM, DB_VIEW_MEDIA, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM, DB_VIEW_MEDIA, group_id);
 #else
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_ALBUM_BY_STORAGE_ID, group_id, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM_BY_STORAGE_ID, group_id, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_ALBUM, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM, group_id);
 #endif
                break;
 
        case MEDIA_GROUP_PLAYLIST:
 #ifdef _USE_TVPD_MODE
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_PLAYLIST, _filter->storage_id, group_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST, _filter->storage_id, group_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_PLAYLIST, DB_VIEW_MEDIA, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST, DB_VIEW_MEDIA, group_id);
 #else
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_PLAYLIST_BY_STORAGE_ID, group_id, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST_BY_STORAGE_ID, group_id, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_PLAYLIST, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST, group_id);
 #endif
                break;
 
        case MEDIA_GROUP_TAG:
 #ifdef _USE_TVPD_MODE
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_TAG, _filter->storage_id, group_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG, _filter->storage_id, group_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_TAG, DB_VIEW_MEDIA, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG, DB_VIEW_MEDIA, group_id);
 #else
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_TAG_BY_STORAGE_ID, group_id, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG_BY_STORAGE_ID, group_id, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_TAG, group_id);
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG, group_id);
 #endif
                break;
 
        default:
-               content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               content_error("INVALID_PARAMETER");
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
 
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
        g_free(condition_query);
        g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -1216,7 +1237,7 @@ int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb
 int _media_db_get_group_item(const char *group_name, filter_h filter, media_info_cb callback, void *user_data, group_list_e group_type)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        sqlite3_stmt *stmt = NULL;
@@ -1225,115 +1246,52 @@ int _media_db_get_group_item(const char *group_name, filter_h filter, media_info
        switch (group_type) {
        case MEDIA_GROUP_NONE:
 #ifdef _USE_TVPD_MODE
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_ITEM, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_ITEM, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_ITEM, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_MEDIA_ITEM, DB_VIEW_MEDIA);
 #else
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_ITEM_BY_STORAGE_ID, _filter->storage_id);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_ITEM_BY_STORAGE_ID, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_ITEM);
+                       select_query = g_strdup(SELECT_MEDIA_ITEM);
 #endif
                break;
 
        case MEDIA_GROUP_FOLDER:
 #ifdef _USE_TVPD_MODE
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_FOLDER, _filter->storage_id, group_name);
+               if (_filter && STRING_VALID(_filter->storage_id))
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_FOLDER, _filter->storage_id, group_name);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
+                       select_query = g_strdup_printf(SELECT_MEDIA_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
 #else
-               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_FOLDER, group_name);
+               select_query = g_strdup_printf(SELECT_MEDIA_FROM_FOLDER, group_name);
 #endif
                break;
 
        case MEDIA_GROUP_STORAGE:
 #ifdef _USE_TVPD_MODE
-               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_STORAGE, group_name, group_name);
+               select_query = g_strdup_printf(SELECT_MEDIA_FROM_STORAGE, group_name, group_name);
 #else
-               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_STORAGE, group_name);
+               select_query = g_strdup_printf(SELECT_MEDIA_FROM_STORAGE, group_name);
 #endif
                break;
 
        default:
-               content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               content_error("INVALID_PARAMETER");
                return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
        }
 
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
-
-       ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
-       g_free(condition_query);
-       g_free(option_query);
-       content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
-
-       while (sqlite3_step(stmt) == SQLITE_ROW) {
-               media_info_s *item = g_new0(media_info_s, 1);
-
-               _media_info_item_get_detail(stmt, (media_info_h)item);
-
-               if (callback((media_info_h)item, user_data) == false) {
-                       media_info_destroy((media_info_h)item);
-                       break;
-               }
-
-               media_info_destroy((media_info_h)item);
-       }
-
-       SQLITE3_FINALIZE(stmt);
-
-       return ret;
-}
-
-#ifdef _USE_SENIOR_MODE
-int _media_db_get_group_item_by_union_select(const char *group_name, filter_h filter1, filter_h filter2, media_info_cb callback, void *user_data)
-{
-       int ret = MEDIA_CONTENT_ERROR_NONE;
-       char select_query1[MAX_QUERY_SIZE] = {0, };
-       char *condition_query1 = NULL;
-       char *option_query1 = NULL;
-       char select_query2[MAX_QUERY_SIZE] = {0, };
-       char *condition_query2 = NULL;
-       char *option_query2 = NULL;
-       sqlite3_stmt *stmt = NULL;
-       filter_s *_filter1 = (filter_s *)filter1;
-       filter_s *_filter2 = (filter_s *)filter2;
-
-       if ((_filter1 != NULL) && STRING_VALID(_filter1->storage_id))
-               snprintf(select_query1, sizeof(select_query1), SELECT_MEDIA_FROM_FOLDER, _filter1->storage_id, group_name);
-       else
-               snprintf(select_query1, sizeof(select_query1), SELECT_MEDIA_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
-
-       ret = __media_db_make_query(filter1, &condition_query1, &option_query1);
-       if (ret != MEDIA_CONTENT_ERROR_NONE) {
-               SAFE_FREE(condition_query1);
-               SAFE_FREE(option_query1);
-               content_error("create select_query1 failed");
-               return ret;
-       }
-
-       if ((_filter2 != NULL) && STRING_VALID(_filter2->storage_id))
-               snprintf(select_query2, sizeof(select_query2), SELECT_MEDIA_FROM_FOLDER, _filter2->storage_id, group_name);
-       else
-               snprintf(select_query2, sizeof(select_query2), SELECT_MEDIA_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
-
-       ret = __media_db_make_query(filter2, &condition_query2, &option_query2);
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
-               SAFE_FREE(condition_query1);
-               SAFE_FREE(option_query1);
-               SAFE_FREE(condition_query2);
-               SAFE_FREE(option_query2);
-               content_error("create select_query2 failed");
+               g_free(select_query);
                return ret;
        }
 
-       ret = _content_query_prepare_by_union_select(&stmt, select_query1, condition_query1, option_query1, select_query2, condition_query2, option_query2);
-       SAFE_FREE(condition_query1);
-       SAFE_FREE(option_query1);
-       SAFE_FREE(condition_query2);
-       SAFE_FREE(option_query2);
+       ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
+       g_free(select_query);
+       g_free(condition_query);
+       g_free(option_query);
        content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
        while (sqlite3_step(stmt) == SQLITE_ROW) {
@@ -1353,7 +1311,6 @@ int _media_db_get_group_item_by_union_select(const char *group_name, filter_h fi
 
        return ret;
 }
-#endif
 
 int _media_db_get_media_group_item_count(const char *group_name, filter_h filter, media_group_e group, int *item_count)
 {
@@ -1367,50 +1324,50 @@ int _media_db_get_media_group_item_count(const char *group_name, filter_h filter
 
 #ifdef _USE_TVPD_MODE
        if (group < MEDIA_PVR_GROUP_DURATION) { /*media content */
-               if (group_name != NULL) {
-                       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (group_name) {
+                       if (_filter && STRING_VALID(_filter->storage_id))
                                sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_GROUP, _filter->storage_id, __media_db_get_group_name(group), group_name);
                        else
                                sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_GROUP, DB_VIEW_MEDIA, __media_db_get_group_name(group), group_name);
                } else {
-                       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+                       if (_filter && STRING_VALID(_filter->storage_id))
                                snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_GROUP_NULL, _filter->storage_id, __media_db_get_group_name(group));
                        else
                                snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_GROUP_NULL, DB_VIEW_MEDIA, __media_db_get_group_name(group));
                }
        } else if (group < MEDIA_UHD_GROUP_CONTENT_TITLE) {/*pvr content*/
-               if (group_name != NULL) {
-                       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (group_name) {
+                       if (_filter && STRING_VALID(_filter->storage_id))
                                sqlite3_snprintf(sizeof(select_query), select_query, SELECT_PVR_COUNT_FROM_GROUP_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group), group_name);
                        else
                                sqlite3_snprintf(sizeof(select_query), select_query, SELECT_PVR_COUNT_FROM_GROUP, __media_db_get_group_name(group), group_name);
                } else {
-                       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+                       if (_filter && STRING_VALID(_filter->storage_id))
                                snprintf(select_query, sizeof(select_query), SELECT_PVR_COUNT_FROM_GROUP_NULL_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group));
                        else
                                snprintf(select_query, sizeof(select_query), SELECT_PVR_COUNT_FROM_GROUP_NULL, __media_db_get_group_name(group));
                }
        } else {/*uhd content*/
-               if (group_name != NULL) {
-                       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (group_name) {
+                       if (_filter && STRING_VALID(_filter->storage_id))
                                sqlite3_snprintf(sizeof(select_query), select_query, SELECT_UHD_COUNT_FROM_GROUP_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group), group_name);
                        else
                                sqlite3_snprintf(sizeof(select_query), select_query, SELECT_UHD_COUNT_FROM_GROUP, __media_db_get_group_name(group), group_name);
                } else {
-                       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+                       if (_filter && STRING_VALID(_filter->storage_id))
                                snprintf(select_query, sizeof(select_query), SELECT_UHD_COUNT_FROM_GROUP_NULL_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group));
                        else
                                snprintf(select_query, sizeof(select_query), SELECT_UHD_COUNT_FROM_GROUP_NULL, __media_db_get_group_name(group));
                }
        }
 #else
-       if (group_name != NULL) {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (group_name) {
+               if (_filter && STRING_VALID(_filter->storage_id))
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_GROUP_BY_STORAGE_ID, __media_db_get_group_name(group), group_name, _filter->storage_id);
                else
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_GROUP, __media_db_get_group_name(group), group_name);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_GROUP_NULL_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_GROUP_NULL, __media_db_get_group_name(group));
@@ -1451,25 +1408,25 @@ int _media_db_get_media_group_item(const char *group_name, filter_h filter, medi
        filter_s *_filter = (filter_s *)filter;
 
 #ifdef _USE_TVPD_MODE
-       if (group_name != NULL) {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (group_name) {
+               if (_filter && STRING_VALID(_filter->storage_id))
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_FROM_GROUP, _filter->storage_id, __media_db_get_group_name(group), group_name);
                else
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_FROM_GROUP, DB_VIEW_MEDIA, __media_db_get_group_name(group), group_name);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_GROUP_NULL, _filter->storage_id, __media_db_get_group_name(group));
                else
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_GROUP_NULL, DB_VIEW_MEDIA, __media_db_get_group_name(group));
        }
 #else
-       if (group_name != NULL) {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (group_name) {
+               if (_filter && STRING_VALID(_filter->storage_id))
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_FROM_GROUP_BY_STORAGE_ID, __media_db_get_group_name(group), group_name, _filter->storage_id);
                else
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_FROM_GROUP, __media_db_get_group_name(group), group_name);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_GROUP_NULL_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id);
                else
                        snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_GROUP_NULL, __media_db_get_group_name(group));
@@ -1570,13 +1527,13 @@ int _media_db_get_pvr_group_item(const char *group_name, filter_h filter, media_
        sqlite3_stmt *stmt = NULL;
        filter_s *_filter = (filter_s *)filter;
 
-       if (group_name != NULL) {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (group_name) {
+               if (_filter && STRING_VALID(_filter->storage_id))
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_PVR_FROM_GROUP_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group), group_name);
                else
                        sqlite3_snprintf(sizeof(select_query), select_query, SELECT_PVR_FROM_GROUP, __media_db_get_group_name(group), group_name);
        } else {
-               if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+               if (_filter && STRING_VALID(_filter->storage_id))
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_FROM_GROUP_NULL_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group));
                else
                        snprintf(select_query, sizeof(select_query), SELECT_PVR_FROM_GROUP_NULL, __media_db_get_group_name(group));
@@ -1724,7 +1681,7 @@ int _media_db_get_pvr(filter_h filter, media_pvr_cb callback, void *user_data)
        sqlite3_stmt *stmt = NULL;
        filter_s *_filter = (filter_s *)filter;
 
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (_filter && STRING_VALID(_filter->storage_id))
                snprintf(select_query, sizeof(select_query), SELECT_PVR_LIST_BY_STORAGE_ID, _filter->storage_id);
        else
                SAFE_STRLCAT(select_query, SELECT_PVR_LIST, sizeof(select_query));
@@ -1800,7 +1757,7 @@ int _media_db_get_uhd(filter_h filter, media_uhd_cb callback, void *user_data)
        sqlite3_stmt *stmt = NULL;
        filter_s *_filter = (filter_s *)filter;
 
-       if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
+       if (_filter && STRING_VALID(_filter->storage_id))
                snprintf(select_query, sizeof(select_query), SELECT_UHD_LIST_BY_STORAGE_ID, _filter->storage_id);
        else
                SAFE_STRLCAT(select_query, SELECT_UHD_LIST, sizeof(select_query));