技术贴 | SQL编译与执行-parser
前言 SQL 编译与执行系列技术博客将按照以下顺序分别介绍整个 SQL 执行引擎。 图一SQL 编译与执行研读流程 parser 部分,包括词法解析和语法解析。 compile 部分,包括语义解析以及计划的构建。 optimize 部分,包括计划的优化。 exec 部分,包括执行计划的生成以及执行。 本文作为本系列第一篇文章,首先为大家介绍 parser 的核心设计,主要包括 SQL 词法以及语法的解析。 一、SQL 执行流程 图二所示为一条 SQL 语句的整体处理流程,总体来说,一条 SQL 语句需要经过下述步骤:parser—构建逻辑计划—构建优化计划—构建物理计划—构建执行计划。 图二 SQL执行流程 parser 过程最主要的目的就是解析输入的 SQL 语句,通过词法解析器解析为 token,通过语法解析器生成抽象语法树,而后即可传入 SQL 执行引擎进行识别和处理。 接着进入下一步,首先要对输入的数据进行有效性验证,解析并转换 AST 树,构建逻辑计划。接下来就是对生成的计划进行优化以找到代价最小的执行方式,根据优化好的逻辑计划构建可执行的物理计划,最后下...

