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;
51 [[nodiscard]] virtual std::
string Insert(std::string_view intoTable,
52 std::string_view fields,
53 std::string_view values) const = 0;
55 [[nodiscard]] virtual std::
string Insert(std::string_view schema,
56 std::string_view intoTable,
57 std::string_view fields,
58 std::string_view values) const = 0;
61 [[nodiscard]] virtual std::
string QueryLastInsertId(std::string_view tableName) const = 0;
64 [[nodiscard]] virtual std::
string SelectAll(
bool distinct,
65 std::string_view fields,
66 std::string_view fromTable,
67 std::string_view fromTableAlias,
68 std::string_view tableJoins,
69 std::string_view whereCondition,
70 std::string_view orderBy,
71 std::string_view groupBy) const = 0;
74 [[nodiscard]] virtual std::
string SelectFirst(
bool distinct,
75 std::string_view fields,
76 std::string_view fromTable,
77 std::string_view fromTableAlias,
78 std::string_view tableJoins,
79 std::string_view whereCondition,
80 std::string_view orderBy,
81 size_t count) const = 0;
84 [[nodiscard]] virtual std::
string SelectRange(
bool distinct,
85 std::string_view fields,
86 std::string_view fromTable,
87 std::string_view fromTableAlias,
88 std::string_view tableJoins,
89 std::string_view whereCondition,
90 std::string_view orderBy,
91 std::string_view groupBy,
93 std::
size_t limit) const = 0;
96 [[nodiscard]] virtual std::
string SelectCount(
bool distinct,
97 std::string_view fromTable,
98 std::string_view fromTableAlias,
99 std::string_view tableJoins,
100 std::string_view whereCondition) const = 0;
103 [[nodiscard]] virtual std::
string Update(std::string_view table,
104 std::string_view tableAlias,
105 std::string_view setFields,
106 std::string_view whereCondition) const = 0;
109 [[nodiscard]] virtual std::
string Delete(std::string_view fromTable,
110 std::string_view fromTableAlias,
111 std::string_view tableJoins,
112 std::string_view whereCondition) const = 0;
114 using StringList = std::vector<std::
string>;
117 [[nodiscard]] virtual std::
string ColumnType(SqlColumnTypeDefinition const& type) const = 0;
120 [[nodiscard]] virtual StringList CreateTable(std::string_view schema,
121 std::string_view tableName,
126 [[nodiscard]] virtual StringList AlterTable(std::string_view schema,
127 std::string_view tableName,
128 std::vector<SqlAlterTableCommand> const& commands) const = 0;
136 [[nodiscard]] virtual StringList DropTable(std::string_view schema,
137 std::string_view const& tableName,
138 bool ifExists = false,
139 bool cascade = false) const = 0;
147 [[nodiscard]] virtual std::
string QueryServerVersion() const = 0;
162 static std::
string FormatTableName(std::string_view schema, std::string_view table);