|
|
|
|
@ -793,8 +793,6 @@ void ProxySQL_Admin::stats___mysql_processlist() {
|
|
|
|
|
SQLite3_result * resultset=GloMTH->SQL3_Processlist(variables.mysql_processlist);
|
|
|
|
|
if (resultset==NULL) return;
|
|
|
|
|
|
|
|
|
|
sqlite3_stmt *statement1=NULL;
|
|
|
|
|
sqlite3_stmt *statement32=NULL;
|
|
|
|
|
//sqlite3 *mydb3=statsdb->get_db();
|
|
|
|
|
char *query1=NULL;
|
|
|
|
|
char *query32=NULL;
|
|
|
|
|
@ -804,12 +802,12 @@ void ProxySQL_Admin::stats___mysql_processlist() {
|
|
|
|
|
query32s = "INSERT OR IGNORE INTO stats_mysql_processlist VALUES " + generate_multi_rows_query(32,16);
|
|
|
|
|
query32 = (char *)query32s.c_str();
|
|
|
|
|
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
|
|
|
|
|
/* for reference
|
|
|
|
|
CREATE TABLE stats_mysql_processlist (
|
|
|
|
|
@ -933,8 +931,7 @@ CREATE TABLE stats_mysql_processlist (
|
|
|
|
|
}
|
|
|
|
|
row_idx++;
|
|
|
|
|
}
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement1);
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement32);
|
|
|
|
|
// RAII auto-finalizes statement1 and statement32
|
|
|
|
|
statsdb->execute("COMMIT");
|
|
|
|
|
delete resultset;
|
|
|
|
|
}
|
|
|
|
|
@ -958,11 +955,13 @@ void ProxySQL_Admin::stats___pgsql_processlist() {
|
|
|
|
|
query32 = (char*)query32s.c_str();
|
|
|
|
|
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
|
|
|
|
|
statsdb->execute("BEGIN");
|
|
|
|
|
statsdb->execute("DELETE FROM stats_pgsql_processlist");
|
|
|
|
|
@ -1078,8 +1077,7 @@ void ProxySQL_Admin::stats___pgsql_processlist() {
|
|
|
|
|
}
|
|
|
|
|
row_idx++;
|
|
|
|
|
}
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement1);
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement32);
|
|
|
|
|
// RAII auto-finalizes statement1 and statement32
|
|
|
|
|
statsdb->execute("COMMIT");
|
|
|
|
|
delete resultset;
|
|
|
|
|
}
|
|
|
|
|
@ -1143,8 +1141,6 @@ void ProxySQL_Admin::stats___mysql_free_connections() {
|
|
|
|
|
SQLite3_result * resultset=MyHGM->SQL3_Free_Connections();
|
|
|
|
|
if (resultset==NULL) return;
|
|
|
|
|
|
|
|
|
|
sqlite3_stmt *statement1=NULL;
|
|
|
|
|
sqlite3_stmt *statement32=NULL;
|
|
|
|
|
//sqlite3 *mydb3=statsdb->get_db();
|
|
|
|
|
char *query1=NULL;
|
|
|
|
|
char *query32=NULL;
|
|
|
|
|
@ -1155,11 +1151,13 @@ void ProxySQL_Admin::stats___mysql_free_connections() {
|
|
|
|
|
query32 = (char *)query32s.c_str();
|
|
|
|
|
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
|
|
|
|
|
statsdb->execute("BEGIN");
|
|
|
|
|
statsdb->execute("DELETE FROM stats_mysql_free_connections");
|
|
|
|
|
@ -1257,11 +1255,13 @@ void ProxySQL_Admin::stats___pgsql_free_connections() {
|
|
|
|
|
query32 = (char*)query32s.c_str();
|
|
|
|
|
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
|
|
|
|
|
statsdb->execute("BEGIN");
|
|
|
|
|
statsdb->execute("DELETE FROM stats_pgsql_free_connections");
|
|
|
|
|
@ -1804,8 +1804,6 @@ int ProxySQL_Admin::stats___mysql_query_digests(bool reset, bool copy) {
|
|
|
|
|
if (resultset==NULL) return 0;
|
|
|
|
|
statsdb->execute("BEGIN");
|
|
|
|
|
int rc;
|
|
|
|
|
sqlite3_stmt *statement1=NULL;
|
|
|
|
|
sqlite3_stmt *statement32=NULL;
|
|
|
|
|
//sqlite3 *mydb3=statsdb->get_db();
|
|
|
|
|
char *query1=NULL;
|
|
|
|
|
char *query32=NULL;
|
|
|
|
|
@ -1828,11 +1826,13 @@ int ProxySQL_Admin::stats___mysql_query_digests(bool reset, bool copy) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
int row_idx=0;
|
|
|
|
|
int max_bulk_row_idx=resultset->rows_count/32;
|
|
|
|
|
max_bulk_row_idx=max_bulk_row_idx*32;
|
|
|
|
|
@ -2039,8 +2039,6 @@ void ProxySQL_Admin::stats___mysql_errors(bool reset) {
|
|
|
|
|
if (resultset==NULL) return;
|
|
|
|
|
statsdb->execute("BEGIN");
|
|
|
|
|
int rc;
|
|
|
|
|
sqlite3_stmt *statement1=NULL;
|
|
|
|
|
sqlite3_stmt *statement32=NULL;
|
|
|
|
|
//sqlite3 *mydb3=statsdb->get_db();
|
|
|
|
|
char *query1=NULL;
|
|
|
|
|
char *query32=NULL;
|
|
|
|
|
@ -2061,11 +2059,13 @@ void ProxySQL_Admin::stats___mysql_errors(bool reset) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
int row_idx=0;
|
|
|
|
|
int max_bulk_row_idx=resultset->rows_count/32;
|
|
|
|
|
max_bulk_row_idx=max_bulk_row_idx*32;
|
|
|
|
|
@ -2107,8 +2107,7 @@ void ProxySQL_Admin::stats___mysql_errors(bool reset) {
|
|
|
|
|
}
|
|
|
|
|
row_idx++;
|
|
|
|
|
}
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement1);
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement32);
|
|
|
|
|
// RAII auto-finalizes statement1 and statement32
|
|
|
|
|
statsdb->execute("COMMIT");
|
|
|
|
|
delete resultset;
|
|
|
|
|
}
|
|
|
|
|
@ -2350,8 +2349,6 @@ void ProxySQL_Admin::stats___mysql_prepared_statements_info() {
|
|
|
|
|
if (resultset==NULL) return;
|
|
|
|
|
statsdb->execute("BEGIN");
|
|
|
|
|
int rc;
|
|
|
|
|
sqlite3_stmt *statement1=NULL;
|
|
|
|
|
sqlite3_stmt *statement32=NULL;
|
|
|
|
|
//sqlite3 *mydb3=statsdb->get_db();
|
|
|
|
|
char *query1=NULL;
|
|
|
|
|
char *query32=NULL;
|
|
|
|
|
@ -2362,11 +2359,13 @@ void ProxySQL_Admin::stats___mysql_prepared_statements_info() {
|
|
|
|
|
query32 = (char *)query32s.c_str();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
int row_idx=0;
|
|
|
|
|
int max_bulk_row_idx=resultset->rows_count/32;
|
|
|
|
|
max_bulk_row_idx=max_bulk_row_idx*32;
|
|
|
|
|
@ -2404,8 +2403,7 @@ void ProxySQL_Admin::stats___mysql_prepared_statements_info() {
|
|
|
|
|
}
|
|
|
|
|
row_idx++;
|
|
|
|
|
}
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement1);
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement32);
|
|
|
|
|
// RAII auto-finalizes statement1 and statement32
|
|
|
|
|
statsdb->execute("COMMIT");
|
|
|
|
|
delete resultset;
|
|
|
|
|
}
|
|
|
|
|
@ -2429,11 +2427,13 @@ void ProxySQL_Admin::stats___pgsql_prepared_statements_info() {
|
|
|
|
|
query32 = (char*)query32s.c_str();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query1, &statement1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc1, statement1_unique] = statsdb->prepare_v2(query1);
|
|
|
|
|
ASSERT_SQLITE_OK(rc1, statsdb);
|
|
|
|
|
sqlite3_stmt *statement1 = statement1_unique.get();
|
|
|
|
|
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query32, -1, &statement32, 0);
|
|
|
|
|
rc = statsdb->prepare_v2(query32, &statement32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc, statsdb);
|
|
|
|
|
auto [rc2, statement32_unique] = statsdb->prepare_v2(query32);
|
|
|
|
|
ASSERT_SQLITE_OK(rc2, statsdb);
|
|
|
|
|
sqlite3_stmt *statement32 = statement32_unique.get();
|
|
|
|
|
int row_idx = 0;
|
|
|
|
|
int max_bulk_row_idx = resultset->rows_count / 32;
|
|
|
|
|
max_bulk_row_idx = max_bulk_row_idx * 32;
|
|
|
|
|
@ -2469,8 +2469,7 @@ void ProxySQL_Admin::stats___pgsql_prepared_statements_info() {
|
|
|
|
|
}
|
|
|
|
|
row_idx++;
|
|
|
|
|
}
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement1);
|
|
|
|
|
(*proxy_sqlite3_finalize)(statement32);
|
|
|
|
|
// RAII auto-finalizes statement1 and statement32
|
|
|
|
|
statsdb->execute("COMMIT");
|
|
|
|
|
delete resultset;
|
|
|
|
|
}
|
|
|
|
|
|