Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
4.0.0
Description
The HiveTableScan operator throws an AssertionError if the operator does not have the HiveRelNode.CONVENTION set.
The HepPlanner does not use any RelTraitDef so the default empty traitset for the respective cluster is gonna be always empty.
In principle we should not be able to use the HiveTableScan operator with HepPlanner. However, the optimizer heavily uses the HepPlanner (in fact more than the VolcanoPlanner and it is reasonable to wonder how is this possible given that this assertion is in place. The assertion is circumvented by creating a cluster from a VolcanoPlanner and then using it in the HepPlanner.
This cluster usage is a bit contrived but does not necessarily need to change at this stage.
Nevertheless, since the HiveTableScan operator is suitable to run with the HepPlanner the assertion can be relaxed (or removed altogether) to better reflect the actual usage of the operator, and allow passing a "true" HepPlanner cluster inside the operator.
Attachments
Issue Links
- links to