Skip to content
Snippets Groups Projects
Commit e50d3d40 authored by Dmitriy A. Gerasimov's avatar Dmitriy A. Gerasimov
Browse files

[*] Fixex ch chain proto

[!] Repaired sqlite enginge for GlobalDB
parent 661c0371
No related branches found
No related tags found
No related merge requests found
Pipeline #7094 passed with stage
in 10 seconds
...@@ -2,7 +2,7 @@ project(cellframe-sdk C) ...@@ -2,7 +2,7 @@ project(cellframe-sdk C)
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 2.8)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
set(CELLFRAME_SDK_NATIVE_VERSION "2.8-11") set(CELLFRAME_SDK_NATIVE_VERSION "2.8-12")
add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
set(DAPSDK_MODULES "") set(DAPSDK_MODULES "")
......
...@@ -1351,12 +1351,12 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg) ...@@ -1351,12 +1351,12 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg)
l_ch_chain->request_hdr.chain_id.uint64, l_ch_chain->request_hdr.cell_id.uint64, l_ch_chain->request_hdr.chain_id.uint64, l_ch_chain->request_hdr.cell_id.uint64,
l_ch_chain->request_atom_iter->cur, l_ch_chain->request_atom_iter->cur_size); l_ch_chain->request_atom_iter->cur, l_ch_chain->request_atom_iter->cur_size);
l_was_sent_smth = true; l_was_sent_smth = true;
break; // If sent smth - break out from pack loop
l_ch_chain->stats_request_atoms_processed++; l_ch_chain->stats_request_atoms_processed++;
l_hash_item->size = l_ch_chain->request_atom_iter->cur_size; l_hash_item->size = l_ch_chain->request_atom_iter->cur_size;
// Because we sent this atom to remote - we record it to not to send it twice // Because we sent this atom to remote - we record it to not to send it twice
HASH_ADD(hh, l_ch_chain->remote_atoms, hash, sizeof (l_hash_item->hash), l_hash_item); HASH_ADD(hh, l_ch_chain->remote_atoms, hash, sizeof (l_hash_item->hash), l_hash_item);
break; // If sent smth - break out from pack loop
} }
// Then get next atom and populate new last // Then get next atom and populate new last
l_ch_chain->request_atom_iter->chain->callback_atom_iter_get_next(l_ch_chain->request_atom_iter, NULL); l_ch_chain->request_atom_iter->chain->callback_atom_iter_get_next(l_ch_chain->request_atom_iter, NULL);
......
...@@ -521,8 +521,11 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj) ...@@ -521,8 +521,11 @@ int dap_db_driver_sqlite_apply_store_obj(dap_store_obj_t *a_store_obj)
l_query = sqlite3_mprintf("delete from '%s' where key = '%s'", l_query = sqlite3_mprintf("delete from '%s' where key = '%s'",
a_store_obj->group, a_store_obj->key); a_store_obj->group, a_store_obj->key);
// remove all group // remove all group
else else{
l_query = sqlite3_mprintf("drop table if exists '%s'", a_store_obj->group); char * l_table_name = dap_db_driver_sqlite_make_table_name(a_store_obj->group);
l_query = sqlite3_mprintf("drop table if exists '%s'", l_table_name);
DAP_DELETE(l_table_name);
}
} }
else { else {
log_it(L_ERROR, "Unknown store_obj type '0x%x'", a_store_obj->type); log_it(L_ERROR, "Unknown store_obj type '0x%x'", a_store_obj->type);
...@@ -613,9 +616,11 @@ dap_store_obj_t* dap_db_driver_sqlite_read_last_store_obj(const char *a_group) ...@@ -613,9 +616,11 @@ dap_store_obj_t* dap_db_driver_sqlite_read_last_store_obj(const char *a_group)
sqlite3_stmt *l_res; sqlite3_stmt *l_res;
if(!a_group) if(!a_group)
return NULL; return NULL;
char *l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id DESC LIMIT 1", a_group); char * l_table_name = dap_db_driver_sqlite_make_table_name(a_group);
char *l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id DESC LIMIT 1", l_table_name);
int l_ret = dap_db_driver_sqlite_query(s_db, l_str_query, &l_res, &l_error_message); int l_ret = dap_db_driver_sqlite_query(s_db, l_str_query, &l_res, &l_error_message);
sqlite3_free(l_str_query); sqlite3_free(l_str_query);
DAP_DEL_Z(l_table_name);
if(l_ret != SQLITE_OK) { if(l_ret != SQLITE_OK) {
log_it(L_ERROR, "read last l_ret=%d, %s\n", sqlite3_errcode(s_db), sqlite3_errmsg(s_db)); log_it(L_ERROR, "read last l_ret=%d, %s\n", sqlite3_errcode(s_db), sqlite3_errmsg(s_db));
dap_db_driver_sqlite_free(l_error_message); dap_db_driver_sqlite_free(l_error_message);
...@@ -653,6 +658,8 @@ dap_store_obj_t* dap_db_driver_sqlite_read_cond_store_obj(const char *a_group, u ...@@ -653,6 +658,8 @@ dap_store_obj_t* dap_db_driver_sqlite_read_cond_store_obj(const char *a_group, u
sqlite3_stmt *l_res; sqlite3_stmt *l_res;
if(!a_group) if(!a_group)
return NULL; return NULL;
char * l_table_name = dap_db_driver_sqlite_make_table_name(a_group);
// no limit // no limit
int l_count_out = 0; int l_count_out = 0;
if(a_count_out) if(a_count_out)
...@@ -660,12 +667,14 @@ dap_store_obj_t* dap_db_driver_sqlite_read_cond_store_obj(const char *a_group, u ...@@ -660,12 +667,14 @@ dap_store_obj_t* dap_db_driver_sqlite_read_cond_store_obj(const char *a_group, u
char *l_str_query; char *l_str_query;
if(l_count_out) if(l_count_out)
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE id>'%lld' ORDER BY id ASC LIMIT %d", l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE id>'%lld' ORDER BY id ASC LIMIT %d",
a_group, a_id, l_count_out); l_table_name, a_id, l_count_out);
else else
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE id>'%lld' ORDER BY id ASC", l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE id>'%lld' ORDER BY id ASC",
a_group, a_id); l_table_name, a_id);
int l_ret = dap_db_driver_sqlite_query(s_db, l_str_query, &l_res, &l_error_message); int l_ret = dap_db_driver_sqlite_query(s_db, l_str_query, &l_res, &l_error_message);
sqlite3_free(l_str_query); sqlite3_free(l_str_query);
DAP_DEL_Z(l_table_name);
if(l_ret != SQLITE_OK) { if(l_ret != SQLITE_OK) {
log_it(L_ERROR, "read l_ret=%d, %s\n", sqlite3_errcode(s_db), sqlite3_errmsg(s_db)); log_it(L_ERROR, "read l_ret=%d, %s\n", sqlite3_errcode(s_db), sqlite3_errmsg(s_db));
dap_db_driver_sqlite_free(l_error_message); dap_db_driver_sqlite_free(l_error_message);
...@@ -719,6 +728,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_store_obj(const char *a_group, const ...@@ -719,6 +728,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_store_obj(const char *a_group, const
sqlite3_stmt *l_res; sqlite3_stmt *l_res;
if(!a_group) if(!a_group)
return NULL; return NULL;
char * l_table_name = dap_db_driver_sqlite_make_table_name(a_group);
// no limit // no limit
uint64_t l_count_out = 0; uint64_t l_count_out = 0;
if(a_count_out) if(a_count_out)
...@@ -727,20 +737,21 @@ dap_store_obj_t* dap_db_driver_sqlite_read_store_obj(const char *a_group, const ...@@ -727,20 +737,21 @@ dap_store_obj_t* dap_db_driver_sqlite_read_store_obj(const char *a_group, const
if(a_key) { if(a_key) {
if(l_count_out) if(l_count_out)
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE key='%s' ORDER BY id ASC LIMIT %d", l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE key='%s' ORDER BY id ASC LIMIT %d",
a_group, a_key, l_count_out); l_table_name, a_key, l_count_out);
else else
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE key='%s' ORDER BY id ASC", l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE key='%s' ORDER BY id ASC",
a_group, a_key); l_table_name, a_key);
} }
else { else {
if(l_count_out) if(l_count_out)
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id ASC LIMIT %d", l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id ASC LIMIT %d",
a_group, l_count_out); l_table_name, l_count_out);
else else
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id ASC", a_group); l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id ASC", l_table_name);
} }
int l_ret = dap_db_driver_sqlite_query(s_db, l_str_query, &l_res, &l_error_message); int l_ret = dap_db_driver_sqlite_query(s_db, l_str_query, &l_res, &l_error_message);
sqlite3_free(l_str_query); sqlite3_free(l_str_query);
DAP_DEL_Z(l_table_name);
if(l_ret != SQLITE_OK) { if(l_ret != SQLITE_OK) {
log_it(L_ERROR, "read l_ret=%d, %s\n", sqlite3_errcode(s_db), sqlite3_errmsg(s_db)); log_it(L_ERROR, "read l_ret=%d, %s\n", sqlite3_errcode(s_db), sqlite3_errmsg(s_db));
dap_db_driver_sqlite_free(l_error_message); dap_db_driver_sqlite_free(l_error_message);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment