refactor: migrate prepare_v2 SIMPLE case in PgSQL_HostGroups_Manager.cpp

Migrated 1 function with 2 prepare_v2 calls to RAII-based pattern in:
- generate_pgsql_hostgroup_attributes_table(): 2 statements (statement1, statement2)

The RAII pattern ensures automatic cleanup and eliminates manual
(*proxy_sqlite3_finalize) calls.
pull/5357/head
Rene Cannao 2 months ago
parent e4704c5a51
commit ee85b11ad5

@ -1363,17 +1363,14 @@ bool PgSQL_HostGroups_Manager::commit(
}
// optimization #829
int rc;
sqlite3_stmt *statement1=NULL;
sqlite3_stmt *statement2=NULL;
//sqlite3 *mydb3=mydb->get_db();
char *query1=(char *)"UPDATE pgsql_servers SET mem_pointer = ?1 WHERE hostgroup_id = ?2 AND hostname = ?3 AND port = ?4";
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query1, -1, &statement1, 0);
rc = mydb->prepare_v2(query1, &statement1);
ASSERT_SQLITE_OK(rc, mydb);
auto [rc1, statement1_unique] = mydb->prepare_v2(query1);
ASSERT_SQLITE_OK(rc1, mydb);
char *query2=(char *)"UPDATE pgsql_servers SET weight = ?1 , status = ?2 , compression = ?3 , max_connections = ?4 , max_replication_lag = ?5 , use_ssl = ?6 , max_latency_ms = ?7 , comment = ?8 WHERE hostgroup_id = ?9 AND hostname = ?10 AND port = ?11";
//rc=(*proxy_sqlite3_prepare_v2)(mydb3, query2, -1, &statement2, 0);
rc = mydb->prepare_v2(query2, &statement2);
ASSERT_SQLITE_OK(rc, mydb);
auto [rc2, statement2_unique] = mydb->prepare_v2(query2);
ASSERT_SQLITE_OK(rc2, mydb);
sqlite3_stmt *statement1 = statement1_unique.get();
sqlite3_stmt *statement2 = statement2_unique.get();
for (std::vector<SQLite3_row *>::iterator it = resultset->rows.begin() ; it != resultset->rows.end(); ++it) {
SQLite3_row *r=*it;
@ -1470,8 +1467,7 @@ bool PgSQL_HostGroups_Manager::commit(
}
}
}
(*proxy_sqlite3_finalize)(statement1);
(*proxy_sqlite3_finalize)(statement2);
// RAII auto-finalizes statement1 and statement2
}
if (resultset) { delete resultset; resultset=NULL; }
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 4, "DELETE FROM pgsql_servers_incoming\n");

Loading…
Cancel
Save