Commit a8d2dc9a authored by Tomek Mrugalski's avatar Tomek Mrugalski 🛰
Browse files

Merge branch 'schema-version' of https://github.com/andreipavelQ/kea into...

Merge branch 'schema-version' of https://github.com/andreipavelQ/kea into andreipavelQ-schema-version
parents 5d7d19b5 7ef4a190
......@@ -12,18 +12,22 @@
#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.
......@@ -46,8 +50,9 @@ struct PgSqlTaggedStatement {
};
/// @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;
......@@ -57,8 +62,7 @@ const size_t OID_INT4 = 23; // 4 byte int
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
///
......@@ -289,7 +293,7 @@ private:
/// 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
......
......@@ -230,7 +230,6 @@ namespace dhcp {
/// 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_(""),
......@@ -819,7 +818,7 @@ PgSqlLeaseMgr::PgSqlLeaseMgr(const DatabaseConnection::ParameterMap& parameters)
<< " 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: "
......@@ -834,8 +833,8 @@ PgSqlLeaseMgr::~PgSqlLeaseMgr() {
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());
}
......
......@@ -25,10 +25,6 @@ namespace dhcp {
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
......
......@@ -190,8 +190,8 @@ TEST_F(PgSqlLeaseMgrTest, checkVersion) {
// 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);
}
////////////////////////////////////////////////////////////////////////////////
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment