TDDL源码分析 - 4. Optimizer层AST语法树概述

TDDL的optimizer层主要完成三部分的工作:

  1. 将parser分析得到的statement转化为可以优化的AST语法树
  2. 对AST语法树做Cost Based优化
  3. 根据优化后的AST语法树生成查询计划

本篇文档主要介绍第1点中AST语法树相关的结构。

parser层输出的结构是SQLStatement接口,能够通过SQLASTVisitor接口访问。

optimizer层要做的第一个工作,就是将parser层的SQLStatement数据结构转换为optimizer层的可优化AST语法树结构。相关的核心结构如下:

  • CobarSqlAnalysisResult - 是关联parser层SQLStatement结构和optimizer层ASTNode结构的连接点。它根据SQLStatement的类型创建不同的visitor,生成ASTNode层次结构
  • MySqlSelectVisitor - 访问DMLSelectStatement内部结构,生成对应的QueryTreeNode结构
  • ASTNode结构 - 包含了查询的所有原信息,能通过toDataNodeExecutor()方法生成查询计划

转载于:https://my.oschina.net/zhuhui/blog/3079509

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值