MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
sql_task_handler.h
1/* Copyright (c) 2021 OceanBase and/or its affiliates. All rights reserved.
2miniob is licensed under Mulan PSL v2.
3You can use this software according to the terms and conditions of the Mulan PSL v2.
4You may obtain a copy of Mulan PSL v2 at:
5 http://license.coscl.org.cn/MulanPSL2
6THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
7EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
8MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
9See the Mulan PSL v2 for more details. */
10
11//
12// Created by Wangyunlai on 2024/01/10.
13//
14
15#pragma once
16
17#include "common/sys/rc.h"
18#include "session/session_stage.h"
19#include "sql/executor/execute_stage.h"
20#include "sql/optimizer/optimize_stage.h"
21#include "sql/parser/parse_stage.h"
22#include "sql/parser/resolve_stage.h"
23#include "sql/query_cache/query_cache_stage.h"
24
25class Communicator;
26class SQLStageEvent;
27
33{
34public:
35 SqlTaskHandler() = default;
36 virtual ~SqlTaskHandler() = default;
37
44 RC handle_event(Communicator *communicator);
45
46 RC handle_sql(SQLStageEvent *sql_event);
47
48private:
49 SessionStage session_stage_;
55};
负责与客户端通讯
Definition: communicator.h:42
执行SQL语句的Stage,包括DML和DDL
Definition: execute_stage.h:30
Definition: optimize_stage.h:38
解析SQL语句,解析后的结果可以参考parse_defs.h
Definition: parse_stage.h:26
查询缓存处理
Definition: query_cache_stage.h:27
执行Resolve,将解析后的SQL语句,转换成各种Stmt(Statement), 同时会做错误检查
Definition: resolve_stage.h:26
与SessionEvent类似,也是处理SQL请求的事件,只是用在SQL的不同阶段
Definition: sql_event.h:29
SQL处理的session阶段,也是第一个阶段
Definition: session_stage.h:40
SQL请求的处理器
Definition: sql_task_handler.h:33
ResolveStage resolve_stage_
解析阶段。将SQL解析成语法树 ParsedSqlNode
Definition: sql_task_handler.h:52
OptimizeStage optimize_stage_
解析阶段。将语法树解析成Stmt(statement)
Definition: sql_task_handler.h:53
ParseStage parse_stage_
查询缓存阶段
Definition: sql_task_handler.h:51
ExecuteStage execute_stage_
优化阶段。将语句优化成执行计划,包含规则优化和物理优化
Definition: sql_task_handler.h:54
RC handle_event(Communicator *communicator)
指定连接上有数据可读时就读取消息然后处理
Definition: sql_task_handler.cpp:21
QueryCacheStage query_cache_stage_
会话阶段
Definition: sql_task_handler.h:50