36 [[nodiscard]]
virtual std::string_view
BooleanLiteral(
bool value)
const noexcept = 0;
39 [[nodiscard]]
virtual std::string_view
DateFunction() const noexcept = 0;
42 [[nodiscard]] virtual std::
string StringLiteral(std::string_view value) const noexcept = 0;
45 [[nodiscard]] virtual std::
string StringLiteral(
char value) const noexcept = 0;
48 [[nodiscard]] virtual std::
string BinaryLiteral(std::span<uint8_t const> data) const = 0;
54 [[nodiscard]] virtual std::
string QualifiedTableName(std::string_view schema, std::string_view table) const = 0;
63 [[nodiscard]] virtual std::
string Insert(std::string_view intoTable,
64 std::string_view fields,
65 std::string_view values) const = 0;
68 [[nodiscard]] virtual std::
string Insert(std::string_view schema,
69 std::string_view intoTable,
70 std::string_view fields,
71 std::string_view values) const = 0;
74 [[nodiscard]] virtual std::
string QueryLastInsertId(std::string_view tableName) const = 0;
77 [[nodiscard]] virtual std::
string SelectAll(
bool distinct,
78 std::string_view fields,
79 std::string_view fromTable,
80 std::string_view fromTableAlias,
81 std::string_view tableJoins,
82 std::string_view whereCondition,
83 std::string_view orderBy,
84 std::string_view groupBy) const = 0;
90 [[nodiscard]] virtual std::
string SelectFirst(
bool distinct,
91 std::string_view fields,
92 std::string_view fromTable,
93 std::string_view fromTableAlias,
94 std::string_view tableJoins,
95 std::string_view whereCondition,
96 std::string_view orderBy,
97 std::string_view groupBy,
98 size_t count) const = 0;
101 [[nodiscard]] virtual std::
string SelectRange(
bool distinct,
102 std::string_view fields,
103 std::string_view fromTable,
104 std::string_view fromTableAlias,
105 std::string_view tableJoins,
106 std::string_view whereCondition,
107 std::string_view orderBy,
108 std::string_view groupBy,
110 std::
size_t limit) const = 0;
116 [[nodiscard]] virtual std::
string SelectCount(
bool distinct,
117 std::string_view fromTable,
118 std::string_view fromTableAlias,
119 std::string_view tableJoins,
120 std::string_view whereCondition,
121 std::string_view groupBy) const = 0;
124 [[nodiscard]] virtual std::
string Update(std::string_view table,
125 std::string_view tableAlias,
126 std::string_view setFields,
127 std::string_view whereCondition) const = 0;
130 [[nodiscard]] virtual std::
string Delete(std::string_view fromTable,
131 std::string_view fromTableAlias,
132 std::string_view tableJoins,
133 std::string_view whereCondition) const = 0;
139 [[nodiscard]] virtual std::
string ColumnType(SqlColumnTypeDefinition const& type) const = 0;
148 [[nodiscard]] virtual
StringList CreateTable(std::string_view schema,
149 std::string_view tableName,
152 bool ifNotExists = false) const = 0;
155 [[nodiscard]] virtual
StringList AlterTable(std::string_view schema,
156 std::string_view tableName,
165 [[nodiscard]] virtual
StringList DropTable(std::string_view schema,
166 std::string_view const& tableName,
167 bool ifExists = false,
168 bool cascade = false) const = 0;
176 [[nodiscard]] virtual std::
string QueryServerVersion() const = 0;
197 [[nodiscard]] virtual
bool RequiresTableRebuildForSchemaChange() const noexcept
244 template <
typename Range>
247 std::string name {
"FK_" };
248 name.append(tableName);
249 for (
auto const& col: columns)
292 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.