MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
静态 Public 成员函数 | Protected 成员函数 | Private 属性 | 所有成员列表
SessionStage类 参考

SQL处理的session阶段,也是第一个阶段 更多...

#include <session_stage.h>

类 SessionStage 继承关系图:

静态 Public 成员函数

static Stage * make_stage (const std::string &tag)
 

Protected 成员函数

 SessionStage (const char *tag)
 
bool set_properties () override
 
bool initialize () override
 
void cleanup () override
 
void handle_event (common::StageEvent *event) override
 
void handle_request (common::StageEvent *event)
 
RC handle_sql (SQLStageEvent *sql_event)
 

Private 属性

QueryCacheStage query_cache_stage_
 
ParseStage parse_stage_
 
ResolveStage resolve_stage_
 
OptimizeStage optimize_stage_
 
ExecuteStage execute_stage_
 

详细描述

SQL处理的session阶段,也是第一个阶段

成员函数说明

◆ handle_sql()

RC SessionStage::handle_sql ( SQLStageEvent sql_event)
protected

处理一个SQL语句经历这几个阶段。 虽然看起来流程比较多,但是对于大多数SQL来说,更多的可以关注parse和executor阶段。 通常只有select、delete等带有查询条件的语句才需要进入optimize。 对于DDL语句,比如create table、create index等,没有对应的查询计划,可以直接搜索 create_table_executor、create_index_executor来看具体的执行代码。 select、delete等DML语句,会产生一些执行计划,如果感觉繁琐,可以跳过optimize直接看 execute_stage中的执行,通过explain语句看需要哪些operator,然后找对应的operator来 调试或者看代码执行过程即可。


该类的文档由以下文件生成: