75 static constexpr const char*
backend_name() {
return "sqlite_backend"; }
89 kcenon::common::Result<core::database_result>
select_query(
const std::string& query_string)
override;
91 kcenon::common::VoidResult
execute_query(
const std::string& query_string)
override;
93 [[nodiscard]] kcenon::common::Result<core::database_result>
select_prepared(
94 const std::string& query,
95 const std::vector<core::database_value>& params)
override;
98 const std::string& query,
99 const std::vector<core::database_value>& params)
override;
121 kcenon::common::VoidResult
do_initialize(const core::connection_config& config);
CRTP template base class for database backends.
Registry for database backend plugins.
SQLite implementation of database_backend interface.
~sqlite_backend() override=default
Destructor - ensures proper cleanup.
core::database_value convert_sqlite_value(void *stmt, int column_index)
Convert SQLite column value to database_value.
core::connection_config connection_config_
Cached connection config.
kcenon::common::VoidResult do_initialize(const core::connection_config &config)
Database-specific initialization logic.
kcenon::common::VoidResult execute_prepared(const std::string &query, const std::vector< core::database_value > ¶ms) override
Execute a parameterized DML/DDL query (prepared statement)
sqlite_backend()
Default constructor.
kcenon::common::VoidResult rollback_transaction() override
Rollback the current transaction.
std::map< std::string, std::string > connection_info() const override
Get backend-specific connection information.
kcenon::common::VoidResult begin_transaction() override
Begin a transaction.
kcenon::common::VoidResult do_shutdown()
Database-specific shutdown logic.
unsigned int execute_modification_query(const std::string &query_string)
Execute a modification query (INSERT, UPDATE, DELETE)
kcenon::common::Result< core::database_result > select_prepared(const std::string &query, const std::vector< core::database_value > ¶ms) override
Execute a parameterized SELECT query (prepared statement)
kcenon::common::VoidResult commit_transaction() override
Commit the current transaction.
kcenon::common::VoidResult execute_query(const std::string &query_string) override
Execute a general SQL query (DDL, DML)
bool in_transaction() const override
Check if backend is currently in a transaction.
void * connection_
SQLite connection (sqlite3*)
std::string last_error() const override
Get last error message from backend.
kcenon::common::Result< core::database_result > select_query(const std::string &query_string) override
Execute a SELECT query.
static constexpr const char * backend_name()
Backend name for error messages.
std::string last_error_
Last error message.
std::recursive_mutex sqlite_mutex_
Mutex for thread safety.
std::atomic< bool > in_transaction_
Transaction state.
CRTP template base class for database backends.
std::variant< std::string, int64_t, double, bool, std::nullptr_t > database_value
database_types
Represents various database backends or modes.
@ sqlite
Indicates a SQLite database.
Configuration for database connection.