Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database::query_dialect Class Referenceabstract

Abstract interface for database-specific query formatting. More...

#include <query_dialect.h>

Inheritance diagram for database::query_dialect:
Inheritance graph
Collaboration diagram for database::query_dialect:
Collaboration graph

Public Types

enum class  query_type {
  none , select , insert , update ,
  delete_query
}
 

Public Member Functions

virtual ~query_dialect ()=default
 
virtual void set_query_type (query_type type)=0
 
virtual query_type get_query_type () const =0
 
virtual void set_select_columns (const std::vector< std::string > &columns)=0
 
virtual void set_from_table (const std::string &table)=0
 
virtual void add_where_condition (const query_condition &condition)=0
 
virtual void add_where_condition (const std::string &field, const std::string &op, const core::database_value &value)=0
 
virtual void add_join (const std::string &table, const std::string &condition, join_type type)=0
 
virtual void set_group_by (const std::vector< std::string > &columns)=0
 
virtual void set_having (const std::string &condition)=0
 
virtual void add_order_by (const std::string &column, sort_order order)=0
 
virtual void set_limit (size_t count)=0
 
virtual void set_offset (size_t count)=0
 
virtual void set_insert_table (const std::string &table)=0
 
virtual void set_insert_data (const std::map< std::string, core::database_value > &data)=0
 
virtual void set_insert_rows (const std::vector< std::map< std::string, core::database_value > > &rows)=0
 
virtual void set_update_table (const std::string &table)=0
 
virtual void set_update_data (const std::map< std::string, core::database_value > &data)=0
 
virtual void set_delete_table (const std::string &table)=0
 
virtual void set_collection (const std::string &name)=0
 
virtual void set_key (const std::string &key)=0
 
virtual std::string build () const =0
 
virtual void reset ()=0
 
virtual database_types get_database_type () const =0
 

Detailed Description

Abstract interface for database-specific query formatting.

This class defines the Strategy interface for formatting queries according to different database dialects (SQL, MongoDB, Redis).

Thread Safety

  • NOT thread-safe. Each thread should use its own instance.
  • Create separate dialect instances for each thread.

Definition at line 34 of file query_dialect.h.

Member Enumeration Documentation

◆ query_type

Constructor & Destructor Documentation

◆ ~query_dialect()

virtual database::query_dialect::~query_dialect ( )
virtualdefault

Member Function Documentation

◆ add_join()

virtual void database::query_dialect::add_join ( const std::string & table,
const std::string & condition,
join_type type )
pure virtual

◆ add_order_by()

virtual void database::query_dialect::add_order_by ( const std::string & column,
sort_order order )
pure virtual

◆ add_where_condition() [1/2]

virtual void database::query_dialect::add_where_condition ( const query_condition & condition)
pure virtual

◆ add_where_condition() [2/2]

virtual void database::query_dialect::add_where_condition ( const std::string & field,
const std::string & op,
const core::database_value & value )
pure virtual

◆ build()

virtual std::string database::query_dialect::build ( ) const
pure virtual

◆ get_database_type()

virtual database_types database::query_dialect::get_database_type ( ) const
pure virtual

◆ get_query_type()

virtual query_type database::query_dialect::get_query_type ( ) const
pure virtual

◆ reset()

virtual void database::query_dialect::reset ( )
pure virtual

◆ set_collection()

virtual void database::query_dialect::set_collection ( const std::string & name)
pure virtual

◆ set_delete_table()

virtual void database::query_dialect::set_delete_table ( const std::string & table)
pure virtual

◆ set_from_table()

virtual void database::query_dialect::set_from_table ( const std::string & table)
pure virtual

◆ set_group_by()

virtual void database::query_dialect::set_group_by ( const std::vector< std::string > & columns)
pure virtual

◆ set_having()

virtual void database::query_dialect::set_having ( const std::string & condition)
pure virtual

◆ set_insert_data()

virtual void database::query_dialect::set_insert_data ( const std::map< std::string, core::database_value > & data)
pure virtual

◆ set_insert_rows()

virtual void database::query_dialect::set_insert_rows ( const std::vector< std::map< std::string, core::database_value > > & rows)
pure virtual

◆ set_insert_table()

virtual void database::query_dialect::set_insert_table ( const std::string & table)
pure virtual

◆ set_key()

virtual void database::query_dialect::set_key ( const std::string & key)
pure virtual

◆ set_limit()

virtual void database::query_dialect::set_limit ( size_t count)
pure virtual

◆ set_offset()

virtual void database::query_dialect::set_offset ( size_t count)
pure virtual

◆ set_query_type()

virtual void database::query_dialect::set_query_type ( query_type type)
pure virtual

◆ set_select_columns()

virtual void database::query_dialect::set_select_columns ( const std::vector< std::string > & columns)
pure virtual

◆ set_update_data()

virtual void database::query_dialect::set_update_data ( const std::map< std::string, core::database_value > & data)
pure virtual

◆ set_update_table()

virtual void database::query_dialect::set_update_table ( const std::string & table)
pure virtual

The documentation for this class was generated from the following file: