我正在学习方解石,但被ConverterRule和RelOptRule弄糊涂了。
我已经知道RelOptRule是将一个表达式转换为另一个表达式的规则,RelOptPlanner使用RelOptRule。
但我在ConverterRule的java文档中看到了这一点
/**
* Abstract base class for a rule which converts from one calling convention to
* another without changing semantics.
*/
ConverterRule和RelOptRule有什么不同?我该如何使用它们呢?
发布于 2019-05-22 03:17:39
ConverterRule
是RelOptRule
类的子类。这两个规则都是规划者用来转换关系代数表达式的规则。ConverterRule
执行您引用的Javadoc状态,它在调用约定之间进行转换。例如,这用于允许通过分配特定的调用约定来实际执行逻辑表达式,该约定指示哪个系统将实际执行查询。
除了转换约定之外,规则还可以做许多其他的事情。例如,规则可以决定交换Filter
和Project
节点的顺序。实际上,规则所做的全部工作就是匹配关系代数表达式的子树,并将其替换为不同的子树。
https://stackoverflow.com/questions/56234480
复制相似问题