91 const std::vector<std::string>& conflict_columns,
92 const std::vector<std::string>& update_columns)
const = 0;
104 virtual std::string
limit_clause(
size_t limit,
size_t offset)
const = 0;
159 std::string
escape_string(std::string_view str)
const override;
162 const std::vector<std::string>& conflict_columns,
163 const std::vector<std::string>& update_columns)
const override;
164 std::string
limit_clause(
size_t limit,
size_t offset)
const override;
179 std::string
escape_string(std::string_view str)
const override;
182 const std::vector<std::string>& conflict_columns,
183 const std::vector<std::string>& update_columns)
const override;
184 std::string
limit_clause(
size_t limit,
size_t offset)
const override;
PostgreSQL-specific SQL dialect.
std::string quote_identifier(std::string_view name) const override
Quote an identifier (table or column name)
std::string auto_increment() const override
Get auto-increment column definition.
bool supports_feature(const std::string &feature) const override
Check if database supports specific feature.
std::string returning_clause(std::string_view column="") const override
Generate RETURNING clause for INSERT/UPDATE.
std::string upsert_clause(const std::vector< std::string > &conflict_columns, const std::vector< std::string > &update_columns) const override
Generate UPSERT (INSERT OR UPDATE) clause.
std::string concat_operator() const override
Get string concatenation operator.
std::string current_timestamp() const override
Get current timestamp function.
std::string limit_clause(size_t limit, size_t offset) const override
Generate LIMIT clause.
std::string placeholder(int index) const override
Generate parameter placeholder.
std::string escape_string(std::string_view str) const override
Escape a string value for safe SQL inclusion.
Abstract base class for database-specific SQL dialects.
virtual std::string placeholder(int index) const =0
Generate parameter placeholder.
virtual ~sql_dialect()=default
virtual std::string returning_clause(std::string_view column="") const =0
Generate RETURNING clause for INSERT/UPDATE.
virtual std::string limit_clause(size_t limit, size_t offset) const =0
Generate LIMIT clause.
virtual bool supports_feature(const std::string &feature) const =0
Check if database supports specific feature.
virtual std::string current_timestamp() const =0
Get current timestamp function.
virtual std::string upsert_clause(const std::vector< std::string > &conflict_columns, const std::vector< std::string > &update_columns) const =0
Generate UPSERT (INSERT OR UPDATE) clause.
virtual std::string escape_string(std::string_view str) const =0
Escape a string value for safe SQL inclusion.
virtual std::string auto_increment() const =0
Get auto-increment column definition.
virtual std::string concat_operator() const =0
Get string concatenation operator.
static std::unique_ptr< sql_dialect > create(database_types type)
Factory method to create appropriate dialect.
virtual std::string quote_identifier(std::string_view name) const =0
Quote an identifier (table or column name)
SQLite-specific SQL dialect.
std::string upsert_clause(const std::vector< std::string > &conflict_columns, const std::vector< std::string > &update_columns) const override
Generate UPSERT (INSERT OR UPDATE) clause.
bool supports_feature(const std::string &feature) const override
Check if database supports specific feature.
std::string quote_identifier(std::string_view name) const override
Quote an identifier (table or column name)
std::string current_timestamp() const override
Get current timestamp function.
std::string concat_operator() const override
Get string concatenation operator.
std::string placeholder(int index) const override
Generate parameter placeholder.
std::string auto_increment() const override
Get auto-increment column definition.
std::string returning_clause(std::string_view column="") const override
Generate RETURNING clause for INSERT/UPDATE.
std::string limit_clause(size_t limit, size_t offset) const override
Generate LIMIT clause.
std::string escape_string(std::string_view str) const override
Escape a string value for safe SQL inclusion.
Defines the enumeration of supported database types.
database_types
Represents various database backends or modes.