vkdb
A time series database engine in C++.
Loading...
Searching...
No Matches
printer.h
1#ifndef QUERY_PRINTER_H
2#define QUERY_PRINTER_H
3
4#include <vkdb/expr.h>
5#include <sstream>
6#include <string>
7#include <variant>
8
9namespace vkdb {
14class Printer {
15public:
22 [[nodiscard]] std::string print(const Expr& expr) noexcept;
23
24private:
30 void visit(const Query& query) noexcept;
31
37 void visit(const SelectQuery& query) noexcept;
38
44 void visit(const PutQuery& query) noexcept;
45
51 void visit(const DeleteQuery& query) noexcept;
52
58 void visit(const CreateQuery& query) noexcept;
59
65 void visit(const DropQuery& query) noexcept;
66
72 void visit(const AddQuery& query) noexcept;
73
79 void visit(const RemoveQuery& query) noexcept;
80
86 void visit(const TablesQuery& query) noexcept;
87
93 void visit(const AllClause& clause) noexcept;
94
100 void visit(const BetweenClause& clause) noexcept;
101
107 void visit(const AtClause& clause) noexcept;
108
114 void visit(const WhereClause& clause) noexcept;
115
121 void visit(const SelectType& type) noexcept;
122
128 void visit(const MetricExpr& metric) noexcept;
129
135 void visit(const TableNameExpr& table_name) noexcept;
136
142 void visit(const TagKeyExpr& tag_key) noexcept;
143
149 void visit(const TagValueExpr& tag_value) noexcept;
150
156 void visit(const TagExpr& tag) noexcept;
157
163 void visit(const TagListExpr& tag_list) noexcept;
164
170 void visit(const TagColumnsExpr& tag_columns) noexcept;
171
177 void visit(const TimestampExpr& timestamp) noexcept;
178
184 void visit(const ValueExpr& value) noexcept;
185
190 std::stringstream output_;
191};
192} // namespace vkdb
193
194#endif // QUERY_PRINTER_H
Printer for vq.
Definition printer.h:14
std::string print(const Expr &expr) noexcept
Prints the given expression.
Definition printer.cpp:4
Add query.
Definition expr.h:420
All clause.
Definition expr.h:141
At clause.
Definition expr.h:177
Between clause.
Definition expr.h:153
Create query.
Definition expr.h:390
Delete query.
Definition expr.h:360
Drop query.
Definition expr.h:408
Metric expression.
Definition expr.h:15
Put query.
Definition expr.h:324
Remove query.
Definition expr.h:438
Select query.
Definition expr.h:293
Table name expression.
Definition expr.h:27
Tables query.
Definition expr.h:456
Tag columns expression.
Definition expr.h:75
Tag expression.
Definition expr.h:99
Tag key expression.
Definition expr.h:63
Tag list expression.
Definition expr.h:117
Tag value expression.
Definition expr.h:87
Timestamp expression.
Definition expr.h:39
Value expression.
Definition expr.h:51
Where clause.
Definition expr.h:129