[ 
https://issues.apache.org/jira/browse/TAJO-895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14095156#comment-14095156
 ] 

Hudson commented on TAJO-895:
-----------------------------

SUCCESS: Integrated in Tajo-master-build #334 (See 
[https://builds.apache.org/job/Tajo-master-build/334/])
TAJO-895: ConstEval should not be included in target list of projectable nodes. 
(hyunsik: rev 7e31a320144d2da6aae795f29d3bd9bbb16f9338)
* 
tajo-core/src/test/resources/queries/TestJoinQuery/testLeftOuterJoinWithConstantExpr5.sql
* 
tajo-core/src/test/resources/queries/TestJoinQuery/testLeftOuterJoinWithConstantExpr4.sql
* 
tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupByWithConstantKeys5.sql
* tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java
* 
tajo-core/src/test/resources/results/TestGroupByQuery/testGroupByWithConstantKeys4.result
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java
* 
tajo-core/src/test/resources/results/TestGroupByQuery/testGroupByWithConstantKeys3.result
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
* tajo-core/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
* 
tajo-core/src/test/resources/results/TestJoinQuery/testLeftOuterJoinWithConstantExpr5.result
* tajo-core/src/main/java/org/apache/tajo/engine/planner/TypeDeterminant.java
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
* tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java
* 
tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupByWithConstantKeys3.sql
* tajo-core/src/main/java/org/apache/tajo/engine/eval/FunctionEval.java
* tajo-core/src/main/java/org/apache/tajo/engine/optimizer/eval/Prioritized.java
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestSortQuery.java
* tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java
* 
tajo-core/src/test/resources/results/TestTajoCli/testLocalQueryWithoutFrom.result
* tajo-core/src/test/resources/queries/TestWindowQuery/testWindow8.sql
* 
tajo-core/src/main/java/org/apache/tajo/engine/optimizer/eval/EvalTreeOptimizationRule.java
* 
tajo-core/src/test/resources/results/TestGroupByQuery/testGroupByWithConstantKeys5.result
* tajo-core/src/main/java/org/apache/tajo/engine/eval/BinaryEval.java
* 
tajo-core/src/test/resources/results/TestSortQuery/testSortWithConstKeys.result
* 
tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupByWithConstantKeys4.sql
* 
tajo-core/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result
* tajo-core/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/optimizer/eval/rules/ConstantFolding.java
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestWindowQuery.java
* tajo-core/src/test/resources/results/TestWindowQuery/testWindow8.result
* 
tajo-core/src/main/java/org/apache/tajo/engine/optimizer/eval/rules/ConstantPropagation.java
* tajo-core/src/test/resources/queries/TestSortQuery/testSortWithConstKeys.sql
* 
tajo-core/src/main/java/org/apache/tajo/engine/optimizer/eval/EvalTreeOptimizer.java
* CHANGES
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java
* 
tajo-core/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases3.result
* tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java
* 
tajo-core/src/test/resources/results/TestJoinQuery/testLeftOuterJoinWithConstantExpr4.result
* tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java
* 
tajo-core/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases3.sql
* tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java


> ConstEval should not be included in target list of projectable nodes
> --------------------------------------------------------------------
>
>                 Key: TAJO-895
>                 URL: https://issues.apache.org/jira/browse/TAJO-895
>             Project: Tajo
>          Issue Type: Improvement
>          Components: planner/optimizer
>            Reporter: Hyunsik Choi
>            Assignee: Hyunsik Choi
>             Fix For: 0.9.0
>
>
> In some applications, aliased constant values can be used in WHERE, GROUP BY, 
> HAVING, ORDER BY clauses. For those cases, current planner evaluates constant 
> value in target list of projectable nodes.
> {code}
> SELECT '1994' end as year, ... FROM lineitem WHERE group by year;
> {code}
> This approach works well so far, but there are rooms for significant 
> improvement.
> The main problem is that constant target requires many workaround code in 
> NamedExprManager, and TargetListManager. As a result, it makes code 
> complexity higher. The second problem is that many constant values evaluated 
> in each row consume unnecessary I/O and network bandwidth for storing and 
> transmitting.
> The solution seems to be simple. In logical planning phase, we should rewrite 
> column references which actually indicates constant values.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to