| Kea 3.0.2-git

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< AuditEntryCollection > | AuditEntryCollectionPtr
typedef boost::shared_ptr< AuditEntry > | AuditEntryPtr
| 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< DbLogger > | DbLoggerStack
| 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< IOServiceAccessor > | IOServiceAccessorPtr
| Pointer to an instance of IOServiceAccessor.
typedef std::vector< MySqlBindingPtr > | MySqlBindingCollection
| Collection of bindings.
typedef boost::shared_ptr< MySqlBinding > | MySqlBindingPtr
| Shared pointer to the `Binding` class.
typedef boost::shared_ptr< PgSqlConnection > | PgSqlConnectionPtr
| Defines a pointer to a PgSqlConnection.
typedef boost::shared_ptr< PgSqlResult > | PgSqlResultPtr
typedef boost::shared_ptr< PgSqlResultRowWorker > | PgSqlResultRowWorkerPtr
| Pointer to a result row worker.
typedef boost::shared_ptr< PsqlBindArray > | PsqlBindArrayPtr
| 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< Server > | ServerPtr
| 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 | CONFIG_BACKENDS_REGISTERED = "CONFIG_BACKENDS_REGISTERED"
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 = 29
| Define the PostgreSQL backend version.
const uint32_t | PGSQL_SCHEMA_VERSION_MINOR = 0
constexpr size_t | PGSQL_STATECODE_LEN = 5
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 = 30
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

typedef boost::shared_ptr<AuditEntryCollection> isc::db::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 103 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

typedef std::function<isc::asiolink::IOServicePtr ()> isc::db::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 112 of file database_connection.h.

## ◆ IOServiceAccessorPtr

typedef boost::shared_ptr<IOServiceAccessor> isc::db::IOServiceAccessorPtr

Pointer to an instance of IOServiceAccessor.

Definition at line 115 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

typedef std::vector<MySqlBindingPtr> isc::db::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 639 of file pgsql_connection.h.

## ◆ PgSqlResultPtr

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

Definition at line 129 of file pgsql_exchange.h.

## ◆ PgSqlResultRowWorkerPtr

typedef boost::shared_ptr<PgSqlResultRowWorker> isc::db::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

enum isc::db::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

enum isc::db::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

  Unexpected | if 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()

int isc::db::MysqlExecuteStatement | ( | MYSQL_STMT * | stmt | ) |
| inline

Execute a prepared statement.

Call mysql_stmt_execute and retry on ER_LOCK_DEADLOCK.

Parameters

  stmt | Statement to execute.

Returns
  status (can be ER_LOCK_DEADLOCK after 5 retries).

Definition at line 106 of file mysql_connection.h.

References retryOnDeadlock().

Referenced by isc::db::MySqlConnection::getVersion(), isc::db::MySqlConnection::insertQuery(), isc::db::MySqlConnection::selectQuery(), and isc::db::MySqlConnection::updateDeleteQuery().

Here is the call graph for this function:

## ◆ 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

  mysql | MySQL context.
  stmt | Statement 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

  Fun | Type of the function which must return an int.
  Args | Types of arguments.

Parameters

  fun | The function to call.
  args | Arguments.

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

## ◆ CONFIG_BACKENDS_REGISTERED

const isc::log::MessageID isc::db::CONFIG_BACKENDS_REGISTERED = "CONFIG_BACKENDS_REGISTERED"
| extern

Definition at line 11 of file db_messages.h.

Referenced by isc::cb::BaseConfigBackendMgr< ConfigBackendPoolType >::logRegistered().

## ◆ DATABASE_INVALID_ACCESS

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

Definition at line 12 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::cb::BaseConfigBackendMgr< ConfigBackendPoolType >::logRegistered(), and isc::db::DatabaseConnection::toElement().

## ◆ DATABASE_MYSQL_COMMIT

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

Definition at line 13 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 14 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 15 of file db_messages.h.

## ◆ DATABASE_MYSQL_ROLLBACK

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

Definition at line 16 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 17 of file db_messages.h.

## ◆ DATABASE_PGSQL_COMMIT

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

Definition at line 18 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 19 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 20 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 21 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 22 of file db_messages.h.

## ◆ DATABASE_PGSQL_ROLLBACK

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

Definition at line 23 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 24 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 25 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 26 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 27 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 28 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 29 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

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(), isc::dhcp::LegalLogDbLogger::LegalLogDbLogger(), and isc::dhcp::LegalLogDbLogger::~LegalLogDbLogger().

## ◆ 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 isc::dhcp::LegalLogDbLogger::LegalLogDbLogger(), isc::dhcp::LegalLogDbLogger::~LegalLogDbLogger(), and 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:
= {
{ DB_INVALID_ACCESS, DATABASE_INVALID_ACCESS },
{ PGSQL_INITIALIZE_SCHEMA, DATABASE_PGSQL_INITIALIZE_SCHEMA },
{ PGSQL_DEALLOC_ERROR, DATABASE_PGSQL_DEALLOC_ERROR },
{ PGSQL_FATAL_ERROR, DATABASE_PGSQL_FATAL_ERROR },
{ PGSQL_START_TRANSACTION, DATABASE_PGSQL_START_TRANSACTION },
{ PGSQL_COMMIT, DATABASE_PGSQL_COMMIT },
{ PGSQL_ROLLBACK, DATABASE_PGSQL_ROLLBACK },
{ PGSQL_CREATE_SAVEPOINT, DATABASE_PGSQL_CREATE_SAVEPOINT },
{ PGSQL_ROLLBACK_SAVEPOINT, DATABASE_PGSQL_ROLLBACK_SAVEPOINT },
{ PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED, DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED },
{ MYSQL_INITIALIZE_SCHEMA, DATABASE_MYSQL_INITIALIZE_SCHEMA },
{ MYSQL_FATAL_ERROR, DATABASE_MYSQL_FATAL_ERROR },
{ MYSQL_START_TRANSACTION, DATABASE_MYSQL_START_TRANSACTION },
{ MYSQL_COMMIT, DATABASE_MYSQL_COMMIT },
{ MYSQL_ROLLBACK, DATABASE_MYSQL_ROLLBACK },
}
isc::db::DATABASE_PGSQL_FATAL_ERROR
const isc::log::MessageID DATABASE_PGSQL_FATAL_ERROR
Definition db_messages.h:21
isc::db::DATABASE_MYSQL_COMMIT
const isc::log::MessageID DATABASE_MYSQL_COMMIT
Definition db_messages.h:13
isc::db::DATABASE_MYSQL_INITIALIZE_SCHEMA
const isc::log::MessageID DATABASE_MYSQL_INITIALIZE_SCHEMA
Definition db_messages.h:15
isc::db::DATABASE_PGSQL_INITIALIZE_SCHEMA
const isc::log::MessageID DATABASE_PGSQL_INITIALIZE_SCHEMA
Definition db_messages.h:22
isc::db::DB_INVALID_ACCESS
@ DB_INVALID_ACCESS
Definition db_log.h:52
isc::db::MYSQL_START_TRANSACTION
@ MYSQL_START_TRANSACTION
Definition db_log.h:66
isc::db::PGSQL_ROLLBACK_SAVEPOINT
@ PGSQL_ROLLBACK_SAVEPOINT
Definition db_log.h:61
isc::db::PGSQL_CREATE_SAVEPOINT
@ PGSQL_CREATE_SAVEPOINT
Definition db_log.h:60
isc::db::PGSQL_ROLLBACK
@ PGSQL_ROLLBACK
Definition db_log.h:59
isc::db::MYSQL_INITIALIZE_SCHEMA
@ MYSQL_INITIALIZE_SCHEMA
Definition db_log.h:64
isc::db::PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED
@ PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED
Definition db_log.h:62
isc::db::PGSQL_COMMIT
@ PGSQL_COMMIT
Definition db_log.h:58
isc::db::PGSQL_START_TRANSACTION
@ PGSQL_START_TRANSACTION
Definition db_log.h:57
isc::db::PGSQL_FATAL_ERROR
@ PGSQL_FATAL_ERROR
Definition db_log.h:56
isc::db::MYSQL_ROLLBACK
@ MYSQL_ROLLBACK
Definition db_log.h:68
isc::db::PGSQL_INITIALIZE_SCHEMA
@ PGSQL_INITIALIZE_SCHEMA
Definition db_log.h:54
isc::db::PGSQL_DEALLOC_ERROR
@ PGSQL_DEALLOC_ERROR
Definition db_log.h:55
isc::db::MYSQL_FATAL_ERROR
@ MYSQL_FATAL_ERROR
Definition db_log.h:65
isc::db::MYSQL_COMMIT
@ MYSQL_COMMIT
Definition db_log.h:67
isc::db::DATABASE_PGSQL_COMMIT
const isc::log::MessageID DATABASE_PGSQL_COMMIT
Definition db_messages.h:18
isc::db::DATABASE_PGSQL_CREATE_SAVEPOINT
const isc::log::MessageID DATABASE_PGSQL_CREATE_SAVEPOINT
Definition db_messages.h:19
isc::db::DATABASE_INVALID_ACCESS
const isc::log::MessageID DATABASE_INVALID_ACCESS
Definition db_messages.h:12
isc::db::DATABASE_PGSQL_ROLLBACK_SAVEPOINT
const isc::log::MessageID DATABASE_PGSQL_ROLLBACK_SAVEPOINT
Definition db_messages.h:24
isc::db::DATABASE_MYSQL_ROLLBACK
const isc::log::MessageID DATABASE_MYSQL_ROLLBACK
Definition db_messages.h:16
isc::db::DATABASE_PGSQL_DEALLOC_ERROR
const isc::log::MessageID DATABASE_PGSQL_DEALLOC_ERROR
Definition db_messages.h:20
isc::db::DATABASE_PGSQL_START_TRANSACTION
const isc::log::MessageID DATABASE_PGSQL_START_TRANSACTION
Definition db_messages.h:25
isc::db::DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED
const isc::log::MessageID DATABASE_PGSQL_TCP_USER_TIMEOUT_UNSUPPORTED
Definition db_messages.h:26
isc::db::DATABASE_PGSQL_ROLLBACK
const isc::log::MessageID DATABASE_PGSQL_ROLLBACK
Definition db_messages.h:23
isc::db::DATABASE_MYSQL_FATAL_ERROR
const isc::log::MessageID DATABASE_MYSQL_FATAL_ERROR
Definition db_messages.h:14
isc::db::DATABASE_MYSQL_START_TRANSACTION
const isc::log::MessageID DATABASE_MYSQL_START_TRANSACTION
Definition db_messages.h:17

Map of translated messages.

DHCP server database message map.

Definition at line 24 of file db_log.cc.

## ◆ MLM_FALSE

const my_bool isc::db::MLM_FALSE = false

MySQL false value.

Definition at line 36 of file mysql_constants.h.

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

## ◆ 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::db::MySqlConnection::selectQuery().

## ◆ MLM_MYSQL_FETCH_SUCCESS

const int isc::db::MLM_MYSQL_FETCH_SUCCESS = 0

check for bool size

MySQL fetch success code.

Definition at line 46 of file mysql_constants.h.

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

## ◆ 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().

## ◆ 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 41 of file mysql_connection.cc.

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

## ◆ MYSQL_SCHEMA_VERSION_MAJOR

const uint32_t isc::db::MYSQL_SCHEMA_VERSION_MAJOR = 30

Definition at line 55 of file mysql_constants.h.

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

## ◆ MYSQL_SCHEMA_VERSION_MINOR

const uint32_t isc::db::MYSQL_SCHEMA_VERSION_MINOR = 0

Definition at line 56 of file mysql_constants.h.

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

## ◆ 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 34 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 = 29

Define the PostgreSQL backend version.

Definition at line 21 of file pgsql_connection.h.

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

## ◆ PGSQL_SCHEMA_VERSION_MINOR

const uint32_t isc::db::PGSQL_SCHEMA_VERSION_MINOR = 0

Definition at line 22 of file pgsql_connection.h.

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

## ◆ PGSQL_STATECODE_LEN

size_t isc::db::PGSQL_STATECODE_LEN = 5
| constexpr

Definition at line 37 of file pgsql_connection.cc.

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