Improve count query
[platform/core/api/media-content.git] / src / media_content.c
index e9e8d88..cf55609 100644 (file)
@@ -36,20 +36,25 @@ uid_t _content_get_uid(void)
                return content_g_uid;
 }
 
-int _content_query_prepare(char *select_query, char *condition_query, char *option_query, sqlite3_stmt **stmt)
+int _content_query_prepare(const char *select_query, const char *condition_query, const char *option_query, sqlite3_stmt **stmt)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
        char *query = NULL;
 
        media_content_retvm_if(!STRING_VALID(select_query), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid select_query");
 
-       if (!STRING_VALID(condition_query))
-               condition_query = (char *)" ";
-
-       if (!STRING_VALID(option_query))
-               option_query = (char *)" ";
+       if (STRING_VALID(condition_query)) {
+               if (STRING_VALID(option_query))
+                       query = sqlite3_mprintf("%s AND %s %s", select_query, condition_query, option_query);
+               else
+                       query = sqlite3_mprintf("%s AND %s", select_query, condition_query);
+       } else {
+               if (STRING_VALID(option_query))
+                       query = sqlite3_mprintf("%s %s", select_query, option_query);
+               else
+                       query = sqlite3_mprintf("%s", select_query);
+       }
 
-       query = sqlite3_mprintf("%s %s %s", select_query, condition_query, option_query);
        ret = _content_get_result(query, stmt);
        SQLITE3_SAFE_FREE(query);