|
|
|
|
@ -9849,6 +9849,12 @@ int ProxySQL_Admin::stats___save_mysql_query_digest_to_sqlite(
|
|
|
|
|
max_bulk_row_idx=max_bulk_row_idx*32;
|
|
|
|
|
auto it = resultset ? digest_umap->cend() : digest_umap->cbegin();
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
|
|
time_t __now;
|
|
|
|
|
time(&__now);
|
|
|
|
|
unsigned long long curtime=monotonic_time();
|
|
|
|
|
time_t seen_time;
|
|
|
|
|
|
|
|
|
|
// If the function do not receives a resultset, it gets the values directly from the digest_umap
|
|
|
|
|
while (resultset ? i != resultset->rows_count : it != digest_umap->end()) {
|
|
|
|
|
QP_query_digest_stats *qds = (QP_query_digest_stats *)(resultset ? NULL : it->second);
|
|
|
|
|
@ -9868,8 +9874,14 @@ int ProxySQL_Admin::stats___save_mysql_query_digest_to_sqlite(
|
|
|
|
|
rc=(*proxy_sqlite3_bind_text)(statement32, (idx*14)+5, resultset ? row->fields[3] : digest_hex_str.c_str(), -1, SQLITE_TRANSIENT); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_text)(statement32, (idx*14)+6, resultset ? row->fields[4] : qds->get_digest_text(digest_text_umap), -1, SQLITE_TRANSIENT); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+7, resultset ? atoll(row->fields[5]) : qds->count_star); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+8, resultset ? atoll(row->fields[6]) : qds->first_seen); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+9, resultset ? atoll(row->fields[7]) : qds->last_seen); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
{
|
|
|
|
|
seen_time = qds != nullptr ? __now - curtime/1000000 + qds->first_seen/1000000 : 0;
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+8, resultset ? atoll(row->fields[6]) : seen_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
seen_time = qds != nullptr ? __now - curtime/1000000 + qds->last_seen/1000000 : 0;
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+9, resultset ? atoll(row->fields[7]) : seen_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
}
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+10, resultset ? atoll(row->fields[8]) : qds->sum_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+11, resultset ? atoll(row->fields[9]) : qds->min_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement32, (idx*14)+12, resultset ? atoll(row->fields[10]) : qds->max_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
@ -9888,8 +9900,14 @@ int ProxySQL_Admin::stats___save_mysql_query_digest_to_sqlite(
|
|
|
|
|
rc=(*proxy_sqlite3_bind_text)(statement1, 5, resultset ? row->fields[3] : digest_hex_str.c_str(), -1, SQLITE_TRANSIENT); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_text)(statement1, 6, resultset ? row->fields[4] : qds->get_digest_text(digest_text_umap), -1, SQLITE_TRANSIENT); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 7, resultset ? atoll(row->fields[5]) : qds->count_star); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 8, resultset ? atoll(row->fields[6]) : qds->first_seen); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 9, resultset ? atoll(row->fields[7]) : qds->last_seen); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
{
|
|
|
|
|
seen_time = qds != nullptr ? __now - curtime/1000000 + qds->first_seen/1000000 : 0;
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 8, resultset ? atoll(row->fields[6]) : seen_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
seen_time = qds != nullptr ? __now - curtime/1000000 + qds->last_seen/1000000 : 0;
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 9, resultset ? atoll(row->fields[7]) : seen_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
}
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 10, resultset ? atoll(row->fields[8]) : qds->sum_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 11, resultset ? atoll(row->fields[9]) : qds->min_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
rc=(*proxy_sqlite3_bind_int64)(statement1, 12, resultset ? atoll(row->fields[10]) : qds->max_time); ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
|