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关键函数和执行流程相关推荐

  1. Android 7.0 虚拟按键(NavigationBar)源码分析 之 点击事件的实现流程

    第二部分: Let's go!!! [点击事件的实现流程] 1.初始化 虚拟按键点击效果的实现和实体按键相似,也是通过上报一个keyCode值,来判断哪个按钮被点击.不同的是,实体按键的keyCode ...

  2. 【Android SDM660源码分析】- 02 - UEFI XBL QcomChargerApp充电流程代码分析

    [Android SDM660源码分析]- 02 - UEFI XBL QcomChargerApp充电流程代码分析 一.加载 UEFI 默认应用程序 1.1 LaunchDefaultBDSApps ...

  3. React Native 源码分析(三)——Native View创建流程

    1.React Native 源码分析(一)-- 启动流程 2.React Native 源码分析(二)-- 通信机制 3.React Native 源码分析(三)-- Native View创建流程 ...

  4. Mybatis 源码分析(一)配置文件加载流程

    Mybatis 源码分析(一)配置文件加载流程 1.项目构建 引入依赖 <dependency><groupId>org.mybatis</groupId>< ...

  5. Linux brk(),mmap()系统调用源码分析3:brk()的内存申请流程

    Linux brk(),mmap()系统调用源码分析 brk()的内存申请流程 荣涛 2021年4月30日 内核版本:linux-5.10.13 注释版代码:https://github.com/Rt ...

  6. SRS流媒体服务器源码分析(一):Rtmp publish流程

    1.线程模型 srs使用了state-threads协程库,是单线程多协程模型. 这个协程的概念类似于lua的协程,都是单线程中可以创建多个协程.而golang中的goroutine协程是多线程并发的 ...

  7. springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)

    springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三) 例: package com.example.demo.service;import com.exa ...

  8. beaninfo详解源码解析 java_【Spring源码分析】Bean加载流程概览

    代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...

  9. tcp/ip 协议栈Linux内核源码分析15 udp套接字接收流程二

    内核版本:3.4.39 上篇我们分析了UDP套接字如何接收数据的流程,最终它是在内核套接字的接收队列里取出报文,剩下的问题就是谁会去写入这个队列,当然,这部分工作由内核来完成,本篇剩下的文章主要分析内 ...

最新文章

  1. oracle死锁trace,Oracle 学习之性能优化(十)锁
  2. matlab函数每天进步一点点
  3. java 计算小费_java-以某些形状显示数字
  4. zigbee传输速率_wifi智能开关和zigbee智能开关有哪些区别
  5. 手机连接投影机的步骤_投影机安装过程详解
  6. c++11特性move和forward区别
  7. Going Further with Point Pair Features: PPF, 如何走的更远?
  8. 在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径,如下:...
  9. 剑指offer——面试题49:把字符串转换成整数
  10. gmat模考_第一次完整模考总结,GmatPrep~~
  11. android9 三星 港版,三星S9+官方港版安卓9固件rom刷机包:TGY-G9650ZHS4CSD7
  12. 《Linux程序设计(第4版)》阅读心得
  13. 修正的判定/条件覆盖
  14. Android 11.0 MTK去掉开机通过长按电源键+音量加进入recovery 工厂模式
  15. 判断手机号码格式的方法
  16. 2022LOL微博杯模糊问题,1080p高清看微博杯the shy比赛直播
  17. Android LeakCanary使用详细教程
  18. Photoshop去除图片水印
  19. hdu 5148 Cities(树形dp)
  20. 如何在三个月内获得三年的工作经验(转载)

热门文章

  1. 内心深处的疑问。。。
  2. 怎么保存京东产品主图大图
  3. CMOS Image Sensor的MIPI CSI接口介绍及波形实测
  4. 利用censys查询所需要的信息
  5. 小程序全面基础知识归纳
  6. 打印100以内的素数
  7. sdc基本概念-set_clock_groups
  8. 工业减压蒸馏工艺中大流量耐腐蚀快响应精密真空控制的解决方案
  9. java银行管理系统大作业_银行管理系统项目 《JAVA程序设计》课件.doc
  10. SpringBoot 中间件设计和开发