6#include "SqlConnection.hpp"
7#include "SqlQuery/MigrationPlan.hpp"
8#include "SqlServerType.hpp"
27 [[nodiscard]]
virtual std::string_view
BooleanLiteral(
bool value)
const noexcept = 0;
30 [[nodiscard]]
virtual std::string
StringLiteral(std::string_view value)
const noexcept = 0;
33 [[nodiscard]]
virtual std::string
StringLiteral(
char value)
const noexcept = 0;
42 [[nodiscard]]
virtual std::string
Insert(std::string_view intoTable,
43 std::string_view fields,
44 std::string_view values)
const = 0;
50 [[nodiscard]]
virtual std::string
SelectAll(
bool distinct,
51 std::string_view fields,
52 std::string_view fromTable,
53 std::string_view fromTableAlias,
54 std::string_view tableJoins,
55 std::string_view whereCondition,
56 std::string_view orderBy,
57 std::string_view groupBy)
const = 0;
61 std::string_view fields,
62 std::string_view fromTable,
63 std::string_view fromTableAlias,
64 std::string_view tableJoins,
65 std::string_view whereCondition,
66 std::string_view orderBy,
67 size_t count)
const = 0;
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,
79 std::size_t limit)
const = 0;
83 std::string_view fromTable,
84 std::string_view fromTableAlias,
85 std::string_view tableJoins,
86 std::string_view whereCondition)
const = 0;
89 [[nodiscard]]
virtual std::string
Update(std::string_view table,
90 std::string_view tableAlias,
91 std::string_view setFields,
92 std::string_view whereCondition)
const = 0;
95 [[nodiscard]]
virtual std::string
Delete(std::string_view fromTable,
96 std::string_view fromTableAlias,
97 std::string_view tableJoins,
98 std::string_view whereCondition)
const = 0;
100 using StringList = std::vector<std::string>;
103 [[nodiscard]]
virtual std::string
ColumnType(SqlColumnTypeDefinition
const& type)
const = 0;
106 [[nodiscard]]
virtual StringList
CreateTable(std::string_view tableName,
107 std::vector<SqlColumnDeclaration>
const& columns)
const = 0;
110 [[nodiscard]]
virtual StringList
AlterTable(std::string_view tableName,
111 std::vector<SqlAlterTableCommand>
const& commands)
const = 0;
114 [[nodiscard]]
virtual StringList
DropTable(std::string_view
const& tableName)
const = 0;
SqlQualifiedTableColumnName represents a column name qualified with a table name.