miniOB笔记

news/2025/3/4 7:14:37/

一条SQL语句的处理过程

RC SessionStage::handle_sql(SQLStageEvent *sql_event)
{RC rc = query_cache_stage_.handle_request(sql_event);if (OB_FAIL(rc)) {LOG_TRACE("failed to do query cache. rc=%s", strrc(rc));return rc;}// SQL语法分析 rc = parse_stage_.handle_request(sql_event);if (OB_FAIL(rc)) {LOG_TRACE("failed to do parse. rc=%s", strrc(rc));return rc;}// SQL语句解析(从语句中解析出相应的参数)rc = resolve_stage_.handle_request(sql_event);if (OB_FAIL(rc)) {LOG_TRACE("failed to do resolve. rc=%s", strrc(rc));return rc;}// SQL优化rc = optimize_stage_.handle_request(sql_event);if (rc != RC::UNIMPLENMENT && rc != RC::SUCCESS) {LOG_TRACE("failed to do optimize. rc=%s", strrc(rc));return rc;}// SQL执行rc = execute_stage_.handle_request(sql_event);if (OB_FAIL(rc)) {LOG_TRACE("failed to do execute. rc=%s", strrc(rc));return rc;}return rc;
}

SQL执行

RC CommandExecutor::execute(SQLStageEvent *sql_event)
{Stmt *stmt = sql_event->stmt();switch (stmt->type()) {case StmtType::CREATE_INDEX: {CreateIndexExecutor executor;return executor.execute(sql_event);} break;case StmtType::CREATE_TABLE: {CreateTableExecutor executor;return executor.execute(sql_event);} break;case StmtType::DESC_TABLE: {DescTableExecutor executor;return executor.execute(sql_event);}case StmtType::HELP: {HelpExecutor executor;return executor.execute(sql_event);}case StmtType::SHOW_TABLES: {ShowTablesExecutor executor;return executor.execute(sql_event);}case StmtType::BEGIN: {TrxBeginExecutor executor;return executor.execute(sql_event);}case StmtType::COMMIT:case StmtType::ROLLBACK: {TrxEndExecutor executor;return executor.execute(sql_event);}case StmtType::SET_VARIABLE: {SetVariableExecutor executor;return executor.execute(sql_event);}case StmtType::LOAD_DATA: {LoadDataExecutor executor;return executor.execute(sql_event);}case StmtType::EXIT: {return RC::SUCCESS;}default: {LOG_ERROR("unknown command: %d", static_cast<int>(stmt->type()));return RC::UNIMPLENMENT;}}return RC::INTERNAL;
}

http://www.ppmy.cn/news/1135882.html

相关文章

TunnelSectionPaletteSet 2023/9/28 下午10:33:16

TunnelSectionPaletteSet 2023/9/28 下午10:33:16 TunnelSectionPaletteSet是一个术语,它可能指代在隧道设计或工程中使用的一种工具或系统。然而,由于缺乏具体的背景和上下文信息,我无法提供更详细的解释。如果您能够提供更多相关的信息或明确您的问题,我将尽力给予帮助…

族的概念理解

在数学和统计学中&#xff0c;“族”&#xff08;family&#xff09;是指一组具有某种共性或特定性质的数学对象的集合。这些数学对象可以是函数、集合、概率分布、曲线、矩阵等等。"族"的概念用于描述这些对象之间的关联或共同属性。 具体来说&#xff0c;"族…

一道求导题:1004T3

需要知识: ( x n ) ′ n x n − 1 (x^n)nx^{n-1} (xn)′nxn−1 ( s i n x ) ′ c o s x (sinx)cosx (sinx)′cosx [ f ( g ( x ) ) ] ′ f ′ ( g ( x ) ) g ′ ( x ) [f(g(x))]f(g(x))\times g(x) [f(g(x))]′f′(g(x))g′(x) 推完之后&#xff0c;考虑导函数与x轴的交点…

计算机竞赛 行人重识别(person reid) - 机器视觉 深度学习 opencv python

文章目录 0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图 4 实现效果5 部分代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习行人重识别(person reid)系统 该项目…

【多媒体技术与实践】音频信息获取和处理——编程题汇总

1&#xff1a;音频信息数据量计算 已知采样频率&#xff08;单位KHz&#xff09;、量化位数、声道数及持续时间&#xff08;单位分钟&#xff09;&#xff0c;求未压缩时的数据量&#xff08;单位MB&#xff09;. 例如&#xff1a; 输入&#xff1a; 22.05 16 2 3 &#xff…

Ventoy万能U盘安装系统,支持任何的操作系统安装

Ventoy万能U盘安装系统&#xff0c;支持任何的操作系统安装&#xff1a; Download . VentoyVentoy is an open source tool to create bootable USB drive for ISO files. With ventoy, you dont need to format the disk again and again, you just need to copy the iso fil…

【AI视野·今日Sound 声学论文速览 第十八期】Wed, 4 Oct 2023

AI视野今日CS.Sound 声学论文速览 Wed, 4 Oct 2023 Totally 4 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Mel-Band RoFormer for Music Source Separation Authors Ju Chiang Wang, Wei Tsung Lu, Minz Won最近&#xff0c;基于多频段频谱图的方法…

RabbitMQ-主题模式

接上文 RabbitMQ-发布订阅模式和路由模式 1 主题模式 #通配符 代表0个或多个。*通配符 代表 1个或多个 进行测试&#xff0c;修改配置文件 Configuration public class RabbitConfiguration {Bean("topicExchange") //这里使用预置的Topic类型交换机public Exchan…