MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
sql_event.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 Longda on 2021/4/14.
13//
14
15#pragma once
16
17#include "common/lang/string.h"
18#include "common/lang/memory.h"
19#include "sql/operator/physical_operator.h"
20
21class SessionEvent;
22class Stmt;
23class ParsedSqlNode;
24
29{
30public:
31 SQLStageEvent(SessionEvent *event, const string &sql);
32 virtual ~SQLStageEvent() noexcept;
33
34 SessionEvent *session_event() const { return session_event_; }
35
36 const string &sql() const { return sql_; }
37 const unique_ptr<ParsedSqlNode> &sql_node() const { return sql_node_; }
38 Stmt *stmt() const { return stmt_; }
39 unique_ptr<PhysicalOperator> &physical_operator() { return operator_; }
40 const unique_ptr<PhysicalOperator> &physical_operator() const { return operator_; }
41
42 void set_sql(const char *sql) { sql_ = sql; }
43 void set_sql_node(unique_ptr<ParsedSqlNode> sql_node) { sql_node_ = std::move(sql_node); }
44 void set_stmt(Stmt *stmt) { stmt_ = stmt; }
45 void set_operator(unique_ptr<PhysicalOperator> oper) { operator_ = std::move(oper); }
46
47private:
48 SessionEvent *session_event_ = nullptr;
49 string sql_;
50 unique_ptr<ParsedSqlNode> sql_node_;
51 Stmt *stmt_ = nullptr;
52 unique_ptr<PhysicalOperator> operator_;
53};
表示一个SQL语句
Definition: parse_defs.h:298
与SessionEvent类似,也是处理SQL请求的事件,只是用在SQL的不同阶段
Definition: sql_event.h:29
unique_ptr< ParsedSqlNode > sql_node_
语法解析后的SQL命令
Definition: sql_event.h:50
unique_ptr< PhysicalOperator > operator_
生成的执行计划,也可能没有
Definition: sql_event.h:52
string sql_
处理的SQL语句
Definition: sql_event.h:49
Stmt * stmt_
Resolver之后生成的数据结构
Definition: sql_event.h:51
表示一个SQL请求
Definition: session_event.h:29
Stmt for Statement
Definition: stmt.h:83