static int __create_playlist_view(uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
+ GSList *iter = NULL;
column_info_s *col_ptr = NULL;
- int len = 0;
- int i = 0;
char *sql = NULL;
GString *table_query = g_string_new(NULL);
media_svc_retvm_if(!table_query, MS_MEDIA_ERR_INTERNAL, "g_string_new failed");
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST]);
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST], i);
+ for (iter = column_list[MEDIA_SVC_DB_LIST_PLAYLIST]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+
+ if (!col_ptr)
+ continue;
+
if (col_ptr->is_view) {
if (table_query->len != 0) {
if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_THUMBNAIL, strlen(MEDIA_SVC_DB_COLUMN_THUMBNAIL)) == 0)
}
}
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]);
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP], i);
+ for (iter = column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+
+ if (!col_ptr)
+ continue;
+
if (col_ptr->is_view) {
if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
g_string_append_printf(table_query, ", playlist_media_count IS NOT NULL AS playlist_media_count, playlist_map.%s AS pm_id", col_ptr->name);
}
}
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
+ for (iter = column_list[MEDIA_SVC_DB_LIST_MEDIA]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+
+ if (!col_ptr)
+ continue;
+
if (col_ptr->is_view)
g_string_append_printf(table_query, ", media.%s", col_ptr->name);
}
static int __create_tag_view(uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
+ GSList *iter = NULL;
column_info_s *col_ptr = NULL;
- int len = 0;
- int i = 0;
char *sql = NULL;
GString *table_query = g_string_new(NULL);
media_svc_retvm_if(!table_query, MS_MEDIA_ERR_INTERNAL, "g_string_new failed");
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG]);
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG], i);
+ for (iter = column_list[MEDIA_SVC_DB_LIST_TAG]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+
+ if (!col_ptr)
+ continue;
+
if (col_ptr->is_view) {
if (table_query->len != 0)
g_string_append_printf(table_query, ", tag.%s", col_ptr->name);
}
}
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG_MAP]);
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG_MAP], i);
+ for (iter = column_list[MEDIA_SVC_DB_LIST_TAG_MAP]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+
+ if (!col_ptr)
+ continue;
+
if (col_ptr->is_view) {
if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
g_string_append_printf(table_query, ", tag_media_count IS NOT NULL AS tag_media_count, tag_map.%s AS tm_id", col_ptr->name);
}
}
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
+ for (iter = column_list[MEDIA_SVC_DB_LIST_MEDIA]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+
+ if (!col_ptr)
+ continue;
+
if (col_ptr->is_view)
g_string_append_printf(table_query, ", media.%s", col_ptr->name);
}
int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
+ GSList *iter = NULL;
table_info_s *tb = NULL;
column_info_s *col_ptr = NULL;
char *sql = NULL;
GString *index_query = g_string_new(NULL);
GString *trigger_query = g_string_new(NULL);
GString *unique_query = g_string_new(NULL);
- int len = 0;
- int i = 0;
if (!table_query || !index_query || !trigger_query || !unique_query) {
media_svc_error("g_string_new failed");
goto ERROR;
}
- len = g_slist_length(column_list[list]);
- if (len == 0) {
- media_svc_error("Invalid column");
- ret = MS_MEDIA_ERR_INTERNAL;
- goto ERROR;
- }
+ for (iter = column_list[list]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+ if (!col_ptr)
+ continue;
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[list], i);
/*create table */
if (col_ptr->has_option) {
if (table_query->len != 0)
static int __media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table_name, media_svc_table_slist_e list, uid_t uid)
{
int ret = MS_MEDIA_ERR_NONE;
+ GSList *iter = NULL;
column_info_s *col_ptr = NULL;
char *sql = NULL;
char temp[1024] = {0, };
- int len, i;
int cur_version = 0;
sqlite3_stmt *sql_stmt = NULL;
- len = g_slist_length(column_list[list]);
-
sql = sqlite3_mprintf("PRAGMA user_version");
ret = _media_svc_sql_prepare_to_step(db_handle, sql, &sql_stmt);
cur_version = sqlite3_column_int(sql_stmt, 0);
SQLITE3_FINALIZE(sql_stmt);
- len = g_slist_length(column_list[list]);
- for (i = 0; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[list], i);
+ for (iter = column_list[list]; iter; iter = g_slist_next(iter)) {
+ col_ptr = iter->data;
+
+ if (!col_ptr)
+ continue;
+
if (col_ptr->version > cur_version) {
/*alter table */
+ memset(temp, 0, sizeof(temp));
if (col_ptr->has_option)
snprintf(temp, sizeof(temp), "%s %s %s", col_ptr->name, col_ptr->type, col_ptr->option);
else
media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
/*create index */
if (col_ptr->is_index) {
- memset(temp, 0, sizeof(temp));
- snprintf(temp, sizeof(temp), MEDIA_SVC_DB_QUERY_INDEX, col_ptr->index_name, table_name, col_ptr->name);
- ret = _media_svc_sql_query(temp, uid);
+ sql = sqlite3_mprintf(MEDIA_SVC_DB_QUERY_INDEX, col_ptr->index_name, table_name, col_ptr->name);
+ ret = _media_svc_sql_query(sql, uid);
+ SQLITE3_SAFE_FREE(sql);
media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
}
}
- memset(temp, 0, sizeof(temp));
}
return MS_MEDIA_ERR_NONE;
static void __media_svc_table_free(gpointer data)
{
table_info_s *tb = (table_info_s *) data;
+
SAFE_FREE(tb->trigger_name);
SAFE_FREE(tb->view_name);
SAFE_FREE(tb->event_table);
{
column_info_s *col = (column_info_s *) data;
- /* Item in slist can be null */
- if (!col)
- return;
-
SAFE_FREE(col->name);
SAFE_FREE(col->type);
SAFE_FREE(col->option);