Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Currently, Drill implementation uses a static variable for the rulesets used by optimizer. Once the rule set variable is initialized, it will not be updated, even if there is new storage plugin added or registered.
This will cause problems:
1) In HBase unit test, if there is no hbase storage plugin configured when run the unit test, the Hbase test suit will add a new HBase plugin on-the-fly. However, the optimizer's ruleset has been initialized. This will essentially disable the hbase specific rule (currently the HBasePushFilterIntoScanRule).
2) If user starts a Drillbit, runs some queries, then adds a new storage plugin, the rules specific for this new plugin will not be added to optimizer, since the optimizer's ruleset has already been initialized. That means query refers to the new plug may not have those rules executed. This may lead to less efficient query execution plan.