Calcite分析 -- LinQ4j

摘要: Calcite Version:1.26.0 Linq是一种对Query的抽象,任意Query都可以抽象成ExpressionTree,那么只要bind不同的implementor,就可以转化成不同的查询语言, 比如LINQ to Objects、LINQ to SQL、LINQ to Datase 阅读全文
posted @ 2021-10-13 20:03 fxjwind 阅读(6) 评论(0) 推荐(0) 编辑

Calcite分析 -- Implement

摘要: Calcite Version:1.26.0 CsvTest select "EMPNO", "JOINTIMES" from "DATE" order by "JOINTIMES" 到优化前的调用栈, 其中avatica,是calcite项目中一个独立的子项目,用于封装和server之间的交互,参 阅读全文
posted @ 2021-10-13 19:36 fxjwind 阅读(5) 评论(0) 推荐(0) 编辑

TPC-H 分析

摘要: TCPH的表结构 最小的且不变的, - Region,Nation(FK,REGION记录属于哪个区域) 1万级别, - Supplier(供应商),Skey,Name,地址,NKey(FK,记录所属国家key),电话,acctbal(Account Balance,账户余额) 10万级别, - C 阅读全文
posted @ 2021-09-28 17:29 fxjwind 阅读(21) 评论(0) 推荐(0) 编辑

论文解析 -- TPC-H Analyzed: Hidden Messages and Lessons Learned from an Influential Benchmark

摘要: 该论文主要的目的是,讨论TCPH中的Choke points, Chokepoints are those technological challenges underlying a benchmark, whose resolution will significantly improve the 阅读全文
posted @ 2021-09-28 17:13 fxjwind 阅读(17) 评论(0) 推荐(0) 编辑

Calcite分析 -- Cost

摘要: Calcite Version:1.26.0 初始的cost 加入RelNode的时候,需要更新subset的cost RelSubset 找出traits想匹配的subsets, 然后逐一更新cost, propagateCostImprovements0 getCost 叠加所有input的co 阅读全文
posted @ 2021-09-09 19:17 fxjwind 阅读(12) 评论(0) 推荐(0) 编辑

Calcite分析 -- ConverterRule

摘要: Calcite Version:1.26.0 EnumerableRule是一种ConverterRule,用于将逻辑算子转化为物理算子,并改变其convention。 EnumerableSortedAggregateRule 将LogicalAggregate转换成物理算子, Converter 阅读全文
posted @ 2021-09-08 11:18 fxjwind 阅读(11) 评论(0) 推荐(0) 编辑

Calcite分析 -- TopDownRuleDriver

摘要: Calcite Version:1.26.0 Debug TopDownOptTest, 加入 @Test void testMY() { final String sql = "select mgr, count(*) from sales.emp\n" + "group by mgr order 阅读全文
posted @ 2021-09-08 11:17 fxjwind 阅读(13) 评论(0) 推荐(0) 编辑

Calcite分析 -- SortRemoveRule

摘要: Calcite Version:1.26.0 Rule执行之前的情况, 对#19,apply SortRemoveRule #19的input是rel#13:RelSubset#2.NONE.[] 这里就是将Sort中的,collation,放到RelSubset#2.NONE.[]的input上去 阅读全文
posted @ 2021-09-02 20:03 fxjwind 阅读(8) 评论(0) 推荐(0) 编辑

Calcite分析 -- Convention&Converter

摘要: Calcite,version:1.26.0 什么是Convention 1. 是一种RelTrait,而且是默认必须有的RelTraitDef 2. 逻辑算子的convention为None,表示未被实现;反过来说物理算子的convention一定不会是None 在CBO优化前会把root进行co 阅读全文
posted @ 2021-08-31 19:56 fxjwind 阅读(18) 评论(0) 推荐(0) 编辑

Calcite分析 -- Register

摘要: Calcite Version:1.26.0 ensureRegistered getSubset,从mapRel2Subset中查询一下是否注册过 无注册调用register equivRel不为空,需要merge的case,参考,https://www.cnblogs.com/fxjwind/p 阅读全文
posted @ 2021-08-30 19:30 fxjwind 阅读(13) 评论(0) 推荐(0) 编辑