#include <boost/scoped_ptr.hpp>
#include <vector>
-
+#include <stdint.h>
namespace isc {
namespace dhcp {
+/// @brief Define PostgreSQL backend version: 3.0
+const uint32_t PG_SCHEMA_VERSION_MAJOR = 3;
+const uint32_t PG_SCHEMA_VERSION_MINOR = 0;
+
// Maximum number of parameters that can be used a statement
// @todo This allows us to use an initializer list (since we can't
// require C++11). It's unlikely we'd go past this many a single
// statement.
const size_t PGSQL_MAX_PARAMETERS_IN_QUERY = 32;
-/// @brief Defines a Postgresql SQL statement
+/// @brief Define a PostgreSQL SQL statement
///
/// Each statement is associated with an index, which is used to reference the
/// associated prepared statement.
};
/// @brief Constants for PostgreSQL data types
-/// This are defined by PostreSQL in <catalog/pg_type.h>, but including
+/// These are defined by PostgreSQL in <catalog/pg_type.h>, but including
/// this file is extraordinarily convoluted, so we'll use these to fill-in.
+/// @{
const size_t OID_NONE = 0; // PostgreSQL infers proper type
const size_t OID_BOOL = 16;
const size_t OID_BYTEA = 17;
const size_t OID_TEXT = 25;
const size_t OID_VARCHAR = 1043;
const size_t OID_TIMESTAMP = 1114;
-
-//@}
+///@}
/// @brief RAII wrapper for Posgtresql Result sets
///
/// that use instances of PgSqlConnection.
class PgSqlConnection : public DatabaseConnection {
public:
- /// @brief Defines the PgSql error state for a duplicate key error
+ /// @brief Define the PgSql error state for a duplicate key error
static const char DUPLICATE_KEY[];
/// @brief Constructor
/// database.
class PgSqlLeaseExchange : public PgSqlExchange {
public:
-
PgSqlLeaseExchange()
: addr_str_(""), valid_lifetime_(0), valid_lft_str_(""),
expire_(0), expire_str_(""), subnet_id_(0), subnet_id_str_(""),
<< " does not match expected count:" << NUM_STATEMENTS);
}
- pair<uint32_t, uint32_t> code_version(PG_CURRENT_VERSION, PG_CURRENT_MINOR);
+ pair<uint32_t, uint32_t> code_version(PG_SCHEMA_VERSION_MAJOR, PG_SCHEMA_VERSION_MINOR);
pair<uint32_t, uint32_t> db_version = getVersion();
if (code_version != db_version) {
isc_throw(DbOpenError, "Posgresql schema version mismatch: need version: "
std::string
PgSqlLeaseMgr::getDBVersion() {
std::stringstream tmp;
- tmp << "PostgreSQL backend " << PG_CURRENT_VERSION;
- tmp << "." << PG_CURRENT_MINOR;
+ tmp << "PostgreSQL backend " << PG_SCHEMA_VERSION_MAJOR;
+ tmp << "." << PG_SCHEMA_VERSION_MINOR;
tmp << ", library " << PQlibVersion();
return (tmp.str());
}
class PgSqlLease4Exchange;
class PgSqlLease6Exchange;
-/// Defines PostgreSQL backend version: 3.0
-const uint32_t PG_CURRENT_VERSION = 3;
-const uint32_t PG_CURRENT_MINOR = 0;
-
/// @brief PostgreSQL Lease Manager
///
/// This class provides the \ref isc::dhcp::LeaseMgr interface to the PostgreSQL
// Check version
pair<uint32_t, uint32_t> version;
ASSERT_NO_THROW(version = lmptr_->getVersion());
- EXPECT_EQ(PG_CURRENT_VERSION, version.first);
- EXPECT_EQ(PG_CURRENT_MINOR, version.second);
+ EXPECT_EQ(PG_SCHEMA_VERSION_MAJOR, version.first);
+ EXPECT_EQ(PG_SCHEMA_VERSION_MINOR, version.second);
}
////////////////////////////////////////////////////////////////////////////////