Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database Namespace Reference

Namespaces

namespace  async
 
namespace  backends
 
namespace  concepts
 
namespace  core
 
namespace  detail
 
namespace  integrated
 
namespace  monitoring
 
namespace  orm
 
namespace  protocol
 
namespace  query
 
namespace  security
 
namespace  testing
 
namespace  tests
 
namespace  utils
 

Classes

class  database_context
 Dependency injection container for database components. More...
 
class  database_manager
 Manages database connections and operations. More...
 
class  immutable_query_builder
 Thread-safe immutable query builder using functional programming style. More...
 
class  postgres_manager
 Manages PostgreSQL database operations. More...
 
class  query_builder
 Universal query builder that adapts to different database types. More...
 
class  query_condition
 Represents a WHERE condition in a query. More...
 
class  query_dialect
 Abstract interface for database-specific query formatting. More...
 

Typedefs

template<typename T >
using Result = kcenon::common::Result<T>
 Primary Result type - use this for all database operations.
 
using VoidResult = kcenon::common::VoidResult
 Primary VoidResult type - use this for void operations.
 
using error_info = kcenon::common::error_info
 Primary error type.
 

Enumerations

enum class  error_code {
  success = 0 , unknown_error = -1 , invalid_argument = -2 , not_implemented = -3 ,
  invalid_state = -4 , connection_failed = -5 , query_failed = -6 , timeout = -7
}
 Error codes for database operations. More...
 
enum class  database_types : uint8_t {
  none = 0 , postgres = 1 , sqlite = 3 , oracle = 4 ,
  mongodb = 5 , redis = 6
}
 Represents various database backends or modes. More...
 
enum class  join_type {
  inner , left , right , full_outer ,
  cross
}
 Types of SQL joins. More...
 
enum class  sort_order { asc , desc }
 Sort order for ORDER BY clauses. More...
 

Functions

constexpr const char * to_string (database_types type) noexcept
 Converts database_types enum to string representation.
 
std::unique_ptr< query_dialectcreate_dialect (database_types type)
 Factory function to create appropriate dialect for database type.
 

Typedef Documentation

◆ error_info

using database::error_info = kcenon::common::error_info

Primary error type.

Definition at line 36 of file result.h.

◆ Result

template<typename T >
using database::Result = kcenon::common::Result<T>

Primary Result type - use this for all database operations.

Definition at line 30 of file result.h.

◆ VoidResult

using database::VoidResult = kcenon::common::VoidResult

Primary VoidResult type - use this for void operations.

Definition at line 33 of file result.h.

Enumeration Type Documentation

◆ database_types

enum class database::database_types : uint8_t
strong

Represents various database backends or modes.

This enumeration is used to specify which database type is being targeted for operations like connection, querying, and so forth.

Enumerator
none 

No specific database type is set.

postgres 

Indicates a PostgreSQL database.

sqlite 

Indicates a SQLite database.

oracle 

Indicates an Oracle database (future implementation).

mongodb 

Indicates a MongoDB database (future implementation).

redis 

Indicates a Redis database (future implementation).

Examples
/home/runner/work/database_system/database_system/database/core/database_context.h, and /home/runner/work/database_system/database_system/database/database_manager.h.

Definition at line 23 of file database_types.h.

23 : uint8_t {
27 none = 0,
28
32 postgres = 1,
33
37 sqlite = 3,
38
42 oracle = 4,
43
47 mongodb = 5,
48
52 redis = 6
53 };
@ none
No specific database type is set.
@ mongodb
Indicates a MongoDB database (future implementation).
@ sqlite
Indicates a SQLite database.
@ redis
Indicates a Redis database (future implementation).
@ oracle
Indicates an Oracle database (future implementation).
@ postgres
Indicates a PostgreSQL database.

◆ error_code

enum class database::error_code
strong

Error codes for database operations.

Enumerator
success 
unknown_error 
invalid_argument 
not_implemented 
invalid_state 
connection_failed 
query_failed 
timeout 

Definition at line 43 of file result.h.

◆ join_type

enum class database::join_type
strong

Types of SQL joins.

Enumerator
inner 
left 
right 
full_outer 
cross 

Definition at line 23 of file query_builder.h.

◆ sort_order

enum class database::sort_order
strong

Sort order for ORDER BY clauses.

Enumerator
asc 
desc 

Definition at line 36 of file query_builder.h.

Function Documentation

◆ create_dialect()

std::unique_ptr< query_dialect > database::create_dialect ( database_types type)

Factory function to create appropriate dialect for database type.

Parameters
typeThe database type.
Returns
Unique pointer to the appropriate dialect implementation.
Exceptions
std::invalid_argumentif database type is not supported.

Definition at line 13 of file query_dialect.cpp.

14 {
15 switch (type) {
16 case database_types::postgres:
17 case database_types::sqlite:
18 return std::make_unique<detail::sql_dialect>(type);
19#ifdef USE_MONGODB
20 case database_types::mongodb:
21 return std::make_unique<detail::mongodb_dialect>();
22#endif
23#ifdef USE_REDIS
24 case database_types::redis:
25 return std::make_unique<detail::redis_dialect>();
26#endif
27 default:
28 throw std::invalid_argument("Unsupported database type");
29 }
30 }

References mongodb, postgres, redis, and sqlite.

Referenced by database::query_builder::ensure_dialect().

Here is the caller graph for this function:

◆ to_string()

const char * database::to_string ( database_types type)
constexprnoexcept

Converts database_types enum to string representation.

Parameters
typeThe database type to convert.
Returns
String representation of the database type.

Definition at line 60 of file database_types.h.

61 {
62 switch (type) {
63 case database_types::none: return "none";
64 case database_types::postgres: return "postgres";
65 case database_types::sqlite: return "sqlite";
66 case database_types::oracle: return "oracle";
67 case database_types::mongodb: return "mongodb";
68 case database_types::redis: return "redis";
69 default: return "unknown";
70 }
71 }

References mongodb, none, oracle, postgres, redis, and sqlite.