【发布时间】:2021-10-09 13:17:42
【问题描述】:
例如,我们有下一个 Rel 树(条件中有子查询)
LogicalProject(id=[$0], varchar_col=[$1], link_col=[$2])
LogicalFilter(condition=[IN($0, {
LogicalSort(fetch=[1])
LogicalProject(id=[$0])
LogicalTableScan(table=[[db, table2]])
})])
LogicalTableScan(table=[[db, table1]])
创建自:
SELECT * FROM db.table1 as b where b.id IN (select c.id from db.table2 as c limit 1)
如果我实现仅查找 TableScan 的 RelOptRule,它将只找到一个与 table1
一起操作的规则new TestRule(RelOptRule.operand(LogicalTableScan.class, RelOptRule.any()), "test")
这是一个错误吗? RelShuttle 中发生了常见行为,它会相应地跳过 RelNode
【问题讨论】:
标签: java apache-calcite