You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tajo.apache.org by Hyunsik Choi <hy...@apache.org> on 2014/02/13 14:12:33 UTC
Review Request 18075: TAJO-595: The same expressions without different alias
are not allowed.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/
-----------------------------------------------------------
Review request for Tajo.
Bugs: TAJO-595
https://issues.apache.org/jira/browse/TAJO-595
Repository: tajo
Description
-------
Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
{code}
select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
{code}
The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
Diffs
-----
tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java d929218498c681b52f95e72d4435cf6ef395b9c4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java dc951cfc5923f8cf7cc91085538e3064dbdeca50
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 4d852fc2e58468abf9934a3aefb743963b2aa998
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk4.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk4.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
Diff: https://reviews.apache.org/r/18075/diff/
Testing
-------
Thanks,
Hyunsik Choi
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Jihoon Son <ji...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34595
-----------------------------------------------------------
The patch looks gone stale. Would you rebase the patch?
Also, I left some comments.
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java
<https://reviews.apache.org/r/18075/#comment64750>
You need to add some description of this function.
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java
<https://reviews.apache.org/r/18075/#comment64749>
the variable state is unused.
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java
<https://reviews.apache.org/r/18075/#comment64752>
Would you add some descriptions for this function?
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java
<https://reviews.apache.org/r/18075/#comment64753>
Please add some explanations for this operation.
- Jihoon Son
On Feb. 14, 2014, 1:25 a.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 14, 2014, 1:25 a.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java d929218498c681b52f95e72d4435cf6ef395b9c4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java dc951cfc5923f8cf7cc91085538e3064dbdeca50
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 4d852fc2e58468abf9934a3aefb743963b2aa998
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk4.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk4.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
> On Feb. 17, 2014, 3:30 p.m., Jung JaeHwa wrote:
> > tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java, line 51
> > <https://reviews.apache.org/r/18075/diff/4/?file=490262#file490262line51>
> >
> > This field is never read. Could you explain why it is needed?
ExprVerifierContext was added in order to improve ExprVerifier. But, I didn't that work. So, I changed ExprVerifier's Context to VerificationState.
- Hyunsik
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34620
-----------------------------------------------------------
On Feb. 17, 2014, 5:25 p.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 5:25 p.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34620
-----------------------------------------------------------
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java
<https://reviews.apache.org/r/18075/#comment64805>
This field is never read. Could you explain why it is needed?
- Jung JaeHwa
On Feb. 17, 2014, 5:56 a.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 5:56 a.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
> On Feb. 17, 2014, 6:56 p.m., Jung JaeHwa wrote:
> > +1 for the patch.
> > Thanks Hyunsik, I checked it.:)
Thanks you guys for the reviews. I'll commit it.
- Hyunsik
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34641
-----------------------------------------------------------
On Feb. 17, 2014, 5:25 p.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 5:25 p.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Jung JaeHwa <jh...@gruter.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34641
-----------------------------------------------------------
Ship it!
+1 for the patch.
Thanks Hyunsik, I checked it.:)
- Jung JaeHwa
On Feb. 17, 2014, 8:25 a.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 8:25 a.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/
-----------------------------------------------------------
(Updated Feb. 17, 2014, 5:25 p.m.)
Review request for Tajo.
Changes
-------
Removed ExprVerifierContext and changed ExprsVerifier to use VerificationState like before.
Bugs: TAJO-595
https://issues.apache.org/jira/browse/TAJO-595
Repository: tajo
Description
-------
Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
{code}
select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
{code}
The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
Diffs (updated)
-----
tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
Diff: https://reviews.apache.org/r/18075/diff/
Testing
-------
mvn clean install
Thanks,
Hyunsik Choi
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/
-----------------------------------------------------------
(Updated Feb. 17, 2014, 2:56 p.m.)
Review request for Tajo.
Changes
-------
Fixed wrong condition check in NamedExprsManager.
Bugs: TAJO-595
https://issues.apache.org/jira/browse/TAJO-595
Repository: tajo
Description
-------
Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
{code}
select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
{code}
The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
Diffs (updated)
-----
tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
Diff: https://reviews.apache.org/r/18075/diff/
Testing
-------
mvn clean install
Thanks,
Hyunsik Choi
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
> On Feb. 17, 2014, 2:47 p.m., Jinho Kim wrote:
> > tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java, line 202
> > <https://reviews.apache.org/r/18075/diff/2-3/?file=487544#file487544line202>
> >
> > Could you remove 'nameExprs.size()' ? It may occured NPE
Thank you for nice finding. I intended to check the nullity of namedExprs because namedExprs is a nullable parameter as annotated in the method signature. So, I've changed as follows:
```
if (namedExprs != null && namedExprs.size() > 0) {
```
Thanks!
- Hyunsik
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34614
-----------------------------------------------------------
On Feb. 17, 2014, 2:34 p.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 2:34 p.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Jinho Kim <jh...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34614
-----------------------------------------------------------
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java
<https://reviews.apache.org/r/18075/#comment64789>
Could you remove 'nameExprs.size()' ? It may occured NPE
- Jinho Kim
On Feb. 17, 2014, 5:34 a.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 5:34 a.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/#review34612
-----------------------------------------------------------
In addition to Jihoon's comment, I've added more comments on NamedExprsManager and other methods. Also, I renamed newGeneratedColumnName to generateUniqueColumnName in order to improve readability.
- Hyunsik Choi
On Feb. 17, 2014, 2:34 p.m., Hyunsik Choi wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18075/
> -----------------------------------------------------------
>
> (Updated Feb. 17, 2014, 2:34 p.m.)
>
>
> Review request for Tajo.
>
>
> Bugs: TAJO-595
> https://issues.apache.org/jira/browse/TAJO-595
>
>
> Repository: tajo
>
>
> Description
> -------
>
> Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
>
> {code}
> select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
> {code}
>
> The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
>
>
> Diffs
> -----
>
> tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
> tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
> tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
> tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
> tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
>
> Diff: https://reviews.apache.org/r/18075/diff/
>
>
> Testing
> -------
>
> mvn clean install
>
>
> Thanks,
>
> Hyunsik Choi
>
>
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/
-----------------------------------------------------------
(Updated Feb. 17, 2014, 2:34 p.m.)
Review request for Tajo.
Changes
-------
Added more comments
Bugs: TAJO-595
https://issues.apache.org/jira/browse/TAJO-595
Repository: tajo
Description
-------
Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
{code}
select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
{code}
The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
Diffs (updated)
-----
tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
Diff: https://reviews.apache.org/r/18075/diff/
Testing
-------
mvn clean install
Thanks,
Hyunsik Choi
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/
-----------------------------------------------------------
(Updated Feb. 17, 2014, 2:04 p.m.)
Review request for Tajo.
Changes
-------
reflected all comments on RB.
Bugs: TAJO-595
https://issues.apache.org/jira/browse/TAJO-595
Repository: tajo
Description
-------
Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
{code}
select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
{code}
The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
Diffs (updated)
-----
tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/eval/EvalNode.java 5578043a93fe5c064b54d690f4cbd9a58d8dcc5a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprNormalizer.java 6363bf6452f97e6f311e30ddab01caab2d264081
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java df9b952ed704a75baa0c257a60513f3914bb59d5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java 9a8fd51877b36f29adca6ebb33e01569f54ca963
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java 5860b38b7f70bd04aa19c04e6aacd512de34a297
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 6c8581ffbe319bb4f7cb429adedf56d3484c6b32
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk5.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinOnPartitionedTables/testPartialFilterPushDown.result f3fc0d327567e162811fbaa2f7e9f20e1ff63fbe
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk5.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
Diff: https://reviews.apache.org/r/18075/diff/
Testing
-------
mvn clean install
Thanks,
Hyunsik Choi
Re: Review Request 18075: TAJO-595: The same expressions without different
alias are not allowed.
Posted by Hyunsik Choi <hy...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18075/
-----------------------------------------------------------
(Updated Feb. 14, 2014, 1:25 a.m.)
Review request for Tajo.
Bugs: TAJO-595
https://issues.apache.org/jira/browse/TAJO-595
Repository: tajo
Description
-------
Currently, LogicalPlanner and ProjectionPushDownRule do not allow the same expressions with different alias names. The following query is an example of this restriction.
{code}
select l_orderkey + 1 as total1, orderkey + 1 as total2 from ..
{code}
The main cause of this bug is that NamedExprManager and TargetListManager only keep 1:1 mapping relationship between alias and expression. This patch changes them to keep 1:N mapping relationship.
Diffs
-----
tajo-algebra/src/main/java/org/apache/tajo/algebra/LiteralValue.java f7d77203dd098e13520865bd21427f1891d6818e
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java 2f57ff213c038e029f8b550ce0a7fddc51a9e630
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprsVerifier.java c473ac16cb98f526737acc0e50f18780b746aa6e
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/InsertNode.java d9645a4b98cfd886ae7b40de4b964ad10fb75a5d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlan.java 98909437c155d8b3a5d076056de47a330b991fbc
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanVerifier.java 9c58b7de2a855e6713ea1ccaa79c5b5cc1468358
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/LogicalPlanner.java d929218498c681b52f95e72d4435cf6ef395b9c4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/NamedExprsManager.java 6ce7bdfabca447f3f42b4bd75f09722fa4501ad5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlanString.java 4ecad6042f9db1ba4f3b77fc411d883652b6ee0d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java e9293de3e847c0a0d543864d5ede6c779a720d92
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/PreLogicalPlanVerifier.java fe93f46dfa87ddfc862c369ea490273aff8d8a10
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java d040d7e635bb912cace3f0625c9c815e94395c54
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/CreateTableNode.java c266bbcba9861fcde21efa5f142ebe4678aaa5a4
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/DropTableNode.java 4dda7affd60fd7ed4ed097821b95664dfde8fa7b
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ExceptNode.java 0520214f6261f54a94689ccac8ea30712d923f1f
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/GroupbyNode.java 58fa6e294b83f7282140a7d8b03cfe3c2a2eb178
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java f4eafd098fe5e9f4b18089af6cddcdf3684f27f6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/IntersectNode.java 493698dacc578af4f6971a33e6a4920200a835dd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/JoinNode.java 2628c3be5ce4558de8fd5993761ae25f8303153a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LimitNode.java 197a5bcd96ca39a9519a8149671ddafaf6781607
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/LogicalRootNode.java 72f5ee8f34873b95b7615b2f4462116248f11823
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PartitionedTableScanNode.java 824e858f33bdbbc50ed5974fad88445677013fec
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/PersistentStoreNode.java 2a357c48724c15975a792cdc22f52710baebb548
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/Projectable.java d72b31ef48f464b760cb3624c44dd285ab1ba3b6
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ProjectionNode.java 1a219a6fda69164c309270e6cd0c62f72a4a4471
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java 155c09f3ae6412767edb54605c4264963d2539b2
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java b39ade3e75296ac47804e48493ad6ff02f24ea12
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/SortNode.java 00c84852fc11d433768ec18ddb4c93938a069790
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/StoreTableNode.java 47e33c73885a3cb946700b0b7905436eee4ae488
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/TableSubQueryNode.java 01d17de7c6a41584fdb9fe65bb4056c60fb8058a
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/UnionNode.java 56ca14623091680605eb036d55087f9cc34cacfd
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/rewrite/ProjectionPushDownRule.java 7aa37bd27fa008153ca3d2d0062e5f9fae8bf1f5
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/GlobalEngine.java 6c56964a38f7b4a08cd899223f7bb4932a55239d
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/Repartitioner.java 8ea824e208b9fcadbe12a32d477c545cc57a3627
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java 25f61f5f1fc5e0d6d90c11e4b3bbeb38d17647ea
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java dc951cfc5923f8cf7cc91085538e3064dbdeca50
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestSelectQuery.java 4d852fc2e58468abf9934a3aefb743963b2aa998
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testJoinRefEval.sql
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectAsterisk4.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/queries/TestSelectQuery/testSelectSameExprsWithDifferentAliases.sql PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestGroupByQuery/testGroupByWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs1.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinCoReferredEvalsWithSameExprs2.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testJoinRefEval.result
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectAsterisk4.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameConstantsWithDifferentAliases.result PRE-CREATION
tajo-core/tajo-core-backend/src/test/resources/results/TestSelectQuery/testSelectSameExprsWithDifferentAliases.result PRE-CREATION
Diff: https://reviews.apache.org/r/18075/diff/
Testing (updated)
-------
mvn clean install
Thanks,
Hyunsik Choi