17#include "common/lang/string.h"
18#include "common/lang/vector.h"
19#include "common/lang/memory.h"
20#include "common/value.h"
123 vector<ConditionSqlNode> conditions;
135 vector<ConditionSqlNode> conditions;
212 string relation_name;
222 string relation_name;
248 unique_ptr<ParsedSqlNode> sql_node;
329 void add_sql_node(unique_ptr<ParsedSqlNode> sql_node);
331 vector<unique_ptr<ParsedSqlNode>> &sql_nodes() {
return sql_nodes_; }
表达式的抽象描述
Definition: expression.h:66
表示一个SQL语句
Definition: parse_defs.h:298
表示语法解析后的数据
Definition: parse_defs.h:327
vector< unique_ptr< ParsedSqlNode > > sql_nodes_
这里记录SQL命令。虽然看起来支持多个,但是当前仅处理一个
Definition: parse_defs.h:334
属性的值
Definition: value.h:30
SqlCommandFlag
表示一个SQL语句的类型
Definition: parse_defs.h:268
CompOp
描述比较运算符
Definition: parse_defs.h:46
@ SCF_SET_VARIABLE
设置变量
Definition: parse_defs.h:291
@ SCF_BEGIN
事务开始语句,可以在这里扩展只读事务
Definition: parse_defs.h:283
@ GREAT_EQUAL
">="
Definition: parse_defs.h:51
@ LESS_THAN
"<"
Definition: parse_defs.h:50
@ EQUAL_TO
"="
Definition: parse_defs.h:47
@ LESS_EQUAL
"<="
Definition: parse_defs.h:48
@ GREAT_THAN
">"
Definition: parse_defs.h:52
@ NOT_EQUAL
"<>"
Definition: parse_defs.h:49
描述一个analyze table语句
Definition: parse_defs.h:178
string relation_name
要分析的表名
Definition: parse_defs.h:179
描述一个属性
Definition: parse_defs.h:144
string name
Attribute name
Definition: parse_defs.h:146
AttrType type
Type of attribute
Definition: parse_defs.h:145
size_t length
Length of attribute
Definition: parse_defs.h:147
算术表达式计算的语法树
Definition: parse_defs.h:101
vector< unique_ptr< Expression > > expressions
calc clause
Definition: parse_defs.h:102
表示一个条件比较
Definition: parse_defs.h:65
RelAttrSqlNode right_attr
right-hand side attribute if right_is_attr = TRUE 右边的属性
Definition: parse_defs.h:73
int right_is_attr
TRUE if right-hand side is an attribute 1时,操作符右边是属性名,0时,是属性值
Definition: parse_defs.h:71
CompOp comp
comparison operator
Definition: parse_defs.h:70
Value right_value
right-hand side value if right_is_attr = FALSE
Definition: parse_defs.h:74
int left_is_attr
TRUE if left-hand side is an attribute 1时,操作符左边是属性名,0时,是属性值
Definition: parse_defs.h:66
RelAttrSqlNode left_attr
left-hand side attribute
Definition: parse_defs.h:69
Value left_value
left-hand side value if left_is_attr = FALSE
Definition: parse_defs.h:68
描述一个create index语句
Definition: parse_defs.h:189
string index_name
Index name
Definition: parse_defs.h:190
string attribute_name
Attribute name
Definition: parse_defs.h:192
string relation_name
Relation name
Definition: parse_defs.h:191
描述一个create table语句
Definition: parse_defs.h:156
string storage_engine
storage engine
Definition: parse_defs.h:161
string relation_name
Relation name
Definition: parse_defs.h:157
string storage_format
storage format
Definition: parse_defs.h:160
vector< AttrInfoSqlNode > attr_infos
attributes
Definition: parse_defs.h:158
描述一个delete语句
Definition: parse_defs.h:121
string relation_name
Relation to delete from
Definition: parse_defs.h:122
描述一个desc table语句
Definition: parse_defs.h:211
描述一个drop index语句
Definition: parse_defs.h:200
string relation_name
Relation name
Definition: parse_defs.h:202
string index_name
Index name
Definition: parse_defs.h:201
描述一个drop table语句
Definition: parse_defs.h:169
string relation_name
要删除的表名
Definition: parse_defs.h:170
解析SQL语句出现了错误
Definition: parse_defs.h:257
描述一个explain语句
Definition: parse_defs.h:247
描述一个insert语句
Definition: parse_defs.h:111
string relation_name
Relation to insert into
Definition: parse_defs.h:112
vector< Value > values
要插入的值
Definition: parse_defs.h:113
描述一个load data语句
Definition: parse_defs.h:221
描述一个属性
Definition: parse_defs.h:36
string relation_name
relation name (may be NULL) 表名
Definition: parse_defs.h:37
string attribute_name
attribute name 属性名
Definition: parse_defs.h:38
描述一个select语句
Definition: parse_defs.h:89
vector< ConditionSqlNode > conditions
查询条件,使用AND串联起来多个条件
Definition: parse_defs.h:92
vector< string > relations
查询的表
Definition: parse_defs.h:91
vector< unique_ptr< Expression > > expressions
查询的表达式
Definition: parse_defs.h:90
vector< unique_ptr< Expression > > group_by
group by clause
Definition: parse_defs.h:93
设置变量的值
Definition: parse_defs.h:232
描述一个update语句
Definition: parse_defs.h:131
string attribute_name
更新的字段,仅支持一个字段
Definition: parse_defs.h:133
string relation_name
Relation to update
Definition: parse_defs.h:132
Value value
更新的值,仅支持一个字段
Definition: parse_defs.h:134