[
https://issues.apache.org/jira/browse/IMPALA-14723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steve Carlin updated IMPALA-14723:
----------------------------------
Parent: (was: IMPALA-14404)
Issue Type: Bug (was: Sub-task)
> Calcite planner: Refactor TestReduceExprShuttle
> -----------------------------------------------
>
> Key: IMPALA-14723
> URL: https://issues.apache.org/jira/browse/IMPALA-14723
> Project: IMPALA
> Issue Type: Bug
> Reporter: Steve Carlin
> Priority: Major
>
> From code review:
> This is not really related to this change and doesn't need to happen in this
> specific review. I think the code would benefit from a helper function. The
> collection of fields in ReduceShuttleObjects would be local variables in the
> helper function, and the tests wouldn't know about them at all. For example
> (I haven't compiled this, so it probably needs a couple fixes):
> void verifyExprReduction(String expr, Map<String, TColumn> reductionMap,
> List<String> expectedReducedExprs) {
> CalciteAnalysisResult analysisResult =
> (CalciteAnalysisResult) parseAndAnalyze("SELECT " + query,
> feFixture_.createAnalysisCtx(), new CalciteCompilerFactory());
> CalciteRelNodeConverter relNodeConverter =
> new CalciteRelNodeConverter(analysisResult);
> RelNode rootNode =
> relNodeConverter.convert(analysisResult.getValidatedNode());
> Preconditions.checkState(rootNode instanceof Project);
> Project project = (Project) rootNode;
> Analyzer analyzer = analysisResult.getAnalyzer();
> TQueryCtx queryCtx = analyzer.getQueryCtx();
> TestReducerTmp testReducer = new TestReducerTmp(reductionMap);
> RexExecutor executor = new ImpalaRexExecutor(
> analyzer, queryCtx, testReducer);
> RexBuilder rexBuilder = new RexBuilder(
> new JavaTypeFactoryImpl(new ImpalaTypeSystemImpl()));
> List<RexNode> reducedExprs = new ArrayList<>();
> executor.reduce(rexBuilder, project.getProjects(), reducedExprs);
> assertEquals(expectedReducedExprs.size(), reducedExprs.size());
> for (int i = 0; i < expectedReducedExprs.size(); i++) {
> assertEquals(exectedReducedExprs.get(i), reducedExprs.get(i).toString());
> }
> }
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]