35 [[nodiscard]]
virtual std::string_view
BooleanLiteral(
bool value)
const noexcept = 0;
38 [[nodiscard]]
virtual std::string_view
DateFunction() const noexcept = 0;
41 [[nodiscard]] virtual std::
string StringLiteral(std::string_view value) const noexcept = 0;
44 [[nodiscard]] virtual std::
string StringLiteral(
char value) const noexcept = 0;
47 [[nodiscard]] virtual std::
string BinaryLiteral(std::span<uint8_t const> data) const = 0;
53 [[nodiscard]] virtual std::
string QualifiedTableName(std::string_view schema, std::string_view table) const = 0;
62 [[nodiscard]] virtual std::
string Insert(std::string_view intoTable,
63 std::string_view fields,
64 std::string_view values) const = 0;
67 [[nodiscard]] virtual std::
string Insert(std::string_view schema,
68 std::string_view intoTable,
69 std::string_view fields,
70 std::string_view values) const = 0;
73 [[nodiscard]] virtual std::
string QueryLastInsertId(std::string_view tableName) const = 0;
76 [[nodiscard]] virtual std::
string SelectAll(
bool distinct,
77 std::string_view fields,
78 std::string_view fromTable,
79 std::string_view fromTableAlias,
80 std::string_view tableJoins,
81 std::string_view whereCondition,
82 std::string_view orderBy,
83 std::string_view groupBy) const = 0;
86 [[nodiscard]] virtual std::
string SelectFirst(
bool distinct,
87 std::string_view fields,
88 std::string_view fromTable,
89 std::string_view fromTableAlias,
90 std::string_view tableJoins,
91 std::string_view whereCondition,
92 std::string_view orderBy,
93 size_t count) const = 0;
96 [[nodiscard]] virtual std::
string SelectRange(
bool distinct,
97 std::string_view fields,
98 std::string_view fromTable,
99 std::string_view fromTableAlias,
100 std::string_view tableJoins,
101 std::string_view whereCondition,
102 std::string_view orderBy,
103 std::string_view groupBy,
105 std::
size_t limit) const = 0;
108 [[nodiscard]] virtual std::
string SelectCount(
bool distinct,
109 std::string_view fromTable,
110 std::string_view fromTableAlias,
111 std::string_view tableJoins,
112 std::string_view whereCondition) const = 0;
115 [[nodiscard]] virtual std::
string Update(std::string_view table,
116 std::string_view tableAlias,
117 std::string_view setFields,
118 std::string_view whereCondition) const = 0;
121 [[nodiscard]] virtual std::
string Delete(std::string_view fromTable,
122 std::string_view fromTableAlias,
123 std::string_view tableJoins,
124 std::string_view whereCondition) const = 0;
130 [[nodiscard]] virtual std::
string ColumnType(SqlColumnTypeDefinition const& type) const = 0;
139 [[nodiscard]] virtual
StringList CreateTable(std::string_view schema,
140 std::string_view tableName,
143 bool ifNotExists = false) const = 0;
146 [[nodiscard]] virtual
StringList AlterTable(std::string_view schema,
147 std::string_view tableName,
156 [[nodiscard]] virtual
StringList DropTable(std::string_view schema,
157 std::string_view const& tableName,
158 bool ifExists = false,
159 bool cascade = false) const = 0;
167 [[nodiscard]] virtual std::
string QueryServerVersion() const = 0;
183 static std::
string FormatTableName(std::string_view schema, std::string_view table);
std::variant< SqlAlterTableCommands::RenameTable, SqlAlterTableCommands::AddColumn, SqlAlterTableCommands::AddColumnIfNotExists, SqlAlterTableCommands::AlterColumn, SqlAlterTableCommands::AddIndex, SqlAlterTableCommands::RenameColumn, SqlAlterTableCommands::DropColumn, SqlAlterTableCommands::DropColumnIfExists, SqlAlterTableCommands::DropIndex, SqlAlterTableCommands::DropIndexIfExists, SqlAlterTableCommands::AddForeignKey, SqlAlterTableCommands::AddCompositeForeignKey, SqlAlterTableCommands::DropForeignKey > SqlAlterTableCommand
Represents a single SQL ALTER TABLE command.