Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
postgres_manager.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
5#pragma once
6
8
9namespace database
10{
20 {
21 public:
25 postgres_manager(void);
26
30 virtual ~postgres_manager(void);
31
38 database_types type() const override;
39
45 kcenon::common::VoidResult initialize(const core::connection_config& config) override;
46
51 kcenon::common::VoidResult shutdown() override;
52
57 bool is_initialized() const override;
58
66 kcenon::common::Result<core::database_result> select_query(const std::string& query_string) override;
67
74 kcenon::common::VoidResult execute_query(const std::string& query_string) override;
75
80 kcenon::common::VoidResult begin_transaction() override;
81
86 kcenon::common::VoidResult commit_transaction() override;
87
92 kcenon::common::VoidResult rollback_transaction() override;
93
98 bool in_transaction() const override;
99
104 std::string last_error() const override;
105
110 std::map<std::string, std::string> connection_info() const override;
111
112 private:
119 kcenon::common::Result<uint64_t> execute_modification_query(const std::string& query_string);
120
121 private:
125 std::string last_error_;
126 std::string connection_string_;
127 };
128} // namespace database
Abstract base class for database backends.
Manages PostgreSQL database operations.
std::string last_error_
Last error message.
kcenon::common::VoidResult begin_transaction() override
Begin a transaction.
postgres_manager(void)
Default constructor.
std::string last_error() const override
Get last error message from backend.
bool in_transaction_
Whether a transaction is active.
kcenon::common::VoidResult shutdown() override
Shutdown the database backend gracefully.
kcenon::common::Result< uint64_t > execute_modification_query(const std::string &query_string)
Common implementation for INSERT, UPDATE, and DELETE queries.
virtual ~postgres_manager(void)
Destructor.
bool initialized_
Whether the backend is initialized.
std::map< std::string, std::string > connection_info() const override
Get backend-specific connection information.
kcenon::common::VoidResult initialize(const core::connection_config &config) override
Initialize the database backend.
kcenon::common::VoidResult execute_query(const std::string &query_string) override
Executes a general SQL query (DDL, DML) on PostgreSQL.
bool is_initialized() const override
Check if backend is initialized and ready.
kcenon::common::VoidResult commit_transaction() override
Commit the current transaction.
std::string connection_string_
Connection string for connection_info.
kcenon::common::VoidResult rollback_transaction() override
Rollback the current transaction.
database_types type() const override
Returns the specific type of the database.
bool in_transaction() const override
Check if backend is currently in a transaction.
void * connection_
Pointer to the underlying PostgreSQL connection object.
kcenon::common::Result< core::database_result > select_query(const std::string &query_string) override
Executes a SELECT query on the connected PostgreSQL database and returns the resulting data.
Abstract interface for database backends.
database_types
Represents various database backends or modes.
Configuration for database connection.