|
Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
|
Universal query builder that adapts to different database types. More...
#include <query_builder.h>

Public Member Functions | |
| query_builder (database_types db_type=database_types::none) | |
| ~query_builder ()=default | |
| query_builder (query_builder &&) noexcept=default | |
| query_builder & | operator= (query_builder &&) noexcept=default |
| query_builder (const query_builder &)=delete | |
| query_builder & | operator= (const query_builder &)=delete |
| query_builder & | for_database (database_types db_type) |
| query_builder & | select (const std::vector< std::string > &columns) |
| query_builder & | from (const std::string &table) |
| query_builder & | where (const std::string &field, const std::string &op, const core::database_value &value) |
| query_builder & | where (const query_condition &condition) |
| query_builder & | join (const std::string &table, const std::string &condition, join_type type=join_type::inner) |
| query_builder & | order_by (const std::string &column, sort_order order=sort_order::asc) |
| query_builder & | group_by (const std::vector< std::string > &columns) |
| query_builder & | group_by (const std::string &column) |
| query_builder & | having (const std::string &condition) |
| query_builder & | limit (size_t count) |
| query_builder & | offset (size_t count) |
| query_builder & | insert_into (const std::string &table) |
| query_builder & | values (const std::map< std::string, core::database_value > &data) |
| query_builder & | values (const std::vector< std::map< std::string, core::database_value > > &rows) |
| query_builder & | update (const std::string &table) |
| query_builder & | set (const std::string &field, const core::database_value &value) |
| query_builder & | set (const std::map< std::string, core::database_value > &data) |
| query_builder & | delete_from (const std::string &table) |
| query_builder & | collection (const std::string &name) |
| query_builder & | key (const std::string &key) |
| std::string | build () const |
| core::database_result | execute (core::database_backend *db) const |
| void | reset () |
| database_types | get_database_type () const |
Private Member Functions | |
| void | ensure_dialect () |
Private Attributes | |
| database_types | db_type_ |
| std::unique_ptr< query_dialect > | dialect_ |
Universal query builder that adapts to different database types.
This class provides a unified interface for building queries across different database backends (PostgreSQL, SQLite, MongoDB, Redis) using the Strategy pattern.
Definition at line 104 of file query_builder.h.
|
explicit |
Definition at line 163 of file query_builder.cpp.
References ensure_dialect().

|
default |
|
defaultnoexcept |
|
delete |
| std::string database::query_builder::build | ( | ) | const |
Definition at line 357 of file query_builder.cpp.
References dialect_.
Referenced by execute(), main(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

| query_builder & database::query_builder::collection | ( | const std::string & | name | ) |
Definition at line 339 of file query_builder.cpp.
References dialect_, and ensure_dialect().

| query_builder & database::query_builder::delete_from | ( | const std::string & | table | ) |
Definition at line 330 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main().


|
private |
Definition at line 395 of file query_builder.cpp.
References database::create_dialect(), db_type_, dialect_, and database::none.
Referenced by collection(), delete_from(), for_database(), from(), group_by(), having(), insert_into(), join(), key(), limit(), offset(), order_by(), query_builder(), select(), set(), set(), update(), values(), values(), where(), and where().


| core::database_result database::query_builder::execute | ( | core::database_backend * | db | ) | const |
Definition at line 365 of file query_builder.cpp.
References build(), and database::core::database_backend::select_query().

| query_builder & database::query_builder::for_database | ( | database_types | db_type | ) |
Definition at line 169 of file query_builder.cpp.
References db_type_, dialect_, and ensure_dialect().
Referenced by main(), database::tests::TEST_F(), database::tests::TEST_F(), and database::tests::TEST_F().


| query_builder & database::query_builder::from | ( | const std::string & | table | ) |
Definition at line 188 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by database::tests::TEST_F().


| database_types database::query_builder::get_database_type | ( | ) | const |
Definition at line 390 of file query_builder.cpp.
References db_type_.
| query_builder & database::query_builder::group_by | ( | const std::string & | column | ) |
Definition at line 242 of file query_builder.cpp.
References group_by().

| query_builder & database::query_builder::group_by | ( | const std::vector< std::string > & | columns | ) |
Definition at line 233 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by group_by(), and main().


| query_builder & database::query_builder::having | ( | const std::string & | condition | ) |
Definition at line 247 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main().


| query_builder & database::query_builder::insert_into | ( | const std::string & | table | ) |
Definition at line 274 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), and database::tests::TEST_F().


| query_builder & database::query_builder::join | ( | const std::string & | table, |
| const std::string & | condition, | ||
| join_type | type = join_type::inner ) |
Definition at line 215 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), and database::tests::TEST_F().


| query_builder & database::query_builder::key | ( | const std::string & | key | ) |
Definition at line 348 of file query_builder.cpp.
References dialect_, ensure_dialect(), and key().
Referenced by key().


| query_builder & database::query_builder::limit | ( | size_t | count | ) |
Definition at line 256 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), TEST_F(), and TEST_F().


| query_builder & database::query_builder::offset | ( | size_t | count | ) |
Definition at line 265 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main().


|
delete |
|
defaultnoexcept |
| query_builder & database::query_builder::order_by | ( | const std::string & | column, |
| sort_order | order = sort_order::asc ) |
Definition at line 224 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), database::tests::TEST_F(), and TEST_F().


| void database::query_builder::reset | ( | ) |
Definition at line 383 of file query_builder.cpp.
References dialect_.
Referenced by main(), database::tests::TEST_F(), and TEST_F().

| query_builder & database::query_builder::select | ( | const std::vector< std::string > & | columns | ) |
Definition at line 179 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().


| query_builder & database::query_builder::set | ( | const std::map< std::string, core::database_value > & | data | ) |
Definition at line 321 of file query_builder.cpp.
References dialect_, and ensure_dialect().

| query_builder & database::query_builder::set | ( | const std::string & | field, |
| const core::database_value & | value ) |
Definition at line 310 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), and database::tests::TEST_F().


| query_builder & database::query_builder::update | ( | const std::string & | table | ) |
Definition at line 301 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), and database::tests::TEST_F().


| query_builder & database::query_builder::values | ( | const std::map< std::string, core::database_value > & | data | ) |
Definition at line 283 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), and database::tests::TEST_F().


| query_builder & database::query_builder::values | ( | const std::vector< std::map< std::string, core::database_value > > & | rows | ) |
Definition at line 292 of file query_builder.cpp.
References dialect_, and ensure_dialect().

| query_builder & database::query_builder::where | ( | const query_condition & | condition | ) |
Definition at line 206 of file query_builder.cpp.
References dialect_, and ensure_dialect().

| query_builder & database::query_builder::where | ( | const std::string & | field, |
| const std::string & | op, | ||
| const core::database_value & | value ) |
Definition at line 197 of file query_builder.cpp.
References dialect_, and ensure_dialect().
Referenced by main(), database::tests::TEST_F(), database::tests::TEST_F(), database::tests::TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().


|
private |
Definition at line 160 of file query_builder.h.
Referenced by ensure_dialect(), for_database(), and get_database_type().
|
private |
Definition at line 161 of file query_builder.h.
Referenced by build(), collection(), delete_from(), ensure_dialect(), for_database(), from(), group_by(), having(), insert_into(), join(), key(), limit(), offset(), order_by(), reset(), select(), set(), set(), update(), values(), values(), where(), and where().