vkdb
A time series database engine in C++.
Loading...
Searching...
No Matches
expr.h
1#ifndef QUERY_EXPR_H
2#define QUERY_EXPR_H
3
4#include <vkdb/token.h>
5#include <string>
6#include <vector>
7#include <optional>
8#include <variant>
9
10namespace vkdb {
15struct MetricExpr {
21};
22
34
46
51struct ValueExpr {
57};
58
63struct TagKeyExpr {
69};
70
80 std::vector<TagKeyExpr> keys;
81};
82
94
112
122 std::vector<TagExpr> tags;
123};
124
136
141struct AllClause {
146 std::optional<WhereClause> where_clause;
147};
148
159
165
170 std::optional<WhereClause> where_clause;
171};
172
177struct AtClause {
183
188 std::optional<WhereClause> where_clause;
189};
190
202
214
226
238
250
262
269using SelectType = std::variant<
276>;
277
283using SelectClause = std::variant<
284 AllClause,
287>;
288
298 SelectType type;
299
305
311
316 SelectClause clause;
317};
318
319
355
385
396
401 std::optional<TagColumnsExpr> tag_columns;
402};
403
415
433
451
463
470using Query = std::variant<
475>;
476
481using Expr = std::vector<Query>;
482} // namespace vkdb
483
484#endif // QUERY_EXPR_H
Represents a token.
Definition token.h:81
Add query.
Definition expr.h:420
TagColumnsExpr tag_columns
Tag columns expression.
Definition expr.h:425
TableNameExpr table_name
Table name expression.
Definition expr.h:431
All clause.
Definition expr.h:141
std::optional< WhereClause > where_clause
Optional where clause.
Definition expr.h:146
At clause.
Definition expr.h:177
std::optional< WhereClause > where_clause
Optional where clause.
Definition expr.h:188
TimestampExpr timestamp
Timestamp expression.
Definition expr.h:182
Between clause.
Definition expr.h:153
TimestampExpr start
Start timestamp expression.
Definition expr.h:158
TimestampExpr end
End timestamp expression.
Definition expr.h:164
std::optional< WhereClause > where_clause
Optional where clause.
Definition expr.h:170
Create query.
Definition expr.h:390
TableNameExpr table_name
Table name expression.
Definition expr.h:395
std::optional< TagColumnsExpr > tag_columns
Optional tag columns expression.
Definition expr.h:401
Delete query.
Definition expr.h:360
std::optional< TagListExpr > tag_list
Optional tag list expression.
Definition expr.h:383
TableNameExpr table_name
Table name expression.
Definition expr.h:377
MetricExpr metric
Metric expression.
Definition expr.h:365
TimestampExpr timestamp
Timestamp expression.
Definition expr.h:371
Drop query.
Definition expr.h:408
TableNameExpr table_name
Table name expression.
Definition expr.h:413
Metric expression.
Definition expr.h:15
Token token
Token for the metric.
Definition expr.h:20
Put query.
Definition expr.h:324
MetricExpr metric
Metric expression.
Definition expr.h:329
TableNameExpr table_name
Table name expression.
Definition expr.h:347
TimestampExpr timestamp
Timestamp expression.
Definition expr.h:335
std::optional< TagListExpr > tag_list
Optional tag list expression.
Definition expr.h:353
ValueExpr value
Value expression.
Definition expr.h:341
Remove query.
Definition expr.h:438
TableNameExpr table_name
Table name expression.
Definition expr.h:449
TagColumnsExpr tag_columns
Tag columns expression.
Definition expr.h:443
Select query.
Definition expr.h:293
SelectType type
Select type.
Definition expr.h:298
TableNameExpr table_name
Table name expression.
Definition expr.h:310
MetricExpr metric
Metric expression.
Definition expr.h:304
SelectClause clause
Select clause.
Definition expr.h:316
Select type average expression.
Definition expr.h:219
Token token
Token for the select type average.
Definition expr.h:224
Select type count expression.
Definition expr.h:207
Token token
Token for the select type count.
Definition expr.h:212
Select type data expression.
Definition expr.h:195
Token token
Token for the select type data.
Definition expr.h:200
Select type maximum expression.
Definition expr.h:255
Token token
Token for the select type maximum.
Definition expr.h:260
Select type minimum expression.
Definition expr.h:243
Token token
Token for the select type minimum.
Definition expr.h:248
Select type sum expression.
Definition expr.h:231
Token token
Token for the select type sum.
Definition expr.h:236
Table name expression.
Definition expr.h:27
Token token
Token for the table name.
Definition expr.h:32
Tables query.
Definition expr.h:456
Token token
Token for the tables query.
Definition expr.h:461
Tag columns expression.
Definition expr.h:75
std::vector< TagKeyExpr > keys
Vector of tag key expressions.
Definition expr.h:80
Tag expression.
Definition expr.h:99
TagValueExpr value
Tag value expression.
Definition expr.h:110
TagKeyExpr key
Tag key expression.
Definition expr.h:104
Tag key expression.
Definition expr.h:63
Token token
Token for the tag key.
Definition expr.h:68
Tag list expression.
Definition expr.h:117
std::vector< TagExpr > tags
Vector of tag expressions.
Definition expr.h:122
Tag value expression.
Definition expr.h:87
Token token
Token for the tag value.
Definition expr.h:92
Timestamp expression.
Definition expr.h:39
Token token
Token for the timestamp.
Definition expr.h:44
Value expression.
Definition expr.h:51
Token token
Token for the value.
Definition expr.h:56
Where clause.
Definition expr.h:129
TagListExpr tag_list
Tag list expression.
Definition expr.h:134