MySQL源码分析之SQL函数执行

网站建设3年前发布
7 00

一条包含函数的SQL语句,在MySQL中会经过: 客户端发送,服务器连接,语法解析,语句执行的过程。,调试源码,分析函数的具体执行过程,在客户端,执行select to_char(‘test’) from dual。,跟踪堆栈:pthread_start→handle_one_connection→do_handle_one_connect→do_command→dispatch_command,确定SQL函数的执行入口为dispatch_command,调试跟踪SQL内部执行过程为:,MySQL源码分析之SQL函数执行,分析堆栈信息,确定SQL函数主要执行过程为:,SQL_PARSE堆栈:,SQL_RESOLVER堆栈:,SQL_EXCUTOR 堆栈:,SQL_PARSE: SQL解析生成AST语法的语法树,to_char函数,实际中已解析为Item_func_to_char的语法树节点。,SQL_RESOLVER: 准备阶段prepare,初始化赋值,如Item_func_to_char::resolve_type设定函数转换后的数据类型。,SQL_EXCUTOR: 执行阶段,执行to_char函数功能,通过Item_func_to_char::val_str,实际功能处理过程。

© 版权声明

相关文章