[ 
https://issues.apache.org/jira/browse/IMPALA-14723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Steve Carlin updated IMPALA-14723:
----------------------------------
    Epic Link: IMPALA-15133

> 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]

Reply via email to