mysql8.0源代码解析_MySQL8.0.11源码分析之mysql关键函数和执行流程
mysql是命令行客户端程序 ,交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。
入口函数
int main(int argc, char *argv[]) {
if (get_options(argc, (char **)argv)) { //获取密码
my_end(0);
return EXIT_FAILURE;
}
//连接服务器
if (sql_connect(current_host, current_db, current_user, opt_password,opt_silent)) {
quick = 1; // Avoid history
status.exit_status = 1;
mysql_end(-1);
}
status.exit_status = read_and_execute(!status.batch); //读取命令并执行
mysql_end(0); //关闭连接
}
//读取命令并执行
static int read_and_execute(bool interactive) {
for (;;) {
//从输入流中读取一行并返回它
line = readline(prompt);
//将line复制到buffer,检查并执行
if(add_line(glob_buffer,line,line_length,&in_string,&ml_comment,status.line_buff ?
status.line_buff->truncated : 0))
break;
}
}
//将line复制到buffer,检查并执行
static bool add_line(String &buffer, char *line, size_t line_length,
char *in_string, bool *ml_comment, bool truncated) {
if (started_with_nothing) {
if (com_go(&buffer, 0) > 0) // 执行sql语句
DBUG_RETURN(1);
buffer.length(0);
}
}
执行流程
mysql8.0源代码解析_MySQL8.0.11源码分析之mysql关键函数和执行流程相关推荐
- Android 7.0 虚拟按键(NavigationBar)源码分析 之 点击事件的实现流程
第二部分: Let's go!!! [点击事件的实现流程] 1.初始化 虚拟按键点击效果的实现和实体按键相似,也是通过上报一个keyCode值,来判断哪个按钮被点击.不同的是,实体按键的keyCode ...
- 【Android SDM660源码分析】- 02 - UEFI XBL QcomChargerApp充电流程代码分析
[Android SDM660源码分析]- 02 - UEFI XBL QcomChargerApp充电流程代码分析 一.加载 UEFI 默认应用程序 1.1 LaunchDefaultBDSApps ...
- React Native 源码分析(三)——Native View创建流程
1.React Native 源码分析(一)-- 启动流程 2.React Native 源码分析(二)-- 通信机制 3.React Native 源码分析(三)-- Native View创建流程 ...
- Mybatis 源码分析(一)配置文件加载流程
Mybatis 源码分析(一)配置文件加载流程 1.项目构建 引入依赖 <dependency><groupId>org.mybatis</groupId>< ...
- Linux brk(),mmap()系统调用源码分析3:brk()的内存申请流程
Linux brk(),mmap()系统调用源码分析 brk()的内存申请流程 荣涛 2021年4月30日 内核版本:linux-5.10.13 注释版代码:https://github.com/Rt ...
- SRS流媒体服务器源码分析(一):Rtmp publish流程
1.线程模型 srs使用了state-threads协程库,是单线程多协程模型. 这个协程的概念类似于lua的协程,都是单线程中可以创建多个协程.而golang中的goroutine协程是多线程并发的 ...
- springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)
springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三) 例: package com.example.demo.service;import com.exa ...
- beaninfo详解源码解析 java_【Spring源码分析】Bean加载流程概览
代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...
- tcp/ip 协议栈Linux内核源码分析15 udp套接字接收流程二
内核版本:3.4.39 上篇我们分析了UDP套接字如何接收数据的流程,最终它是在内核套接字的接收队列里取出报文,剩下的问题就是谁会去写入这个队列,当然,这部分工作由内核来完成,本篇剩下的文章主要分析内 ...
最新文章
- oracle死锁trace,Oracle 学习之性能优化(十)锁
- matlab函数每天进步一点点
- java 计算小费_java-以某些形状显示数字
- zigbee传输速率_wifi智能开关和zigbee智能开关有哪些区别
- 手机连接投影机的步骤_投影机安装过程详解
- c++11特性move和forward区别
- Going Further with Point Pair Features: PPF, 如何走的更远?
- 在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径,如下:...
- 剑指offer——面试题49:把字符串转换成整数
- gmat模考_第一次完整模考总结,GmatPrep~~
- android9 三星 港版,三星S9+官方港版安卓9固件rom刷机包:TGY-G9650ZHS4CSD7
- 《Linux程序设计(第4版)》阅读心得
- 修正的判定/条件覆盖
- Android 11.0 MTK去掉开机通过长按电源键+音量加进入recovery 工厂模式
- 判断手机号码格式的方法
- 2022LOL微博杯模糊问题,1080p高清看微博杯the shy比赛直播
- Android LeakCanary使用详细教程
- Photoshop去除图片水印
- hdu 5148 Cities(树形dp)
- 如何在三个月内获得三年的工作经验(转载)