Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
The Programs class has a static method standard() used by the default Calcite driver. So far Calcite-Phoenix is using the same sql prepare logic with some slight customization, like plugging in a set of its own rules. The static standard(), though, does not work properly for Phoenix since some sub-programs it returns are initiated with the default RelMetadataProvider while Phoenix needs to plug-in its own, otherwise it just could not work.
/** Program that converts filters and projects to {@link Calc}s. */ public static final Program CALC_PROGRAM = hep(CALC_RULES, true, new DefaultRelMetadataProvider()); /** Program that expands sub-queries. */ public static final Program SUB_QUERY_PROGRAM = hep( ImmutableList.of((RelOptRule) SubQueryRemoveRule.FILTER, SubQueryRemoveRule.PROJECT, SubQueryRemoveRule.JOIN), true, new DefaultRelMetadataProvider());
Attachments
Attachments
Issue Links
- blocks
-
PHOENIX-2595 Upgrade Calcite-Phoenix to Calcite 1.6
- Open