一、概述

语法解析是SQL处理的前提和基础,目前由于不同的计算引擎SQL方言不同,因此SQL解析处理模式也大相径庭。从整体上看,SQL解析将SQL转为AST抽象语法树,该语法树是朴素的,无元数据绑定的,也无法直接进行查询优化。但基于语法树遍历,也可以挖掘丰富的SQL执行信息,如目标库表、数据血缘、防御SQL注入攻击、热度分析等。除此之外,基于语法树也可以进行SQL改写处理,识别特定节点并变更后,再将语法树转为改写后的SQL执行。