commit | 7be30db36d449e0a7fcc76b7d4647e141f4bc72d | [log] [tgz] |
---|---|---|
author | Haisheng Yuan <h.yuan@alibaba-inc.com> | Wed May 13 14:18:07 2020 -0500 |
committer | Haisheng Yuan <h.yuan@alibaba-inc.com> | Thu May 14 14:19:56 2020 -0500 |
tree | 72509a812d726b1cbfe159642aa8c1e6f6fadecd | |
parent | ffa22f7e8b94fce1e7c297404453d13f959fd646 [diff] |
[CALCITE-3997] Logical rules matched with physical operators but failed to handle traits Logical transformation rule, only logical operator can be rule operand, and only generate logical alternatives. It is only visible to VolcanoPlanner, HepPlanner will ignore this interface. That means, in HepPlanner, the rule that implements TransformationRule can still match with physical operator of PhysicalNode and generate physical alternatives. But in VolcanoPlanner, TransformationRule doesn't match with physical operator that implements PhysicalNode. It is NOT allowed to generate physical operators in TransformationRule, unless you are using it in HepPlanner. This will also fix issue CALCITE-3968. Close #1976
Apache Calcite is a dynamic data management framework.
It contains many of the pieces that comprise a typical database management system but omits the storage primitives. It provides an industry standard SQL parser and validator, a customisable optimizer with pluggable rules and cost functions, logical and physical algebraic operators, various transformation algorithms from SQL to algebra (and the opposite), and many adapters for executing SQL queries over Cassandra, Druid, Elasticsearch, MongoDB, Kafka, and others, with minimal configuration.
For more details, see the home page.