merge with master
[platform/core/system/sync-agent.git] / src / framework / data-adapter / agent.c
index eb60abe..9f494dd 100755 (executable)
@@ -1500,14 +1500,16 @@ sync_agent_da_return_e da_delete_item_by_Item_id(SYNC_AGENT_DA_HANDLER * daci_ha
 
        sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
        daci_stmt stmt = 0;
-       char *query = "delete from item_tbl where item_id = ?";
+       char query[SYNC_AGENT_DA_MAX_QUERY_LENGTH] = {0,};
+
+       snprintf(query, sizeof(query), "delete from item_tbl where item_id = %s", itemId);
+       //for test
+       //_DEBUG_INFO("query = [%s]", query);
 
        stmt = __query_prepare(daci_handler, query, strlen(query));
        if (stmt == NULL)
                return SYNC_AGENT_DA_ERR_QUERY_FAILED;
 
-       __stmt_bind_text(daci_handler, stmt, 1, itemId);
-
        ret = __stmt_write_step(daci_handler, stmt);
        __stmt_finalize(daci_handler, stmt);
 
@@ -1706,13 +1708,14 @@ char *da_get_item_service_id(SYNC_AGENT_DA_HANDLER * daci_handler, char *itemId)
        retvm_if(itemId == NULL, NULL, "item Id is NULL !!");
 
        daci_stmt stmt = 0;
-       char *query = "select service_id from item_tbl where item_id = ?";
+       char query[SYNC_AGENT_DA_MAX_QUERY_LENGTH] = {0,};
        char *service_id = 0;
 
+       snprintf(query, sizeof(query), "select service_id from item_tbl where item_id = %s", itemId);
+       //for test
+       //_DEBUG_INFO("query = [%s]", query);
        stmt = __query_prepare(daci_handler, query, strlen(query));
        if (stmt != NULL) {
-               __stmt_bind_text(daci_handler, stmt, 1, itemId);
-
                if (_stmt_read_step(daci_handler, stmt) == SYNC_AGENT_DA_ERR_MORE_DATA)
                        service_id = _stmt_column_text(stmt, 0);
 
@@ -1720,7 +1723,6 @@ char *da_get_item_service_id(SYNC_AGENT_DA_HANDLER * daci_handler, char *itemId)
        }
 
        _EXTERN_FUNC_EXIT;
-
        return service_id;
 }
 
@@ -1772,12 +1774,14 @@ sync_agent_da_return_e da_get_item_new(SYNC_AGENT_DA_HANDLER * daci_handler, cha
 
        sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
        daci_stmt stmt = 0;
-       char *query = "select  * from item_tbl where item_id = ?";
+       char query[SYNC_AGENT_DA_MAX_QUERY_LENGTH] = {0,};
+
+       snprintf(query, sizeof(query), "select  * from item_tbl where item_id = %s", item_id);
+       //for test
+       //_DEBUG_INFO("query = [%s]", query);
 
        stmt = __query_prepare(daci_handler, query, strlen(query));
        if (stmt != NULL) {
-               __stmt_bind_text(daci_handler, stmt, 1, item_id);
-
                if (_stmt_read_step(daci_handler, stmt) == SYNC_AGENT_DA_ERR_MORE_DATA) {
                        (*sync_agent_item)->item_id = _stmt_column_text(stmt, 0);
                        (*sync_agent_item)->data_store_id = __stmt_column_int(stmt, 1);
@@ -1790,7 +1794,60 @@ sync_agent_da_return_e da_get_item_new(SYNC_AGENT_DA_HANDLER * daci_handler, cha
        }
 
        _EXTERN_FUNC_EXIT;
+       return ret;
+}
+
+sync_agent_da_return_e da_get_item_data_store_id_new(SYNC_AGENT_DA_HANDLER * daci_handler, char *item_id, sync_agent_da_item_s ** sync_agent_item)
+{
+       _EXTERN_FUNC_ENTER;
+
+       retvm_if(daci_handler == NULL, SYNC_AGENT_DA_ERRORS, "SYNC_AGENT_DA_HANDLER is NULL !!");
+       retvm_if(item_id == NULL, SYNC_AGENT_DA_ERRORS, "item Id is NULL !!");
+
+       sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
+       daci_stmt stmt = 0;
+       char query[SYNC_AGENT_DA_MAX_QUERY_LENGTH] = {0,};
+
+       snprintf(query, sizeof(query), "select  * from item_tbl where item_id = %s", item_id);
+       //for test
+       //_DEBUG_INFO("query = [%s]", query);
+
+       stmt = __query_prepare(daci_handler, query, strlen(query));
+       if (stmt != NULL) {
+               if (_stmt_read_step(daci_handler, stmt) == SYNC_AGENT_DA_ERR_MORE_DATA) {
+                       (*sync_agent_item)->data_store_id = __stmt_column_int(stmt, 1);
+               }
+               __stmt_finalize(daci_handler, stmt);
+       }
+
+       _EXTERN_FUNC_EXIT;
+       return ret;
+}
+
+sync_agent_da_return_e da_get_item_account_id_new(SYNC_AGENT_DA_HANDLER * daci_handler, char *item_id, sync_agent_da_item_s ** sync_agent_item)
+{
+       _EXTERN_FUNC_ENTER;
+
+       retvm_if(daci_handler == NULL, SYNC_AGENT_DA_ERRORS, "SYNC_AGENT_DA_HANDLER is NULL !!");
+       retvm_if(item_id == NULL, SYNC_AGENT_DA_ERRORS, "item Id is NULL !!");
+
+       sync_agent_da_return_e ret = SYNC_AGENT_DA_SUCCESS;
+       daci_stmt stmt = 0;
+       char query[SYNC_AGENT_DA_MAX_QUERY_LENGTH] = {0,};
+
+       snprintf(query, sizeof(query), "select  * from item_tbl where item_id = %s", item_id);
+       //for test
+       //_DEBUG_INFO("query = [%s]", query);
+
+       stmt = __query_prepare(daci_handler, query, strlen(query));
+       if (stmt != NULL) {
+               if (_stmt_read_step(daci_handler, stmt) == SYNC_AGENT_DA_ERR_MORE_DATA) {
+                       (*sync_agent_item)->account_id = __stmt_column_int(stmt, 2);
+               }
+               __stmt_finalize(daci_handler, stmt);
+       }
 
+       _EXTERN_FUNC_EXIT;
        return ret;
 }
 
@@ -2187,7 +2244,7 @@ sync_agent_da_return_e da_get_item_info_by_item_type_id_and_operation_id_new(SYN
        int row_count = 0;
        int col_count = 0;
        int i = 0;
-       int index = 5;
+       int index = 1;
        char *item_id = NULL;
        char g_daci_query[SYNC_AGENT_DA_MAX_QUERY_LENGTH] = { 0, };
 
@@ -2196,6 +2253,7 @@ sync_agent_da_return_e da_get_item_info_by_item_type_id_and_operation_id_new(SYN
                _DEBUG_ERROR("__replace_table_name() failed !!");
                return SYNC_AGENT_DA_ERRORS;
        }
+
        snprintf(g_daci_query, sizeof(g_daci_query), "select item.item_id " "from item_tbl as item " "join %s as changelog " "using (item_id) " "where item.account_id = %d and item.data_store_id = %d and changelog.operation_id = %d", new_table, account_id,
                 item_type_id, operation_id);
 
@@ -2204,7 +2262,7 @@ sync_agent_da_return_e da_get_item_info_by_item_type_id_and_operation_id_new(SYN
                for (i = 0; i < row_count; i++) {
                        item_id = NULL;
                        item_id = SYNC_AGENT_DA_STRDUP(result[index]);
-                       index += 5;
+                       index++;
 
                        *list = g_list_append(*list, item_id);
                }
@@ -4621,19 +4679,22 @@ daci_stmt __query_prepare(SYNC_AGENT_DA_HANDLER * daci_handler, char *query, int
 
        int err_mutex = pthread_mutex_lock(&exec_lock);
        if (err_mutex) {
-               _DEBUG_ERROR("Failed pthread_mutex_lock : %d", err_mutex);
+               _DEBUG_ERROR("Failed pthread_mutex_lock : [%d]", err_mutex);
        }
+
+       //for test
+       //_DEBUG_INFO("query = [%s], size = [%d]", query, size);
        ret = sqlite3_prepare_v2(daci_handler, query, size, &stmt, 0);
+       if (ret != SQLITE_OK) {
+               _DEBUG_ERROR("sqlite3_query_prepare failed[%d] : [%s]", ret, sqlite3_errmsg(daci_handler));
+       }
+
        err_mutex = pthread_mutex_unlock(&exec_lock);
        if (err_mutex) {
-               _DEBUG_ERROR("Failed pthread_mutex_unlock : %d", err_mutex);
+               _DEBUG_ERROR("Failed pthread_mutex_unlock : [%d]", err_mutex);
        }
 
-       if (ret != SQLITE_OK)
-               _DEBUG_ERROR("sqlite3_query_prepare failed(%d) : %s ", ret, sqlite3_errmsg(daci_handler));
-
        _INNER_FUNC_EXIT;
-
        return stmt;
 }