struct TaggedStatement {
/// Query index
- /// @todo cppcheck flags index as unused
- // cppcheck-suppress unusedStructMember
PgSqlLeaseMgr::StatementIndex index;
/// Number of parameters for a given query
void
PgSqlLeaseMgr::prepareStatements() {
- statements_.clear();
- statements_.resize(NUM_STATEMENTS, PgSqlStatementBind());
-
for(int i = 0; tagged_statements[i].text != NULL; ++ i) {
// Prepare all statements queries with all known fields datatype
PGresult* r = PQprepare(conn_, tagged_statements[i].name,
<< PQerrorMessage(conn_));
}
- statements_[i].stmt_name = tagged_statements[i].name;
- statements_[i].stmt_nbparams = tagged_statements[i].nbparams;
PQclear(r);
}
}
bool
PgSqlLeaseMgr::addLeaseCommon(StatementIndex stindex,
PsqlBindArray& bind_array) {
-// std::cout << "addLeaseCommon: bind_array: " << bind_array.toText();
- PGresult * r = PQexecPrepared(conn_, statements_[stindex].stmt_name,
- statements_[stindex].stmt_nbparams,
+ PGresult * r = PQexecPrepared(conn_, tagged_statements[stindex].name,
+ tagged_statements[stindex].nbparams,
&bind_array.values_[0],
&bind_array.lengths_[0],
&bind_array.formats_[0], 0);
}
isc_throw(DbOperationError, "unable to INSERT for " <<
- statements_[stindex].stmt_name << ", reason: " <<
+ tagged_statements[stindex].name << ", reason: " <<
errorMsg);
}
LeaseCollection& result,
bool single) const {
LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE_DETAIL,
- DHCPSRV_PGSQL_GET_ADDR4).arg(statements_[stindex].stmt_name);
+ DHCPSRV_PGSQL_GET_ADDR4).arg(tagged_statements[stindex].name);
- PGresult* r = PQexecPrepared(conn_, statements_[stindex].stmt_name,
- statements_[stindex].stmt_nbparams,
+ PGresult* r = PQexecPrepared(conn_, tagged_statements[stindex].name,
+ tagged_statements[stindex].nbparams,
&bind_array.values_[0],
&bind_array.lengths_[0],
&bind_array.formats_[0], 0);
PQclear(r);
isc_throw(MultipleRecords, "multiple records were found in the "
"database where only one was expected for query "
- << statements_[stindex].stmt_name);
+ << tagged_statements[stindex].name);
}
for(int i = 0; i < rows; ++ i) {
PsqlBindArray& bind_array,
const LeasePtr& lease) {
LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE_DETAIL,
- DHCPSRV_PGSQL_ADD_ADDR4).arg(statements_[stindex].stmt_name);
+ DHCPSRV_PGSQL_ADD_ADDR4).arg(tagged_statements[stindex].name);
- PGresult * r = PQexecPrepared(conn_, statements_[stindex].stmt_name,
- statements_[stindex].stmt_nbparams,
+ PGresult * r = PQexecPrepared(conn_, tagged_statements[stindex].name,
+ tagged_statements[stindex].nbparams,
&bind_array.values_[0],
&bind_array.lengths_[0],
&bind_array.formats_[0], 0);
bool
PgSqlLeaseMgr::deleteLeaseCommon(StatementIndex stindex,
PsqlBindArray& bind_array) {
- PGresult * r = PQexecPrepared(conn_, statements_[stindex].stmt_name,
- statements_[stindex].stmt_nbparams,
+ PGresult * r = PQexecPrepared(conn_, tagged_statements[stindex].name,
+ tagged_statements[stindex].nbparams,
&bind_array.values_[0],
&bind_array.lengths_[0],
&bind_array.formats_[0], 0);
PQclear(r);
isc_throw(DbOperationError, "Statement exec faild:" << " for: " <<
- statements_[index].stmt_name << ", reason: " <<
+ tagged_statements[index].name << ", reason: " <<
PQerrorMessage(conn_));
}
}