17#include "common/lang/string.h"
18#include "common/lang/vector.h"
19#include "common/lang/memory.h"
20#include "common/value.h"
21#include "common/lang/utility.h"
124 vector<ConditionSqlNode> conditions;
136 vector<ConditionSqlNode> conditions;
214 string relation_name;
224 string relation_name;
250 unique_ptr<ParsedSqlNode> sql_node;
331 void add_sql_node(unique_ptr<ParsedSqlNode> sql_node);
333 vector<unique_ptr<ParsedSqlNode>> &sql_nodes() {
return sql_nodes_; }
表达式的抽象描述
Definition: expression.h:66
表示一个SQL语句
Definition: parse_defs.h:300
表示语法解析后的数据
Definition: parse_defs.h:329
vector< unique_ptr< ParsedSqlNode > > sql_nodes_
这里记录SQL命令。虽然看起来支持多个,但是当前仅处理一个
Definition: parse_defs.h:336
属性的值
Definition: value.h:30
SqlCommandFlag
表示一个SQL语句的类型
Definition: parse_defs.h:270
CompOp
描述比较运算符
Definition: parse_defs.h:47
@ SCF_SET_VARIABLE
设置变量
Definition: parse_defs.h:293
@ SCF_BEGIN
事务开始语句,可以在这里扩展只读事务
Definition: parse_defs.h:285
@ GREAT_EQUAL
">="
Definition: parse_defs.h:52
@ LESS_THAN
"<"
Definition: parse_defs.h:51
@ EQUAL_TO
"="
Definition: parse_defs.h:48
@ LESS_EQUAL
"<="
Definition: parse_defs.h:49
@ GREAT_THAN
">"
Definition: parse_defs.h:53
@ NOT_EQUAL
"<>"
Definition: parse_defs.h:50
描述一个analyze table语句
Definition: parse_defs.h:180
string relation_name
要分析的表名
Definition: parse_defs.h:181
描述一个属性
Definition: parse_defs.h:145
string name
Attribute name
Definition: parse_defs.h:147
AttrType type
Type of attribute
Definition: parse_defs.h:146
size_t length
Length of attribute
Definition: parse_defs.h:148
算术表达式计算的语法树
Definition: parse_defs.h:102
vector< unique_ptr< Expression > > expressions
calc clause
Definition: parse_defs.h:103
表示一个条件比较
Definition: parse_defs.h:66
RelAttrSqlNode right_attr
right-hand side attribute if right_is_attr = TRUE 右边的属性
Definition: parse_defs.h:74
int right_is_attr
TRUE if right-hand side is an attribute 1时,操作符右边是属性名,0时,是属性值
Definition: parse_defs.h:72
CompOp comp
comparison operator
Definition: parse_defs.h:71
Value right_value
right-hand side value if right_is_attr = FALSE
Definition: parse_defs.h:75
int left_is_attr
TRUE if left-hand side is an attribute 1时,操作符左边是属性名,0时,是属性值
Definition: parse_defs.h:67
RelAttrSqlNode left_attr
left-hand side attribute
Definition: parse_defs.h:70
Value left_value
left-hand side value if left_is_attr = FALSE
Definition: parse_defs.h:69
描述一个create index语句
Definition: parse_defs.h:191
string index_name
Index name
Definition: parse_defs.h:192
string attribute_name
Attribute name
Definition: parse_defs.h:194
string relation_name
Relation name
Definition: parse_defs.h:193
描述一个create table语句
Definition: parse_defs.h:157
string storage_engine
storage engine
Definition: parse_defs.h:163
string relation_name
Relation name
Definition: parse_defs.h:158
string storage_format
storage format
Definition: parse_defs.h:162
vector< string > primary_keys
primary keys
Definition: parse_defs.h:160
vector< AttrInfoSqlNode > attr_infos
attributes
Definition: parse_defs.h:159
描述一个delete语句
Definition: parse_defs.h:122
string relation_name
Relation to delete from
Definition: parse_defs.h:123
描述一个desc table语句
Definition: parse_defs.h:213
描述一个drop index语句
Definition: parse_defs.h:202
string relation_name
Relation name
Definition: parse_defs.h:204
string index_name
Index name
Definition: parse_defs.h:203
描述一个drop table语句
Definition: parse_defs.h:171
string relation_name
要删除的表名
Definition: parse_defs.h:172
解析SQL语句出现了错误
Definition: parse_defs.h:259
描述一个explain语句
Definition: parse_defs.h:249
描述一个insert语句
Definition: parse_defs.h:112
string relation_name
Relation to insert into
Definition: parse_defs.h:113
vector< Value > values
要插入的值
Definition: parse_defs.h:114
描述一个load data语句
Definition: parse_defs.h:223
描述一个属性
Definition: parse_defs.h:37
string relation_name
relation name (may be NULL) 表名
Definition: parse_defs.h:38
string attribute_name
attribute name 属性名
Definition: parse_defs.h:39
描述一个select语句
Definition: parse_defs.h:90
vector< ConditionSqlNode > conditions
查询条件,使用AND串联起来多个条件
Definition: parse_defs.h:93
vector< string > relations
查询的表
Definition: parse_defs.h:92
vector< unique_ptr< Expression > > expressions
查询的表达式
Definition: parse_defs.h:91
vector< unique_ptr< Expression > > group_by
group by clause
Definition: parse_defs.h:94
设置变量的值
Definition: parse_defs.h:234
描述一个update语句
Definition: parse_defs.h:132
string attribute_name
更新的字段,仅支持一个字段
Definition: parse_defs.h:134
string relation_name
Relation to update
Definition: parse_defs.h:133
Value value
更新的值,仅支持一个字段
Definition: parse_defs.h:135