22#include "sql/parser/value.h"
126 std::vector<ConditionSqlNode> conditions;
138 std::vector<ConditionSqlNode> conditions;
205 std::string relation_name;
215 std::string relation_name;
216 std::string file_name;
241 std::unique_ptr<ParsedSqlNode> sql_node;
251 std::string error_msg;
320 void add_sql_node(std::unique_ptr<ParsedSqlNode> sql_node);
321 std::vector<std::unique_ptr<ParsedSqlNode>> &sql_nodes()
表达式的抽象描述
Definition: expression.h:60
表示一个SQL语句
Definition: parse_defs.h:290
表示语法解析后的数据
Definition: parse_defs.h:318
std::vector< std::unique_ptr< ParsedSqlNode > > sql_nodes_
这里记录SQL命令。虽然看起来支持多个,但是当前仅处理一个
Definition: parse_defs.h:327
属性的值
Definition: value.h:40
SqlCommandFlag
表示一个SQL语句的类型
Definition: parse_defs.h:261
CompOp
描述比较运算符
Definition: parse_defs.h:48
@ SCF_SET_VARIABLE
设置变量
Definition: parse_defs.h:283
@ SCF_BEGIN
事务开始语句,可以在这里扩展只读事务
Definition: parse_defs.h:275
@ GREAT_EQUAL
">="
Definition: parse_defs.h:53
@ LESS_THAN
"<"
Definition: parse_defs.h:52
@ EQUAL_TO
"="
Definition: parse_defs.h:49
@ LESS_EQUAL
"<="
Definition: parse_defs.h:50
@ GREAT_THAN
">"
Definition: parse_defs.h:54
@ NOT_EQUAL
"<>"
Definition: parse_defs.h:51
描述一个属性
Definition: parse_defs.h:149
std::string name
Attribute name
Definition: parse_defs.h:151
AttrType type
Type of attribute
Definition: parse_defs.h:150
size_t length
Length of attribute
Definition: parse_defs.h:152
算术表达式计算的语法树
Definition: parse_defs.h:102
std::vector< Expression * > expressions
calc clause
Definition: parse_defs.h:103
表示一个条件比较
Definition: parse_defs.h:67
RelAttrSqlNode right_attr
right-hand side attribute if right_is_attr = TRUE 右边的属性
Definition: parse_defs.h:75
int right_is_attr
TRUE if right-hand side is an attribute 1时,操作符右边是属性名,0时,是属性值
Definition: parse_defs.h:73
CompOp comp
comparison operator
Definition: parse_defs.h:72
Value right_value
right-hand side value if right_is_attr = FALSE
Definition: parse_defs.h:76
int left_is_attr
TRUE if left-hand side is an attribute 1时,操作符左边是属性名,0时,是属性值
Definition: parse_defs.h:68
RelAttrSqlNode left_attr
left-hand side attribute
Definition: parse_defs.h:71
Value left_value
left-hand side value if left_is_attr = FALSE
Definition: parse_defs.h:70
描述一个create index语句
Definition: parse_defs.h:182
std::string index_name
Index name
Definition: parse_defs.h:183
std::string relation_name
Relation name
Definition: parse_defs.h:184
std::string attribute_name
Attribute name
Definition: parse_defs.h:185
描述一个create table语句
Definition: parse_defs.h:161
std::string relation_name
Relation name
Definition: parse_defs.h:162
std::vector< AttrInfoSqlNode > attr_infos
attributes
Definition: parse_defs.h:163
描述一个delete语句
Definition: parse_defs.h:124
std::string relation_name
Relation to delete from
Definition: parse_defs.h:125
描述一个desc table语句
Definition: parse_defs.h:204
描述一个drop index语句
Definition: parse_defs.h:193
std::string relation_name
Relation name
Definition: parse_defs.h:195
std::string index_name
Index name
Definition: parse_defs.h:194
描述一个drop table语句
Definition: parse_defs.h:171
std::string relation_name
要删除的表名
Definition: parse_defs.h:172
解析SQL语句出现了错误
Definition: parse_defs.h:250
描述一个explain语句
Definition: parse_defs.h:240
描述一个insert语句
Definition: parse_defs.h:114
std::string relation_name
Relation to insert into
Definition: parse_defs.h:115
std::vector< Value > values
要插入的值
Definition: parse_defs.h:116
描述一个load data语句
Definition: parse_defs.h:214
描述一个属性
Definition: parse_defs.h:38
std::string attribute_name
attribute name 属性名
Definition: parse_defs.h:40
std::string relation_name
relation name (may be NULL) 表名
Definition: parse_defs.h:39
描述一个select语句
Definition: parse_defs.h:91
std::vector< ConditionSqlNode > conditions
查询条件,使用AND串联起来多个条件
Definition: parse_defs.h:94
std::vector< std::string > relations
查询的表
Definition: parse_defs.h:93
std::vector< RelAttrSqlNode > attributes
attributes in select clause
Definition: parse_defs.h:92
设置变量的值
Definition: parse_defs.h:225
描述一个update语句
Definition: parse_defs.h:134
std::string relation_name
Relation to update
Definition: parse_defs.h:135
std::string attribute_name
更新的字段,仅支持一个字段
Definition: parse_defs.h:136
Value value
更新的值,仅支持一个字段
Definition: parse_defs.h:137