Starrocks语法兼容
2024-06-17 17:23:53 2 举报
AI智能生成
登录查看完整内容
Starrocks语法兼容
作者其他创作
大纲/内容
创建逻辑计划方法:createQueryPlan
trino的AST转SR的AST:com.starrocks.connector.parser.trino.AstBuilder
先转ScalarOperator为节点的树
SR的AST 转换 逻辑计划:RelationTransformer::transformWithSelectLimit
com.starrocks.sql.optimizer.Optimizer#logicalRuleRewrite
逻辑计划树被优化器优化
PlanFragmentBuilder.createPhysicalPlan
生成物理计划
关键方法
SR的sql转换SR的AST树是使用:com.starrocks.sql.parser.AstBuilder
trino的AST 转换 SR的AST树是使用:com.starrocks.connector.parser.trino.AstBuilder
trino sql 比 SR sql 多了一步:trino sql 转换到 trino的AST
SR AST树 转换到 逻辑计划,需要经过tranceform的操作
逻辑计划 需要通过优化,优化之后,才会转成物理计划
注意点
1、使用解析器(parse)得到AST树
2、使用分析器(analyze)得到逻辑计划
3、使用优化器(optimizer)优化逻辑计划和物理计划
sql 解析流程
解析流程
AST语法树:com.starrocks.analysis.ParseNode
logical
physical
ScalarOperator
pattern
type
只有logical 和 pysical operator继承了Operator类
逻辑计划树和物理计划树:OptExpression
树的节点
源码分析
0 条评论
回复 删除
下一页