Merge "Support for multiple column ordering" into tizen
authorhj kim <backto.kim@samsung.com>
Fri, 3 Apr 2020 02:19:52 +0000 (02:19 +0000)
committerGerrit Code Review <gerrit@review>
Fri, 3 Apr 2020 02:19:52 +0000 (02:19 +0000)
1  2 
src/media_filter.c

diff --combined src/media_filter.c
@@@ -101,9 -101,9 +101,9 @@@ static bool __check_order_type(media_co
  
  int _media_filter_build_condition(bool is_full, const char *condition, media_content_collation_e collate_type, char **result)
  {
 -      content_retvm_if(!result, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid result");
 -      content_retvm_if(!STRING_VALID(condition), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid condition");
 -      content_retvm_if(!__check_collate_type(collate_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type");
 +      content_retip_if_fail(condition);
 +      content_retip_if_fail(__check_collate_type(collate_type));
 +      content_retip_if_fail(result);
  
        if (is_full)
                *result = g_strdup_printf("(%s)", condition);
@@@ -119,8 -119,8 +119,8 @@@ int _media_filter_build_option(filter_
  {
        filter_s *_filter = (filter_s *)filter;
  
 -      content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter");
 -      content_retvm_if(!result, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid result");
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(result);
  
        if (!STRING_VALID(_filter->order_keyword)) {
                *result = g_strdup_printf(" LIMIT %d, %d", _filter->offset, _filter->count);
                        _filter->offset,
                        _filter->count);
        } else {
+ #ifdef _USE_TVPD_MODE
                *result = g_strdup_printf("%s LIMIT %d, %d", _filter->order_keyword, _filter->offset, _filter->count);
+ #else
+               *result = g_strdup_printf("ORDER BY %s LIMIT %d, %d", _filter->order_keyword, _filter->offset, _filter->count);
+ #endif
        }
  
        return MEDIA_CONTENT_ERROR_NONE;
@@@ -150,9 -154,10 +154,9 @@@ int media_filter_create(filter_h *filte
  {
        int ret = MEDIA_CONTENT_ERROR_NONE;
  
 -      content_retvm_if(filter == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter");
 +      content_retip_if_fail(filter);
  
 -      filter_s *_filter = (filter_s *)calloc(1, sizeof(filter_s));
 -      content_retvm_if(_filter == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
 +      filter_s *_filter = g_new0(filter_s, 1);
  
        _filter->storage_id = NULL;
        _filter->condition = NULL;
  int media_filter_destroy(filter_h filter)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter");
  
 -      SAFE_FREE(_filter->storage_id);
 -      SAFE_FREE(_filter->condition);
 -      SAFE_FREE(_filter->order_keyword);
 -      SAFE_FREE(_filter);
 +      content_retip_if_fail(filter);
 +
 +      g_free(_filter->storage_id);
 +      g_free(_filter->condition);
 +      g_free(_filter->order_keyword);
 +      g_free(_filter);
  
        return MEDIA_CONTENT_ERROR_NONE;
  }
  int media_filter_set_offset(filter_h filter, int offset, int count)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter");
 +
 +      content_retip_if_fail(filter);
  
        _filter->offset = offset;
        _filter->count = count;
@@@ -200,13 -203,12 +204,13 @@@ int media_filter_set_condition(filter_
  {
        int ret = MEDIA_CONTENT_ERROR_NONE;
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter");
 -      content_retvm_if(!STRING_VALID(condition), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid condition");
 -      content_retvm_if(!__check_collate_type(collate_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(STRING_VALID(condition));
 +      content_retip_if_fail(__check_collate_type(collate_type));
  
        _filter->is_full_condition = false;
 -      SAFE_FREE(_filter->condition);
 +      g_free(_filter->condition);
  
        _filter->condition = _media_content_replace_path_in_condition(condition);
  
  int media_filter_set_order(filter_h filter, media_content_order_e order_type, const char *order_keyword, media_content_collation_e collate_type)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter");
 -      content_retvm_if(!STRING_VALID(order_keyword), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid order_keyword");
 -      content_retvm_if(!__check_order_type(order_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid order_type");
 -      content_retvm_if(!__check_collate_type(collate_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(STRING_VALID(order_keyword));
 +      content_retip_if_fail(__check_order_type(order_type));
 +      content_retip_if_fail(__check_collate_type(collate_type));
  
        _filter->is_full_order = false;
 -      SAFE_FREE(_filter->order_keyword);
 +
 +      g_free(_filter->order_keyword);
  
        _filter->order_keyword = g_strdup(order_keyword);
        _filter->order_type = order_type;
@@@ -250,13 -250,11 +254,13 @@@ int media_filter_set_storage(filter_h f
  {
        content_warn("DEPRECATION WARNING: media_filter_set_storage() is deprecated and will be removed from next release. Use media_filter_set_condition() with MEDIA_PATH keyword instead.");
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !STRING_VALID(storage_id), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
  
 -      SAFE_FREE(_filter->storage_id);
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(STRING_VALID(storage_id));
  
 +      g_free(_filter->storage_id);
        _filter->storage_id = g_strdup(storage_id);
 +
        content_sec_debug("storage_id : %s", _filter->storage_id);
  
        return MEDIA_CONTENT_ERROR_NONE;
  int media_filter_get_offset(filter_h filter, int *offset, int *count)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !offset || !count, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(offset);
 +      content_retip_if_fail(count);
  
        *offset = _filter->offset;
        *count = _filter->count;
  int media_filter_get_condition(filter_h filter, char **condition, media_content_collation_e *collate_type)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid _filter");
 -      content_retvm_if(!condition, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid condition");
 -      content_retvm_if(!collate_type, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(condition);
 +      content_retip_if_fail(collate_type);
  
        if (!_filter->is_full_condition)
                *condition = g_strdup(_filter->condition);
  int media_filter_get_order(filter_h filter, media_content_order_e *order_type, char **order_keyword, media_content_collation_e *collate_type)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !order_type, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 -      content_retvm_if(!order_keyword || !collate_type, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(order_type);
 +      content_retip_if_fail(order_keyword);
 +      content_retip_if_fail(collate_type);
  
        if (!_filter->is_full_order)
                *order_keyword = g_strdup(_filter->order_keyword);
@@@ -314,9 -305,7 +318,9 @@@ int media_filter_get_storage(filter_h f
  {
        content_warn("DEPRECATION WARNING: media_filter_get_storage() is deprecated and will be removed from next release.");
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !storage_id, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(storage_id);
  
        *storage_id = g_strdup(_filter->storage_id);
  
  int media_filter_set_condition_v2(filter_h filter, const char *condition)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !STRING_VALID(condition), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(STRING_VALID(condition));
  
        _filter->is_full_condition = true;
 -      SAFE_FREE(_filter->condition);
 +
 +      g_free(_filter->condition);
  
        /* FIXME
                If an error is occured in _media_content_replace_path_in_condition(),
  int media_filter_get_condition_v2(filter_h filter, char **condition)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !condition, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(condition);
  
        if (_filter->is_full_condition)
                *condition = g_strdup(_filter->condition);
  int media_filter_set_order_v2(filter_h filter, const char *order)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !STRING_VALID(order), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(STRING_VALID(order));
  
        _filter->is_full_order = true;
 -      SAFE_FREE(_filter->order_keyword);
  
 +      g_free(_filter->order_keyword);
        _filter->order_keyword = g_strdup(order);
  
        return MEDIA_CONTENT_ERROR_NONE;
  int media_filter_get_order_v2(filter_h filter, char **order)
  {
        filter_s *_filter = (filter_s *)filter;
 -      content_retvm_if(!_filter || !order, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
 +
 +      content_retip_if_fail(filter);
 +      content_retip_if_fail(order);
  
        if (_filter->is_full_order)
                *order = g_strdup(_filter->order_keyword);