#include <media_info_private.h>
#include <media_util_private.h>
-static char * __media_db_get_group_name(media_group_e group)
+static const char * __media_db_get_group_name(media_group_e group)
{
switch (group) {
case MEDIA_CONTENT_GROUP_DISPLAY_NAME:
- return (char *)DB_FIELD_MEDIA_DISPLAY_NAME;
+ return DB_FIELD_MEDIA_DISPLAY_NAME;
case MEDIA_CONTENT_GROUP_TYPE:
- return (char *)DB_FIELD_MEDIA_TYPE;
+ return DB_FIELD_MEDIA_TYPE;
case MEDIA_CONTENT_GROUP_MIME_TYPE:
- return (char *) DB_FIELD_MEDIA_MIME_TYPE;
+ return DB_FIELD_MEDIA_MIME_TYPE;
case MEDIA_CONTENT_GROUP_SIZE:
- return (char *) DB_FIELD_MEDIA_SIZE;
+ return DB_FIELD_MEDIA_SIZE;
case MEDIA_CONTENT_GROUP_ADDED_TIME:
- return (char *) DB_FIELD_MEDIA_ADDED_TIME;
+ return DB_FIELD_MEDIA_ADDED_TIME;
case MEDIA_CONTENT_GROUP_MODIFIED_TIME:
- return (char *) DB_FIELD_MEDIA_MODIFIED_TIME;
+ return DB_FIELD_MEDIA_MODIFIED_TIME;
case MEDIA_CONTENT_GROUP_TITLE:
- return (char *) DB_FIELD_MEDIA_TITLE;
+ return DB_FIELD_MEDIA_TITLE;
case MEDIA_CONTENT_GROUP_ARTIST:
- return (char *) DB_FIELD_MEDIA_ARTIST;
+ return DB_FIELD_MEDIA_ARTIST;
case MEDIA_CONTENT_GROUP_ALBUM_ARTIST:
- return (char *) DB_FIELD_MEDIA_ALBUM_ARTIST;
+ return DB_FIELD_MEDIA_ALBUM_ARTIST;
case MEDIA_CONTENT_GROUP_GENRE:
- return (char *) DB_FIELD_MEDIA_GENRE;
+ return DB_FIELD_MEDIA_GENRE;
case MEDIA_CONTENT_GROUP_COMPOSER:
- return (char *) DB_FIELD_MEDIA_COMPOSER;
+ return DB_FIELD_MEDIA_COMPOSER;
case MEDIA_CONTENT_GROUP_YEAR:
- return (char *) DB_FIELD_MEDIA_YEAR;
+ return DB_FIELD_MEDIA_YEAR;
case MEDIA_CONTENT_GROUP_RECORDED_DATE:
- return (char *) DB_FIELD_MEDIA_RECORDED_DATE;
+ return DB_FIELD_MEDIA_RECORDED_DATE;
case MEDIA_CONTENT_GROUP_COPYRIGHT:
- return (char *) DB_FIELD_MEDIA_COPYRIGHT;
+ return DB_FIELD_MEDIA_COPYRIGHT;
case MEDIA_CONTENT_GROUP_TRACK_NUM:
- return (char *) DB_FIELD_MEDIA_TRACK_NUM;
+ return DB_FIELD_MEDIA_TRACK_NUM;
case MEDIA_CONTENT_GROUP_DESCRIPTION:
- return (char *) DB_FIELD_MEDIA_DESCRIPTION;
+ return DB_FIELD_MEDIA_DESCRIPTION;
case MEDIA_CONTENT_GROUP_LONGITUDE:
- return (char *) DB_FIELD_MEDIA_LONGITUDE;
+ return DB_FIELD_MEDIA_LONGITUDE;
case MEDIA_CONTENT_GROUP_LATITUDE:
- return (char *) DB_FIELD_MEDIA_LATITUDE;
+ return DB_FIELD_MEDIA_LATITUDE;
case MEDIA_CONTENT_GROUP_ALTITUDE:
- return (char *) DB_FIELD_MEDIA_ALTITUDE;
+ return DB_FIELD_MEDIA_ALTITUDE;
case MEDIA_CONTENT_GROUP_RATING:
- return (char *) DB_FIELD_MEDIA_RATING;
+ return DB_FIELD_MEDIA_RATING;
#ifdef _USE_TVPD_MODE
case MEDIA_CONTENT_GROUP_MODIFIED_MONTH:
- return (char *) DB_FIELD_MEDIA_MODIFIED_DATE;
+ return DB_FIELD_MEDIA_MODIFIED_DATE;
case MEDIA_CONTENT_GROUP_MODIFIED_DATE:
- return (char *) DB_FIELD_MEDIA_MODIFIED_DATE;
+ return DB_FIELD_MEDIA_MODIFIED_DATE;
#endif
#ifdef _USE_SENIOR_MODE
case MEDIA_CONTENT_GROUP_CONTACT:
- return (char *) DB_FIELD_MEDIA_CONTACT;
+ return DB_FIELD_MEDIA_CONTACT;
#endif
#ifdef _USE_TVPD_MODE
case MEDIA_CONTENT_GROUP_ALBUM:
- return (char *) DB_FIELD_MEDIA_ALBUM;
+ return DB_FIELD_MEDIA_ALBUM;
case MEDIA_PVR_GROUP_DURATION:
- return (char *) DB_FIELD_PVR_DURATION;
+ return DB_FIELD_PVR_DURATION;
case MEDIA_PVR_GROUP_TIME_ZONE:
- return (char *) DB_FIELD_PVR_TIME_ZONE;
+ return DB_FIELD_PVR_TIME_ZONE;
case MEDIA_PVR_GROUP_PTC:
- return (char *) DB_FIELD_PVR_PTC;
+ return DB_FIELD_PVR_PTC;
case MEDIA_PVR_GROUP_MAJOR:
- return (char *) DB_FIELD_PVR_MAJOR;
+ return DB_FIELD_PVR_MAJOR;
case MEDIA_PVR_GROUP_MINOR:
- return (char *) DB_FIELD_PVR_MINOR;
+ return DB_FIELD_PVR_MINOR;
case MEDIA_PVR_GROUP_CHANNEL_TYPE:
- return (char *) DB_FIELD_PVR_CHANNEL_TYPE;
+ return DB_FIELD_PVR_CHANNEL_TYPE;
case MEDIA_PVR_GROUP_CHANNEL_NAME:
- return (char *) DB_FIELD_PVR_CHANNEL_NAME;
+ return DB_FIELD_PVR_CHANNEL_NAME;
case MEDIA_PVR_GROUP_CHANNEL_NUM:
- return (char *) DB_FIELD_PVR_CHANNEL_NUM;
+ return DB_FIELD_PVR_CHANNEL_NUM;
case MEDIA_PVR_GROUP_PROGRAM_TITLE:
- return (char *) DB_FIELD_PVR_PROGRAM_TITLE;
+ return DB_FIELD_PVR_PROGRAM_TITLE;
case MEDIA_PVR_GROUP_PROGRAM_NUM:
- return (char *) DB_FIELD_PVR_PROGRAM_NUM;
+ return DB_FIELD_PVR_PROGRAM_NUM;
case MEDIA_PVR_GROUP_PROGRAM_CRID:
- return (char *) DB_FIELD_PVR_PROGRAM_CRID;
+ return DB_FIELD_PVR_PROGRAM_CRID;
case MEDIA_PVR_GROUP_GUIDANCE:
- return (char *) DB_FIELD_PVR_GUIDANCE;
+ return DB_FIELD_PVR_GUIDANCE;
case MEDIA_PVR_GROUP_SYNOPSIS:
- return (char *) DB_FIELD_PVR_SYNOPSIS;
+ return DB_FIELD_PVR_SYNOPSIS;
case MEDIA_PVR_GROUP_GENRE:
- return (char *) DB_FIELD_PVR_GENRE;
+ return DB_FIELD_PVR_GENRE;
case MEDIA_PVR_GROUP_LANGUAGE:
- return (char *) DB_FIELD_PVR_LANGUAGE;
+ return DB_FIELD_PVR_LANGUAGE;
case MEDIA_PVR_GROUP_EMBARGO_TIME:
- return (char *) DB_FIELD_PVR_EMBARGO_TIME;
+ return DB_FIELD_PVR_EMBARGO_TIME;
case MEDIA_PVR_GROUP_EXPIRY_TIME:
- return (char *) DB_FIELD_PVR_EXPIRY_TIME;
+ return DB_FIELD_PVR_EXPIRY_TIME;
case MEDIA_PVR_GROUP_START_TIME:
- return (char *) DB_FIELD_PVR_START_TIME;
+ return DB_FIELD_PVR_START_TIME;
case MEDIA_PVR_GROUP_PROGRAM_START_TIME:
- return (char *) DB_FIELD_PVR_PROGRAM_START_TIME;
+ return DB_FIELD_PVR_PROGRAM_START_TIME;
case MEDIA_PVR_GROUP_PROGRAM_END_TIME:
- return (char *) DB_FIELD_PVR_PROGRAM_END_TIME;
+ return DB_FIELD_PVR_PROGRAM_END_TIME;
case MEDIA_PVR_GROUP_PROGRAM_DATE:
- return (char *) DB_FIELD_PVR_PROGRAM_DATE;
+ return DB_FIELD_PVR_PROGRAM_DATE;
case MEDIA_PVR_GROUP_PARENTAL_RATING:
- return (char *) DB_FIELD_PVR_PARENTAL_RATING;
+ return DB_FIELD_PVR_PARENTAL_RATING;
case MEDIA_PVR_GROUP_TIMER_RECORD:
- return (char *) DB_FIELD_PVR_TIMER_RECORD;
+ return DB_FIELD_PVR_TIMER_RECORD;
case MEDIA_PVR_GROUP_SERIES_RECORD:
- return (char *) DB_FIELD_PVR_SERIES_RECORD;
+ return DB_FIELD_PVR_SERIES_RECORD;
case MEDIA_PVR_GROUP_HD:
- return (char *) DB_FIELD_PVR_HD;
+ return DB_FIELD_PVR_HD;
case MEDIA_PVR_GROUP_SUBTITLE:
- return (char *) DB_FIELD_PVR_SUBTITLE;
+ return DB_FIELD_PVR_SUBTITLE;
case MEDIA_PVR_GROUP_TTX:
- return (char *) DB_FIELD_PVR_TTX;
+ return DB_FIELD_PVR_TTX;
case MEDIA_PVR_GROUP_AD:
- return (char *) DB_FIELD_PVR_AD;
+ return DB_FIELD_PVR_AD;
case MEDIA_PVR_GROUP_HARDOF_HEARINGRADIO:
- return (char *) DB_FIELD_PVR_HARDOF_HEARINGRADIO;
+ return DB_FIELD_PVR_HARDOF_HEARINGRADIO;
case MEDIA_PVR_GROUP_DATA_SERVICE:
- return (char *) DB_FIELD_PVR_DATA_SERVICE;
+ return DB_FIELD_PVR_DATA_SERVICE;
case MEDIA_PVR_GROUP_CONTENT_LOCK:
- return (char *) DB_FIELD_PVR_CONTENT_LOCK;
+ return DB_FIELD_PVR_CONTENT_LOCK;
case MEDIA_PVR_GROUP_CONTENT_WATCH:
- return (char *) DB_FIELD_PVR_CONTENT_WATCH;
+ return DB_FIELD_PVR_CONTENT_WATCH;
case MEDIA_PVR_GROUP_HAS_AUDIO_ONLY:
- return (char *) DB_FIELD_PVR_HAS_AUDIO_ONLY;
+ return DB_FIELD_PVR_HAS_AUDIO_ONLY;
case MEDIA_PVR_GROUP_IS_LOCAL_RECORDED:
- return (char *) DB_FIELD_PVR_IS_LOCAL_RECORD;
+ return DB_FIELD_PVR_IS_LOCAL_RECORD;
case MEDIA_PVR_GROUP_RESOLUTION:
- return (char *) DB_FIELD_PVR_RESOLUTION;
+ return DB_FIELD_PVR_RESOLUTION;
case MEDIA_PVR_GROUP_ASPECTRATIO:
- return (char *) DB_FIELD_PVR_ASPECTRATIO;
+ return DB_FIELD_PVR_ASPECTRATIO;
case MEDIA_PVR_GROUP_MODIFIED_MONTH:
- return (char *) DB_FIELD_PVR_MODIFIED_DATE;
+ return DB_FIELD_PVR_MODIFIED_DATE;
case MEDIA_PVR_GROUP_MODIFIED_DATE:
- return (char *) DB_FIELD_PVR_MODIFIED_DATE;
+ return DB_FIELD_PVR_MODIFIED_DATE;
case MEDIA_PVR_GROUP_SPORTS_TYPE:
- return (char *) DB_FIELD_PVR_SPORTS_TYPE;
+ return DB_FIELD_PVR_SPORTS_TYPE;
case MEDIA_PVR_GROUP_GUIDANCE_LENGTH:
- return (char *) DB_FIELD_PVR_GUIDANCE_LENGTH;
+ return DB_FIELD_PVR_GUIDANCE_LENGTH;
case MEDIA_PVR_GROUP_TVMODE:
- return (char *) DB_FIELD_PVR_TVMODE;
+ return DB_FIELD_PVR_TVMODE;
case MEDIA_PVR_GROUP_PLAY_COUNT:
- return (char *) DB_FIELD_PVR_PLAY_COUNT;
+ return DB_FIELD_PVR_PLAY_COUNT;
case MEDIA_PVR_GROUP_PRIVATE_DATA:
- return (char *) DB_FIELD_PVR_PRIVATE_DATA;
+ return DB_FIELD_PVR_PRIVATE_DATA;
case MEDIA_UHD_GROUP_CONTENT_TITLE:
- return (char *) DB_FIELD_UHD_CONTENT_TITLE;
+ return DB_FIELD_UHD_CONTENT_TITLE;
case MEDIA_UHD_GROUP_RELEASE_DATE:
- return (char *) DB_FIELD_UHD_RELEASE_DATE;
+ return DB_FIELD_UHD_RELEASE_DATE;
case MEDIA_UHD_GROUP_SUB_TYPE:
- return (char *) DB_FIELD_UHD_SUB_TYPE;
+ return DB_FIELD_UHD_SUB_TYPE;
case MEDIA_UHD_GROUP_FILE_NAME:
- return (char *) DB_FIELD_UHD_FILE_NAME;
+ return DB_FIELD_UHD_FILE_NAME;
case MEDIA_UHD_GROUP_PLAYED_COUNT:
- return (char *) DB_FIELD_UHD_PLAYED_COUNT;
+ return DB_FIELD_UHD_PLAYED_COUNT;
#endif
default:
return NULL;
static int __media_db_make_query(filter_h filter, char **condition_query, char **option_query)
{
int ret = MEDIA_CONTENT_ERROR_NONE;
- filter_s *_filter = NULL;
-
- if (filter != NULL) {
- _filter = (filter_s *)filter;
+ filter_s *_filter = (filter_s *)filter;
- if (STRING_VALID(_filter->condition)) {
- ret = _media_filter_attribute_generate(filter, condition_query);
- media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
- }
+ media_content_retv_if(!_filter, MEDIA_CONTENT_ERROR_NONE);
- if (_filter->is_full_order == false) {
- /* Process for filter v1 */
- ret = _media_filter_attribute_option_generate(filter, option_query);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- SAFE_FREE(*condition_query);
- return ret;
- }
- } else {
- /* Process for filter v2 */
- ret = _media_filter_attribute_option_generate_with_full_query(filter, option_query);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- SAFE_FREE(*condition_query);
- return ret;
- }
- }
+ if (STRING_VALID(_filter->condition)) {
+ ret = _media_filter_build_condition(_filter->is_full_condition, _filter->condition, _filter->condition_collate_type, condition_query);
+ media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
}
+ ret = _media_filter_build_option(filter, option_query);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ g_free(*condition_query);
+
return ret;
}
return ret;
}
-static char *__get_order_str(media_content_order_e order_enum)
+static const char *__get_order_str(media_content_order_e order_enum)
{
switch (order_enum) {
case MEDIA_CONTENT_ORDER_ASC:
- return (char *)"ASC ";
+ return "ASC ";
case MEDIA_CONTENT_ORDER_DESC:
- return (char *)"DESC ";
+ return "DESC ";
default:
- return (char *)" ";
+ return " ";
}
}
-static char *__get_collate_str(media_content_collation_e collate_type)
+static const char *__get_collate_str(media_content_collation_e collate_type)
{
switch (collate_type) {
case MEDIA_CONTENT_COLLATE_NOCASE:
- return (char *)"NOCASE ";
+ return " COLLATE NOCASE ";
case MEDIA_CONTENT_COLLATE_RTRIM:
- return (char *)"RTRIM ";
+ return " COLLATE RTRIM ";
case MEDIA_CONTENT_COLLATE_LOCALIZED:
if (__is_pinyin_needed())
- return (char *)"NOCASE ";
+ return " COLLATE NOCASE ";
else
- return (char *)"localized ";
- default: return (char *)" ";
+ return " COLLATE localized ";
+ default:
+ return " ";
}
}
-int _media_filter_attribute_generate(filter_h filter, char **generated_condition)
+static bool __check_collate_type(media_content_collation_e collate_type)
{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- filter_s *_filter = NULL;
- char tmp_condition[MAX_QUERY_SIZE] = {0, };
-
- media_content_retvm_if(filter == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter");
- media_content_retvm_if(generated_condition == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid generated_condition");
-
- _filter = (filter_s*)filter;
-
- media_content_retvm_if(_filter->condition == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid condition");
- media_content_retvm_if(_filter->condition_collate_type < MEDIA_CONTENT_COLLATE_DEFAULT ||
- _filter->condition_collate_type > MEDIA_CONTENT_COLLATE_LOCALIZED, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid condition collate");
-
- /* make the statment */
- memset(tmp_condition, 0, sizeof(tmp_condition));
- SAFE_STRLCAT(tmp_condition, QUERY_KEYWORD_OPEN_BRACKET, sizeof(tmp_condition));
- SAFE_STRLCAT(tmp_condition, _filter->condition, sizeof(tmp_condition));
-
- /* Process for filter v1 */
- if (_filter->is_full_condition == false && _filter->condition_collate_type != MEDIA_CONTENT_COLLATE_DEFAULT) {
- SAFE_STRLCAT(tmp_condition, QUERY_KEYWORD_COLLATE, sizeof(tmp_condition));
- SAFE_STRLCAT(tmp_condition, __get_collate_str(_filter->condition_collate_type), sizeof(tmp_condition));
+ switch (collate_type) {
+ case MEDIA_CONTENT_COLLATE_DEFAULT:
+ case MEDIA_CONTENT_COLLATE_NOCASE:
+ case MEDIA_CONTENT_COLLATE_RTRIM:
+ case MEDIA_CONTENT_COLLATE_LOCALIZED:
+ return true;
+ default:
+ return false;
}
-
- SAFE_STRLCAT(tmp_condition, QUERY_KEYWORD_BRACKET, sizeof(tmp_condition));
-
- if (STRING_VALID(tmp_condition))
- *generated_condition = g_strdup(tmp_condition);
- else
- *generated_condition = NULL;
-
- media_content_sec_debug("Condition : %s", *generated_condition);
-
- return ret;
}
-int _media_filter_attribute_option_generate(filter_h filter, char **generated_option)
+int _media_filter_build_condition(bool is_full, const char *condition, media_content_collation_e collate_type, char **result)
{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- filter_s *_filter = NULL;
- char query[DEFAULT_QUERY_SIZE] = {0, };
- char option[DEFAULT_QUERY_SIZE] = {0, };
-
- media_content_retvm_if(filter == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter");
+ media_content_retvm_if(result == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid out param");
+ media_content_retvm_if(!STRING_VALID(condition), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid condition");
+ media_content_retvm_if(!__check_collate_type(collate_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid condition collate");
- _filter = (filter_s*)filter;
-
- memset(query, 0x00, sizeof(query));
-
- /* Order by*/
- if (STRING_VALID(_filter->order_keyword)) {
- if ((_filter->order_type == MEDIA_CONTENT_ORDER_ASC) || (_filter->order_type == MEDIA_CONTENT_ORDER_DESC)) {
- SAFE_STRLCAT(query, QUERY_KEYWORD_ORDER_BY, sizeof(query));
- SAFE_STRLCAT(query, _filter->order_keyword, sizeof(query));
-
- if (_filter->order_collate_type == MEDIA_CONTENT_COLLATE_NOCASE || _filter->order_collate_type == MEDIA_CONTENT_COLLATE_RTRIM || _filter->order_collate_type == MEDIA_CONTENT_COLLATE_LOCALIZED) {
- SAFE_STRLCAT(query, QUERY_KEYWORD_COLLATE, sizeof(query));
- SAFE_STRLCAT(query, __get_collate_str(_filter->order_collate_type), sizeof(query));
- } else {
- SAFE_STRLCAT(query, QUERY_KEYWORD_SPACE, sizeof(query));
- }
- SAFE_STRLCAT(query, __get_order_str(_filter->order_type), sizeof(query));
- } else {
- SAFE_STRLCAT(query, _filter->order_keyword, sizeof(query));
- }
- }
-
- /* offset */
- SAFE_STRLCAT(query, QUERY_KEYWORD_SPACE, sizeof(query));
-
- memset(option, 0, sizeof(option));
- snprintf(option, sizeof(option), "%s %d, %d", QUERY_KEYWORD_LIMIT, _filter->offset, _filter->count);
+ if (is_full)
+ *result = g_strdup_printf("(%s)", condition);
+ else
+ *result = g_strdup_printf("(%s%s)", condition, __get_collate_str(collate_type));
- SAFE_STRLCAT(query, option, sizeof(query));
+ media_content_sec_debug("Condition : %s", *result);
- if (STRING_VALID(query)) {
- *generated_option = g_strdup(query);
- media_content_sec_debug("Option : %s", *generated_option);
- } else {
- *generated_option = NULL;
- }
-
- return ret;
+ return MEDIA_CONTENT_ERROR_NONE;
}
-int _media_filter_attribute_option_generate_with_full_query(filter_h filter, char **generated_option)
+int _media_filter_build_option(filter_h filter, char **result)
{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- filter_s * _filter = NULL;
- char query[DEFAULT_QUERY_SIZE] = {0, };
- char option[DEFAULT_QUERY_SIZE] = {0, };
-
- media_content_retvm_if(filter == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter");
- media_content_retvm_if(generated_option == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid generated_option");
+ filter_s *_filter = (filter_s *)filter;
- _filter = (filter_s*)filter;
+ media_content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter");
+ media_content_retvm_if(!result, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid out param");
- memset(query, 0, sizeof(query));
-
- /* Order by*/
- if (STRING_VALID(_filter->order_keyword)) {
- SAFE_STRLCAT(query, QUERY_KEYWORD_ORDER_BY, sizeof(query));
- SAFE_STRLCAT(query, _filter->order_keyword, sizeof(query));
+ if (!STRING_VALID(_filter->order_keyword)) {
+ *result = g_strdup_printf(" LIMIT %d, %d", _filter->offset, _filter->count);
+ return MEDIA_CONTENT_ERROR_NONE;
}
- /* offset */
- SAFE_STRLCAT(query, QUERY_KEYWORD_SPACE, sizeof(query));
-
- memset(option, 0, sizeof(option));
- snprintf(option, sizeof(option), "%s %d, %d", QUERY_KEYWORD_LIMIT, _filter->offset, _filter->count);
- SAFE_STRLCAT(query, option, sizeof(query));
+ if (_filter->is_full_order) {
+ *result = g_strdup_printf("ORDER BY %s LIMIT %d, %d", _filter->order_keyword, _filter->offset, _filter->count);
+ return MEDIA_CONTENT_ERROR_NONE;
+ }
- if (STRING_VALID(query)) {
- *generated_option = g_strdup(query);
- media_content_sec_debug("Option : %s", *generated_option);
+ if (_filter->order_type == MEDIA_CONTENT_ORDER_ASC || _filter->order_type == MEDIA_CONTENT_ORDER_DESC) {
+ *result = g_strdup_printf("ORDER BY %s%s%s LIMIT %d, %d",
+ _filter->order_keyword,
+ __get_collate_str(_filter->order_collate_type),
+ __get_order_str(_filter->order_type),
+ _filter->offset,
+ _filter->count);
} else {
- *generated_option = NULL;
+ *result = g_strdup_printf("%s LIMIT %d, %d", _filter->order_keyword, _filter->offset, _filter->count);
}
- return ret;
+ return MEDIA_CONTENT_ERROR_NONE;
}
-
int media_filter_create(filter_h *filter)
{
int ret = MEDIA_CONTENT_ERROR_NONE;