refactor: migrate prepare_v2 SIMPLE cases in ProxySQL_Admin_Stats.cpp

Migrated all prepare_v2 calls to RAII-based pattern in 5 functions:
- stats___mysql_processlist(): 2 statements (statement1, statement32)
- stats___pgsql_processlist(): 2 statements
- stats___mysql_free_connections(): 2 statements
- stats___mysql_query_rules(): 2 statements
- stats___mysql_query_digest(): 2 statements

And removed manual finalization calls for all functions.

The RAII pattern ensures automatic cleanup and eliminates manual
(*proxy_sqlite3_finalize) calls.
v3.0-misc260209
Rene Cannao 1 week ago
parent ee85b11ad5
commit 7c0ff770f6

@ -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;
}

Loading…
Cancel
Save