30 [[nodiscard]]
virtual std::string_view
BooleanLiteral(
bool value)
const noexcept = 0;
33 [[nodiscard]]
virtual std::string_view DateFunction() const noexcept = 0;
36 [[nodiscard]] virtual std::
string StringLiteral(std::string_view value) const noexcept = 0;
39 [[nodiscard]] virtual std::
string StringLiteral(
char value) const noexcept = 0;
42 [[nodiscard]] virtual std::
string BinaryLiteral(std::span<uint8_t const> data) const = 0;
48 [[nodiscard]] virtual std::
string QualifiedTableName(std::string_view schema, std::string_view table) const = 0;
57 [[nodiscard]] virtual std::
string Insert(std::string_view intoTable,
58 std::string_view fields,
59 std::string_view values) const = 0;
61 [[nodiscard]] virtual std::
string Insert(std::string_view schema,
62 std::string_view intoTable,
63 std::string_view fields,
64 std::string_view values) const = 0;
67 [[nodiscard]] virtual std::
string QueryLastInsertId(std::string_view tableName) const = 0;
70 [[nodiscard]] virtual std::
string SelectAll(
bool distinct,
71 std::string_view fields,
72 std::string_view fromTable,
73 std::string_view fromTableAlias,
74 std::string_view tableJoins,
75 std::string_view whereCondition,
76 std::string_view orderBy,
77 std::string_view groupBy) const = 0;
80 [[nodiscard]] virtual std::
string SelectFirst(
bool distinct,
81 std::string_view fields,
82 std::string_view fromTable,
83 std::string_view fromTableAlias,
84 std::string_view tableJoins,
85 std::string_view whereCondition,
86 std::string_view orderBy,
87 size_t count) const = 0;
90 [[nodiscard]] virtual std::
string SelectRange(
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,
99 std::
size_t limit) const = 0;
102 [[nodiscard]] virtual std::
string SelectCount(
bool distinct,
103 std::string_view fromTable,
104 std::string_view fromTableAlias,
105 std::string_view tableJoins,
106 std::string_view whereCondition) const = 0;
109 [[nodiscard]] virtual std::
string Update(std::string_view table,
110 std::string_view tableAlias,
111 std::string_view setFields,
112 std::string_view whereCondition) const = 0;
115 [[nodiscard]] virtual std::
string Delete(std::string_view fromTable,
116 std::string_view fromTableAlias,
117 std::string_view tableJoins,
118 std::string_view whereCondition) const = 0;
120 using StringList = std::vector<std::
string>;
123 [[nodiscard]] virtual std::
string ColumnType(SqlColumnTypeDefinition const& type) const = 0;
132 [[nodiscard]] virtual StringList CreateTable(std::string_view schema,
133 std::string_view tableName,
136 bool ifNotExists = false) const = 0;
139 [[nodiscard]] virtual StringList AlterTable(std::string_view schema,
140 std::string_view tableName,
141 std::vector<SqlAlterTableCommand> const& commands) const = 0;
149 [[nodiscard]] virtual StringList DropTable(std::string_view schema,
150 std::string_view const& tableName,
151 bool ifExists = false,
152 bool cascade = false) const = 0;
160 [[nodiscard]] virtual std::
string QueryServerVersion() const = 0;
175 static std::
string FormatTableName(std::string_view schema, std::string_view table);