diff --git a/lib/PgSQL_HostGroups_Manager.cpp b/lib/PgSQL_HostGroups_Manager.cpp index bc76c1618..81e2cbd52 100644 --- a/lib/PgSQL_HostGroups_Manager.cpp +++ b/lib/PgSQL_HostGroups_Manager.cpp @@ -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::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");