Kea 2.5.8
isc::db Namespace Reference

Classes

class  AmbiguousDatabase
 Specification of the database backend to be used yields multiple results. More...
 
class  AuditEntry
 Represents a single entry in the audit table. More...
 
struct  AuditEntryModificationTimeIdTag
 Tag used to access index by modification time. More...
 
struct  AuditEntryObjectIdTag
 Tag used to access index by object id. More...
 
struct  AuditEntryObjectTypeTag
 Tag used to access index by object type. More...
 
class  BackendSelector
 Config Backend selector. More...
 
class  DatabaseConnection
 Common database connection class. More...
 
class  DataTruncated
 Data is truncated. More...
 
struct  DB_LOG
 DB_LOG_* logic. More...
 
struct  DB_LOG_DEBUG
 
struct  DB_LOG_ERROR
 
struct  DB_LOG_FATAL
 all DB_LOG specializations More...
 
struct  DB_LOG_INFO
 
struct  DB_LOG_WARN
 
class  DbAccessParser
 Parse Database Parameters. More...
 
class  DbConfigError
 Error detected in the database configuration. More...
 
class  DbConnectionInitWithRetry
 RAII class to enable DB reconnect retries on server startup. More...
 
class  DbConnectionUnusable
 Exception thrown when a specific connection has been rendered unusable either through loss of connectivity or API lib error. More...
 
class  DbInvalidPort
 Invalid port number. More...
 
class  DbInvalidReadOnly
 Invalid 'readonly' value specification. More...
 
class  DbInvalidTimeout
 Invalid Timeout. More...
 
class  DbLogger
 Database logger class. More...
 
class  DbOpenError
 Exception thrown on failure to open database. More...
 
class  DbOpenErrorWithRetry
 Exception thrown on failure to open database but permit retries. More...
 
class  DbOperationError
 Exception thrown on failure to execute a database function. More...
 
class  DuplicateEntry
 Database duplicate entry error. More...
 
class  InvalidAddressFamily
 Invalid address family used as input to Lease Manager. More...
 
class  InvalidRange
 Upper bound address is lower than lower bound address while retrieving a range of leases. More...
 
class  InvalidType
 Invalid type exception. More...
 
class  MultipleRecords
 Multiple lease records found where one expected. More...
 
class  MySqlBinding
 MySQL binding used in prepared statements. More...
 
struct  MySqlBindingTraits
 Trait class for column types supported in MySQL. More...
 
struct  MySqlBindingTraits< boost::posix_time::ptime >
 Specialization for MySQL TIMESTAMP type. More...
 
struct  MySqlBindingTraits< float >
 
struct  MySqlBindingTraits< int16_t >
 Speclialization for MySQL SMALLINT type. More...
 
struct  MySqlBindingTraits< int32_t >
 Specialization for MySQL INT type. More...
 
struct  MySqlBindingTraits< int64_t >
 Specialization for MySQL BIGINT type. More...
 
struct  MySqlBindingTraits< int8_t >
 Specialization for MySQL TINYINT type. More...
 
struct  MySqlBindingTraits< std::string >
 Specialization for MySQL TEXT type. More...
 
struct  MySqlBindingTraits< uint16_t >
 Specialization for MySQL SMALLINT UNSIGNED type. More...
 
struct  MySqlBindingTraits< uint32_t >
 Specialization for MySQL INT UNSIGNED type. More...
 
struct  MySqlBindingTraits< uint64_t >
 Specialization for MySQL BIGINT UNSIGNED type. More...
 
struct  MySqlBindingTraits< uint8_t >
 Specialization for MySQL TINYINT UNSIGNED type. More...
 
class  MySqlConnection
 Common MySQL Connector Pool. More...
 
class  MySqlFreeResult
 Fetch and Release MySQL Results. More...
 
class  MySqlHolder
 MySQL Handle Holder. More...
 
class  MySqlTransaction
 RAII object representing MySQL transaction. More...
 
class  NoDatabaseName
 Exception thrown if name of database is not specified. More...
 
class  NoRowsAffected
 Thrown when it is expected that some rows are affected, usually during a DELETE or an UPDATE, but none are. More...
 
class  NoSuchDatabase
 Error when specified database could not be found in the server configuration. More...
 
class  NullKeyError
 Key is NULL but was specified NOT NULL. More...
 
class  PgSqlConnection
 Common PgSql Connector Pool. More...
 
class  PgSqlExchange
 Base class for marshalling data to and from PostgreSQL. More...
 
class  PgSqlHolder
 Postgresql connection handle Holder. More...
 
class  PgSqlResult
 RAII wrapper for PostgreSQL Result sets. More...
 
class  PgSqlResultRowWorker
 Convenience class which facilitates fetching column values from a result set row. More...
 
struct  PgSqlTaggedStatement
 Define a PostgreSQL statement. More...
 
class  PgSqlTransaction
 RAII object representing a PostgreSQL transaction. More...
 
struct  PsqlBindArray
 
class  ReadOnlyDb
 Attempt to modify data in read-only database. More...
 
class  SchemaInitializationFailed
 Thrown when an initialization of the schema failed. More...
 
class  Server
 Represents information about a Kea server in the database. More...
 
class  ServerFetcher
 Utility class used to fetch Server objects from the ServerCollection. More...
 
class  ServerSelector
 Server selector for associating objects in a database with specific servers. More...
 
struct  ServerTagIndexTag
 Tag identifying an index by server tag. More...
 
struct  TaggedStatement
 MySQL Selection Statements. More...
 

Typedefs

typedef boost::multi_index_container< AuditEntryPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_non_unique< boost::multi_index::tag< AuditEntryObjectTypeTag >, boost::multi_index::composite_key< AuditEntry, boost::multi_index::const_mem_fun< AuditEntry, std::string, &AuditEntry::getObjectType >, boost::multi_index::const_mem_fun< AuditEntry, AuditEntry::ModificationType, &AuditEntry::getModificationType > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< AuditEntryModificationTimeIdTag >, boost::multi_index::composite_key< AuditEntry, boost::multi_index::const_mem_fun< AuditEntry, boost::posix_time::ptime, &AuditEntry::getModificationTime >, boost::multi_index::const_mem_fun< AuditEntry, uint64_t, &AuditEntry::getRevisionId > > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag< AuditEntryObjectIdTag >, boost::multi_index::const_mem_fun< AuditEntry, uint64_t, &AuditEntry::getObjectId > > > > AuditEntryCollection
 Multi index container holding AuditEntry instances.
 
typedef boost::shared_ptr< AuditEntryCollectionAuditEntryCollectionPtr
 
typedef boost::shared_ptr< AuditEntryAuditEntryPtr
 Pointer to the AuditEntry object.
 
typedef boost::shared_ptr< const std::string > ConstStringPtr
 Structure used to bind C++ input values to dynamic SQL parameters The structure contains three vectors which store the input values, data lengths, and formats.
 
typedef std::function< bool(util::ReconnectCtlPtr db_reconnect_ctl)> DbCallback
 Defines a callback prototype for propagating events upward.
 
typedef std::list< DbLoggerDbLoggerStack
 Database logger stack.
 
typedef std::function< isc::asiolink::IOServicePtr()> IOServiceAccessor
 Function which returns the IOService that can be used to recover the connection.
 
typedef boost::shared_ptr< IOServiceAccessorIOServiceAccessorPtr
 Pointer to an instance of IOServiceAccessor.
 
typedef std::vector< MySqlBindingPtrMySqlBindingCollection
 Collection of bindings.
 
typedef boost::shared_ptr< MySqlBindingMySqlBindingPtr
 Shared pointer to the Binding class.
 
typedef boost::shared_ptr< PgSqlConnectionPgSqlConnectionPtr
 Defines a pointer to a PgSqlConnection.
 
typedef boost::shared_ptr< PgSqlResultPgSqlResultPtr
 
typedef boost::shared_ptr< PgSqlResultRowWorkerPgSqlResultRowWorkerPtr
 Pointer to a result row worker.
 
typedef boost::shared_ptr< PsqlBindArrayPsqlBindArrayPtr
 Defines a smart pointer to PsqlBindArray.
 
typedef boost::multi_index_container< ServerPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< ServerTagIndexTag >, boost::multi_index::const_mem_fun< Server, std::string, &Server::getServerTagAsText > > > > ServerCollection
 Multi index container for Server.
 
typedef boost::shared_ptr< ServerServerPtr
 Shared pointer to the Server class.
 

Enumerations

enum  log_type_t {
  fatal , error , warn , info ,
  debug
}
 log type enumerations for use in DB_LOG specializations More...
 
enum  DbMessageID {
  DB_INVALID_ACCESS , PGSQL_INITIALIZE_SCHEMA , PGSQL_DEALLOC_ERROR , PGSQL_FATAL_ERROR ,
  PGSQL_START_TRANSACTION , PGSQL_COMMIT , PGSQL_ROLLBACK , PGSQL_CREATE_SAVEPOINT ,
  PGSQL_ROLLBACK_SAVEPOINT , PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED , MYSQL_INITIALIZE_SCHEMA , MYSQL_FATAL_ERROR ,
  MYSQL_START_TRANSACTION , MYSQL_COMMIT , MYSQL_ROLLBACK
}
 Database messages. More...
 

Functions

void checkDbLoggerStack ()
 Check database logger stack.
 
int MysqlExecuteStatement (MYSQL_STMT *stmt)
 Execute a prepared statement.
 
int MysqlQuery (MYSQL *mysql, const char *stmt)
 Execute a literal statement.
 
template<typename Fun , typename... Args>
int retryOnDeadlock (Fun &fun, Args... args)
 Retry on InnoDB deadlock.
 

Variables

const isc::log::MessageID DATABASE_INVALID_ACCESS = "DATABASE_INVALID_ACCESS"
 
isc::log::Logger database_logger ("database")
 Common database library logger.
 
const isc::log::MessageID DATABASE_MYSQL_COMMIT = "DATABASE_MYSQL_COMMIT"
 
const isc::log::MessageID DATABASE_MYSQL_FATAL_ERROR = "DATABASE_MYSQL_FATAL_ERROR"
 
const isc::log::MessageID DATABASE_MYSQL_INITIALIZE_SCHEMA = "DATABASE_MYSQL_INITIALIZE_SCHEMA"
 
const isc::log::MessageID DATABASE_MYSQL_ROLLBACK = "DATABASE_MYSQL_ROLLBACK"
 
const isc::log::MessageID DATABASE_MYSQL_START_TRANSACTION = "DATABASE_MYSQL_START_TRANSACTION"
 
const isc::log::MessageID DATABASE_PGSQL_COMMIT = "DATABASE_PGSQL_COMMIT"
 
const isc::log::MessageID DATABASE_PGSQL_CREATE_SAVEPOINT = "DATABASE_PGSQL_CREATE_SAVEPOINT"
 
const isc::log::MessageID DATABASE_PGSQL_DEALLOC_ERROR = "DATABASE_PGSQL_DEALLOC_ERROR"
 
const isc::log::MessageID DATABASE_PGSQL_FATAL_ERROR = "DATABASE_PGSQL_FATAL_ERROR"
 
const isc::log::MessageID DATABASE_PGSQL_INITIALIZE_SCHEMA = "DATABASE_PGSQL_INITIALIZE_SCHEMA"
 
const isc::log::MessageID DATABASE_PGSQL_ROLLBACK = "DATABASE_PGSQL_ROLLBACK"
 
const isc::log::MessageID DATABASE_PGSQL_ROLLBACK_SAVEPOINT = "DATABASE_PGSQL_ROLLBACK_SAVEPOINT"
 
const isc::log::MessageID DATABASE_PGSQL_START_TRANSACTION = "DATABASE_PGSQL_START_TRANSACTION"
 
const isc::log::MessageID DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED = "DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED"
 
const isc::log::MessageID DATABASE_TO_JSON_BOOLEAN_ERROR = "DATABASE_TO_JSON_BOOLEAN_ERROR"
 
const isc::log::MessageID DATABASE_TO_JSON_INTEGER_ERROR = "DATABASE_TO_JSON_INTEGER_ERROR"
 
const isc::log::MessageID DATABASE_TO_JSON_UNKNOWN_TYPE_ERROR = "DATABASE_TO_JSON_UNKNOWN_TYPE_ERROR"
 
std::mutex db_logger_mutex
 Global mutex to protect logger stack.
 
DbLoggerStack db_logger_stack = { db_logger_translator }
 Global database logger stack (initialized to database logger)
 
DbLogger db_logger_translator (database_logger, db_message_map)
 Database logger translator.
 
const DbLogger::MessageMap db_message_map
 Map of translated messages.
 
const int MYSQL_DEFAULT_CONNECTION_TIMEOUT = 5
 
const int PGSQL_DEFAULT_CONNECTION_TIMEOUT = 5
 
const size_t PGSQL_MAX_PARAMETERS_IN_QUERY = 128
 
const uint32_t PGSQL_SCHEMA_VERSION_MAJOR = 20
 Define the PostgreSQL backend version.
 
const uint32_t PGSQL_SCHEMA_VERSION_MINOR = 0
 
const int DB_DBG_TRACE_DETAIL = isc::log::DBGLVL_TRACE_DETAIL
 Database logging levels.
 
Current database schema version values.
const uint32_t MYSQL_SCHEMA_VERSION_MAJOR = 21
 
const uint32_t MYSQL_SCHEMA_VERSION_MINOR = 0
 
const size_t OID_NONE = 0
 Constants for PostgreSQL data types 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_BOOL = 16
 
const size_t OID_BYTEA = 17
 
const size_t OID_INT8 = 20
 
const size_t OID_INT2 = 21
 
const size_t OID_INT4 = 23
 
const size_t OID_TEXT = 25
 
const size_t OID_VARCHAR = 1043
 
const size_t OID_TIMESTAMP = 1114
 

MySQL constants.

typedef char my_bools
 my_bools type for vectors.
 
typedef bool my_bool
 my_bool type in MySQL 8.x.
 
const my_bool MLM_FALSE = false
 MySQL false value.
 
const my_bool MLM_TRUE = true
 MySQL true value.
 
const int MLM_MYSQL_FETCH_SUCCESS = 0
 check for bool size
 
const int MLM_MYSQL_FETCH_FAILURE = 0
 MySQL fetch failure code.
 

Typedef Documentation

◆ AuditEntryCollection

typedef boost::multi_index_container< AuditEntryPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_non_unique< boost::multi_index::tag<AuditEntryObjectTypeTag>, boost::multi_index::composite_key< AuditEntry, boost::multi_index::const_mem_fun< AuditEntry, std::string, &AuditEntry::getObjectType >, boost::multi_index::const_mem_fun< AuditEntry, AuditEntry::ModificationType, &AuditEntry::getModificationType > > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag<AuditEntryModificationTimeIdTag>, boost::multi_index::composite_key< AuditEntry, boost::multi_index::const_mem_fun< AuditEntry, boost::posix_time::ptime, &AuditEntry::getModificationTime >, boost::multi_index::const_mem_fun< AuditEntry, uint64_t, &AuditEntry::getRevisionId > > >, boost::multi_index::hashed_non_unique< boost::multi_index::tag<AuditEntryObjectIdTag>, boost::multi_index::const_mem_fun< AuditEntry, uint64_t, &AuditEntry::getObjectId > > >> isc::db::AuditEntryCollection

Multi index container holding AuditEntry instances.

This container provides indexes to access the audit entries by object type and modification time.

Definition at line 291 of file audit_entry.h.

◆ AuditEntryCollectionPtr

Definition at line 294 of file audit_entry.h.

◆ AuditEntryPtr

typedef boost::shared_ptr<AuditEntry> isc::db::AuditEntryPtr

Pointer to the AuditEntry object.

Definition at line 26 of file audit_entry.h.

◆ ConstStringPtr

typedef boost::shared_ptr<const std::string> isc::db::ConstStringPtr

Structure used to bind C++ input values to dynamic SQL parameters The structure contains three vectors which store the input values, data lengths, and formats.

These vectors are passed directly into the PostgreSQL execute call.

Note that the data values are stored as pointers. These pointers need to be valid for the duration of the PostgreSQL statement execution. In other words populating them with pointers to values that go out of scope before statement is executed is a bad idea.

Other than vectors or buffers of binary data, all other values are currently converted to their string representation prior to sending them to PostgreSQL. All of the add() method variants which accept a non-string value internally create the conversion string which is then retained in the bind array to ensure scope.

smart pointer to const std::strings used by PsqlBindArray to ensure scope of strings supplying exchange values

Definition at line 149 of file pgsql_exchange.h.

◆ DbCallback

typedef std::function<bool (util::ReconnectCtlPtr db_reconnect_ctl)> isc::db::DbCallback

Defines a callback prototype for propagating events upward.

Definition at line 105 of file database_connection.h.

◆ DbLoggerStack

typedef std::list<DbLogger> isc::db::DbLoggerStack

Database logger stack.

Definition at line 102 of file db_log.h.

◆ IOServiceAccessor

Function which returns the IOService that can be used to recover the connection.

This accessor is used to lazy retrieve the IOService when the connection is lost. It is useful to retrieve it at a later time to support hook libraries which create managers on load and set IOService later on by using the dhcp4_srv_configured and dhcp6_srv_configured hooks.

Definition at line 114 of file database_connection.h.

◆ IOServiceAccessorPtr

Pointer to an instance of IOServiceAccessor.

Definition at line 117 of file database_connection.h.

◆ my_bool

typedef bool isc::db::my_bool

my_bool type in MySQL 8.x.

Definition at line 33 of file mysql_constants.h.

◆ my_bools

typedef char isc::db::my_bools

my_bools type for vectors.

Note
vector<bool> is specialized into a bitset, so vector<char> must be used instead

Definition at line 22 of file mysql_constants.h.

◆ MySqlBindingCollection

Collection of bindings.

Definition at line 665 of file mysql_binding.h.

◆ MySqlBindingPtr

typedef boost::shared_ptr<MySqlBinding> isc::db::MySqlBindingPtr

Shared pointer to the Binding class.

Definition at line 139 of file mysql_binding.h.

◆ PgSqlConnectionPtr

typedef boost::shared_ptr<PgSqlConnection> isc::db::PgSqlConnectionPtr

Defines a pointer to a PgSqlConnection.

Definition at line 637 of file pgsql_connection.h.

◆ PgSqlResultPtr

typedef boost::shared_ptr<PgSqlResult> isc::db::PgSqlResultPtr

Definition at line 129 of file pgsql_exchange.h.

◆ PgSqlResultRowWorkerPtr

Pointer to a result row worker.

Definition at line 999 of file pgsql_exchange.h.

◆ PsqlBindArrayPtr

typedef boost::shared_ptr<PsqlBindArray> isc::db::PsqlBindArrayPtr

Defines a smart pointer to PsqlBindArray.

Definition at line 510 of file pgsql_exchange.h.

◆ ServerCollection

typedef boost::multi_index_container< ServerPtr, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag<ServerTagIndexTag>, boost::multi_index::const_mem_fun<Server, std::string, &Server::getServerTagAsText> > >> isc::db::ServerCollection

Multi index container for Server.

It merely contains one index at the moment, but the number of indexes is likely to grow.

Definition at line 35 of file server_collection.h.

◆ ServerPtr

typedef boost::shared_ptr<Server> isc::db::ServerPtr

Shared pointer to the Server class.

Definition at line 22 of file server.h.

Enumeration Type Documentation

◆ DbMessageID

Database messages.

Enumerator
DB_INVALID_ACCESS 
PGSQL_INITIALIZE_SCHEMA 
PGSQL_DEALLOC_ERROR 
PGSQL_FATAL_ERROR 
PGSQL_START_TRANSACTION 
PGSQL_COMMIT 
PGSQL_ROLLBACK 
PGSQL_CREATE_SAVEPOINT 
PGSQL_ROLLBACK_SAVEPOINT 
PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED 
MYSQL_INITIALIZE_SCHEMA 
MYSQL_FATAL_ERROR 
MYSQL_START_TRANSACTION 
MYSQL_COMMIT 
MYSQL_ROLLBACK 

Definition at line 51 of file db_log.h.

◆ log_type_t

log type enumerations for use in DB_LOG specializations

Enumerator
fatal 
error 
warn 
info 
debug 

Definition at line 116 of file db_log.h.

Function Documentation

◆ checkDbLoggerStack()

void isc::db::checkDbLoggerStack ( )

Check database logger stack.

Exceptions
Unexpectedif the stack is empty

Definition at line 61 of file db_log.cc.

References db_logger_stack, and isc_throw.

Referenced by isc::db::DB_LOG< log_type >::DB_LOG().

◆ MysqlExecuteStatement()

◆ MysqlQuery()

int isc::db::MysqlQuery ( MYSQL *  mysql,
const char *  stmt 
)
inline

Execute a literal statement.

Call mysql_query and retry on ER_LOCK_DEADLOCK.

Parameters
mysqlMySQL context.
stmtStatement to execute.
Returns
status (can be ER_LOCK_DEADLOCK after 5 retries).

Definition at line 117 of file mysql_connection.h.

References retryOnDeadlock().

+ Here is the call graph for this function:

◆ retryOnDeadlock()

template<typename Fun , typename... Args>
int isc::db::retryOnDeadlock ( Fun &  fun,
Args...  args 
)

Retry on InnoDB deadlock.

When f(args) returns ER_LOCK_DEADLOCK f(args) is called again up to 5 times.

Template Parameters
FunType of the function which must return an int.
ArgsTypes of arguments.
Parameters
funThe function to call.
argsArguments.
Returns
status (can be ER_LOCK_DEADLOCK after 5 retries).

Definition at line 89 of file mysql_connection.h.

Referenced by MysqlExecuteStatement(), and MysqlQuery().

Variable Documentation

◆ DATABASE_INVALID_ACCESS

const isc::log::MessageID isc::db::DATABASE_INVALID_ACCESS = "DATABASE_INVALID_ACCESS"
extern

Definition at line 11 of file db_messages.h.

◆ database_logger

isc::log::Logger isc::db::database_logger ( "database"  )

Common database library logger.

Definition at line 46 of file db_log.h.

Referenced by isc::db::DatabaseConnection::toElement().

◆ DATABASE_MYSQL_COMMIT

const isc::log::MessageID isc::db::DATABASE_MYSQL_COMMIT = "DATABASE_MYSQL_COMMIT"
extern

Definition at line 12 of file db_messages.h.

◆ DATABASE_MYSQL_FATAL_ERROR

const isc::log::MessageID isc::db::DATABASE_MYSQL_FATAL_ERROR = "DATABASE_MYSQL_FATAL_ERROR"
extern

Definition at line 13 of file db_messages.h.

◆ DATABASE_MYSQL_INITIALIZE_SCHEMA

const isc::log::MessageID isc::db::DATABASE_MYSQL_INITIALIZE_SCHEMA = "DATABASE_MYSQL_INITIALIZE_SCHEMA"
extern

Definition at line 14 of file db_messages.h.

◆ DATABASE_MYSQL_ROLLBACK

const isc::log::MessageID isc::db::DATABASE_MYSQL_ROLLBACK = "DATABASE_MYSQL_ROLLBACK"
extern

Definition at line 15 of file db_messages.h.

◆ DATABASE_MYSQL_START_TRANSACTION

const isc::log::MessageID isc::db::DATABASE_MYSQL_START_TRANSACTION = "DATABASE_MYSQL_START_TRANSACTION"
extern

Definition at line 16 of file db_messages.h.

◆ DATABASE_PGSQL_COMMIT

const isc::log::MessageID isc::db::DATABASE_PGSQL_COMMIT = "DATABASE_PGSQL_COMMIT"
extern

Definition at line 17 of file db_messages.h.

◆ DATABASE_PGSQL_CREATE_SAVEPOINT

const isc::log::MessageID isc::db::DATABASE_PGSQL_CREATE_SAVEPOINT = "DATABASE_PGSQL_CREATE_SAVEPOINT"
extern

Definition at line 18 of file db_messages.h.

◆ DATABASE_PGSQL_DEALLOC_ERROR

const isc::log::MessageID isc::db::DATABASE_PGSQL_DEALLOC_ERROR = "DATABASE_PGSQL_DEALLOC_ERROR"
extern

Definition at line 19 of file db_messages.h.

◆ DATABASE_PGSQL_FATAL_ERROR

const isc::log::MessageID isc::db::DATABASE_PGSQL_FATAL_ERROR = "DATABASE_PGSQL_FATAL_ERROR"
extern

Definition at line 20 of file db_messages.h.

◆ DATABASE_PGSQL_INITIALIZE_SCHEMA

const isc::log::MessageID isc::db::DATABASE_PGSQL_INITIALIZE_SCHEMA = "DATABASE_PGSQL_INITIALIZE_SCHEMA"
extern

Definition at line 21 of file db_messages.h.

◆ DATABASE_PGSQL_ROLLBACK

const isc::log::MessageID isc::db::DATABASE_PGSQL_ROLLBACK = "DATABASE_PGSQL_ROLLBACK"
extern

Definition at line 22 of file db_messages.h.

◆ DATABASE_PGSQL_ROLLBACK_SAVEPOINT

const isc::log::MessageID isc::db::DATABASE_PGSQL_ROLLBACK_SAVEPOINT = "DATABASE_PGSQL_ROLLBACK_SAVEPOINT"
extern

Definition at line 23 of file db_messages.h.

◆ DATABASE_PGSQL_START_TRANSACTION

const isc::log::MessageID isc::db::DATABASE_PGSQL_START_TRANSACTION = "DATABASE_PGSQL_START_TRANSACTION"
extern

Definition at line 24 of file db_messages.h.

◆ DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED

const isc::log::MessageID isc::db::DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED = "DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED"
extern

Definition at line 25 of file db_messages.h.

◆ DATABASE_TO_JSON_BOOLEAN_ERROR

const isc::log::MessageID isc::db::DATABASE_TO_JSON_BOOLEAN_ERROR = "DATABASE_TO_JSON_BOOLEAN_ERROR"
extern

Definition at line 26 of file db_messages.h.

Referenced by isc::db::DatabaseConnection::toElement().

◆ DATABASE_TO_JSON_INTEGER_ERROR

const isc::log::MessageID isc::db::DATABASE_TO_JSON_INTEGER_ERROR = "DATABASE_TO_JSON_INTEGER_ERROR"
extern

Definition at line 27 of file db_messages.h.

Referenced by isc::db::DatabaseConnection::toElement().

◆ DATABASE_TO_JSON_UNKNOWN_TYPE_ERROR

const isc::log::MessageID isc::db::DATABASE_TO_JSON_UNKNOWN_TYPE_ERROR = "DATABASE_TO_JSON_UNKNOWN_TYPE_ERROR"
extern

Definition at line 28 of file db_messages.h.

Referenced by isc::db::DatabaseConnection::toElement().

◆ DB_DBG_TRACE_DETAIL

const int isc::db::DB_DBG_TRACE_DETAIL = isc::log::DBGLVL_TRACE_DETAIL

Database logging levels.

Defines the levels used to output debug messages in the database support. Note that higher numbers equate to more verbose (and detailed) output.

Additional information

Record detailed tracing. This is generally reserved for tracing access to the lease database.

Definition at line 21 of file db_log.cc.

Referenced by isc::db::MySqlConnection::commit(), isc::db::PgSqlConnection::commit(), isc::db::PgSqlConnection::createSavepoint(), isc::db::MySqlConnection::rollback(), isc::db::PgSqlConnection::rollback(), isc::db::MySqlConnection::startTransaction(), and isc::db::PgSqlConnection::startTransaction().

◆ db_logger_mutex

std::mutex isc::db::db_logger_mutex

Global mutex to protect logger stack.

Definition at line 50 of file db_log.cc.

Referenced by isc::db::DB_LOG< log_type >::DB_LOG().

◆ db_logger_stack

DbLoggerStack isc::db::db_logger_stack = { db_logger_translator }

Global database logger stack (initialized to database logger)

Definition at line 48 of file db_log.cc.

Referenced by checkDbLoggerStack().

◆ db_logger_translator

db::DbLogger isc::db::db_logger_translator ( database_logger  ,
db_message_map   
)

Database logger translator.

Definition at line 212 of file db_log.h.

◆ db_message_map

const db::DbLogger::MessageMap isc::db::db_message_map
Initial value:
= {
{ PGSQL_DEALLOC_ERROR, DATABASE_PGSQL_DEALLOC_ERROR },
{ PGSQL_FATAL_ERROR, DATABASE_PGSQL_FATAL_ERROR },
}
const isc::log::MessageID DATABASE_MYSQL_COMMIT
Definition: db_messages.h:12
const isc::log::MessageID DATABASE_MYSQL_INITIALIZE_SCHEMA
Definition: db_messages.h:14
const isc::log::MessageID DATABASE_PGSQL_INITIALIZE_SCHEMA
Definition: db_messages.h:21
@ DB_INVALID_ACCESS
Definition: db_log.h:52
@ MYSQL_START_TRANSACTION
Definition: db_log.h:66
@ PGSQL_ROLLBACK_SAVEPOINT
Definition: db_log.h:61
@ PGSQL_CREATE_SAVEPOINT
Definition: db_log.h:60
@ PGSQL_ROLLBACK
Definition: db_log.h:59
@ MYSQL_INITIALIZE_SCHEMA
Definition: db_log.h:64
@ PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED
Definition: db_log.h:62
@ PGSQL_COMMIT
Definition: db_log.h:58
@ PGSQL_START_TRANSACTION
Definition: db_log.h:57
@ MYSQL_ROLLBACK
Definition: db_log.h:68
@ PGSQL_INITIALIZE_SCHEMA
Definition: db_log.h:54
@ MYSQL_FATAL_ERROR
Definition: db_log.h:65
@ MYSQL_COMMIT
Definition: db_log.h:67
const isc::log::MessageID DATABASE_PGSQL_COMMIT
Definition: db_messages.h:17
const isc::log::MessageID DATABASE_PGSQL_CREATE_SAVEPOINT
Definition: db_messages.h:18
const isc::log::MessageID DATABASE_INVALID_ACCESS
Definition: db_messages.h:11
const isc::log::MessageID DATABASE_PGSQL_ROLLBACK_SAVEPOINT
Definition: db_messages.h:23
const isc::log::MessageID DATABASE_MYSQL_ROLLBACK
Definition: db_messages.h:15
const isc::log::MessageID DATABASE_PGSQL_START_TRANSACTION
Definition: db_messages.h:24
const isc::log::MessageID DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED
Definition: db_messages.h:25
const isc::log::MessageID DATABASE_PGSQL_ROLLBACK
Definition: db_messages.h:22
const isc::log::MessageID DATABASE_MYSQL_FATAL_ERROR
Definition: db_messages.h:13
const isc::log::MessageID DATABASE_MYSQL_START_TRANSACTION
Definition: db_messages.h:16

Map of translated messages.

DHCP server database message map.

Definition at line 24 of file db_log.cc.

◆ MLM_FALSE

◆ MLM_MYSQL_FETCH_FAILURE

const int isc::db::MLM_MYSQL_FETCH_FAILURE = 0

MySQL fetch failure code.

Definition at line 49 of file mysql_constants.h.

Referenced by isc::dhcp::MySqlHostDataSourceImpl::getHostCollection(), and isc::db::MySqlConnection::selectQuery().

◆ MLM_MYSQL_FETCH_SUCCESS

const int isc::db::MLM_MYSQL_FETCH_SUCCESS = 0

◆ MLM_TRUE

const my_bool isc::db::MLM_TRUE = true

MySQL true value.

Definition at line 39 of file mysql_constants.h.

Referenced by isc::db::MySqlBinding::amNull(), isc::dhcp::MySqlLease4Exchange::createBindForReceive(), isc::dhcp::MySqlLease6Exchange::createBindForReceive(), isc::dhcp::MySqlLease4Exchange::createBindForSend(), isc::dhcp::MySqlLease6Exchange::createBindForSend(), isc::dhcp::MySqlHostDataSource::del(), isc::dhcp::MySqlHostDataSource::del4(), isc::dhcp::MySqlHostDataSource::del6(), isc::dhcp::MySqlLeaseMgr::deleteLease(), isc::dhcp::MySqlHostDataSource::get4(), isc::dhcp::MySqlHostDataSource::get6(), isc::dhcp::MySqlHostDataSource::getAll(), isc::dhcp::MySqlHostDataSource::getAll4(), isc::dhcp::MySqlHostDataSource::getAll6(), isc::dhcp::MySqlHostDataSource::getAllbyHostname4(), isc::dhcp::MySqlHostDataSource::getAllbyHostname6(), isc::dhcp::MySqlLeaseExchange::getColumnsInError(), isc::dhcp::MySqlHostDataSourceImpl::getHost(), isc::dhcp::MySqlLeaseMgr::getLease4(), isc::dhcp::MySqlLeaseMgr::getLease6(), isc::dhcp::MySqlLease4Exchange::getLeaseData(), isc::dhcp::MySqlLeaseMgr::getLeases4(), isc::dhcp::MySqlLeaseMgr::getLeases4ByRelayId(), isc::dhcp::MySqlLeaseMgr::getLeases4ByRemoteId(), isc::dhcp::MySqlLeaseMgr::getLeases6(), isc::dhcp::MySqlLeaseMgr::getLeases6ByRelayId(), isc::dhcp::MySqlLeaseMgr::getLeases6ByRemoteId(), isc::dhcp::MySqlHostDataSource::getPage4(), isc::dhcp::MySqlHostDataSource::getPage6(), isc::dhcp::MySqlLeaseStatsQuery::start(), isc::dhcp::MySqlLeaseMgr::updateLease4(), isc::dhcp::MySqlLeaseMgr::upgradeExtendedInfo4(), and isc::dhcp::MySqlLeaseMgr::upgradeExtendedInfo6().

◆ MYSQL_DEFAULT_CONNECTION_TIMEOUT

const int isc::db::MYSQL_DEFAULT_CONNECTION_TIMEOUT = 5
Todo:
: Migrate this default value to src/bin/dhcpX/simple_parserX.cc

Definition at line 39 of file mysql_connection.cc.

Referenced by isc::db::MySqlConnection::openDatabase().

◆ MYSQL_SCHEMA_VERSION_MAJOR

const uint32_t isc::db::MYSQL_SCHEMA_VERSION_MAJOR = 21

◆ MYSQL_SCHEMA_VERSION_MINOR

const uint32_t isc::db::MYSQL_SCHEMA_VERSION_MINOR = 0

◆ OID_BOOL

const size_t isc::db::OID_BOOL = 16

Definition at line 58 of file pgsql_connection.h.

◆ OID_BYTEA

const size_t isc::db::OID_BYTEA = 17

Definition at line 59 of file pgsql_connection.h.

◆ OID_INT2

const size_t isc::db::OID_INT2 = 21

Definition at line 61 of file pgsql_connection.h.

◆ OID_INT4

const size_t isc::db::OID_INT4 = 23

Definition at line 62 of file pgsql_connection.h.

◆ OID_INT8

const size_t isc::db::OID_INT8 = 20

Definition at line 60 of file pgsql_connection.h.

◆ OID_NONE

const size_t isc::db::OID_NONE = 0

Constants for PostgreSQL data types 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.

Definition at line 57 of file pgsql_connection.h.

Referenced by isc::db::PgSqlConnection::executeSQL().

◆ OID_TEXT

const size_t isc::db::OID_TEXT = 25

Definition at line 63 of file pgsql_connection.h.

◆ OID_TIMESTAMP

const size_t isc::db::OID_TIMESTAMP = 1114

Definition at line 65 of file pgsql_connection.h.

◆ OID_VARCHAR

const size_t isc::db::OID_VARCHAR = 1043

Definition at line 64 of file pgsql_connection.h.

◆ PGSQL_DEFAULT_CONNECTION_TIMEOUT

const int isc::db::PGSQL_DEFAULT_CONNECTION_TIMEOUT = 5
Todo:
: migrate this default timeout to src/bin/dhcpX/simple_parserX.cc

Definition at line 49 of file pgsql_connection.cc.

◆ PGSQL_MAX_PARAMETERS_IN_QUERY

const size_t isc::db::PGSQL_MAX_PARAMETERS_IN_QUERY = 128

Definition at line 28 of file pgsql_connection.h.

◆ PGSQL_SCHEMA_VERSION_MAJOR

const uint32_t isc::db::PGSQL_SCHEMA_VERSION_MAJOR = 20

Define the PostgreSQL backend version.

Definition at line 21 of file pgsql_connection.h.

Referenced by isc::db::PgSqlConnection::ensureSchemaVersion(), and isc::dhcp::PgSqlLeaseMgr::getDBVersion().

◆ PGSQL_SCHEMA_VERSION_MINOR

const uint32_t isc::db::PGSQL_SCHEMA_VERSION_MINOR = 0