[
https://issues.apache.org/jira/browse/TAJO-501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13874464#comment-13874464
]
Tajo QA commented on TAJO-501:
------------------------------
{color:red}*-1 overall.*{color} Here are the results of testing the latest
attachment
http://issues.apache.org/jira/secure/attachment/12623580/TAJO-501.patch
against master revision b822c28.
{color:green}+1 @author.{color} The patch does not contain any @author
tags.
{color:green}+1 tests included.{color} The patch appears to include 91 new
or modified test files.
{color:red}-1 javac.{color} The patch appears to cause the build to fail.
Console output: https://builds.apache.org/job/PreCommit-TAJO-Build/53//console
This message is automatically generated.
> Rewrite the projection part of logical planning
> -----------------------------------------------
>
> Key: TAJO-501
> URL: https://issues.apache.org/jira/browse/TAJO-501
> Project: Tajo
> Issue Type: Improvement
> Components: planner/optimizer
> Reporter: Hyunsik Choi
> Assignee: Hyunsik Choi
> Priority: Critical
> Fix For: 0.8-incubating
>
> Attachments: TAJO-501.patch
>
>
> The projection part of LogicalPlanner was designed long time ago. It has
> evolved to support many SQL expressions. However, due to its rough design, it
> is hard to be improved for further SQL expressions and it causes many bugs.
> The current logical planner has the following problems:
> * other expressions except for column can be used in group-by clause.
> ** TAJO-422
> * other expressions except for column can not be used in order-by clause.
> ** TAJO-444
> * An expression including some aggregation function must be evaluated in
> group-by executor.
> ** As a result, some aggregation operator like HashAggregateExec has to
> keep all intermediate results of a complex expression in a hash table.
> ** It also causes frequent GC and large memory consumption.
> The too high code complexity also causes many bugs like
> * TAJO-434 - java.lang.NullPointerException for invalid column name
> * TAJO-428 - CASE WHEN IS NULL condition is a problem using LEFT OUTER JOIN
> * TAJO-463 - ProjectionPushDownRule incorrectly rewrite the output schema of
> StoreTableNode
> * TAJO-443 - Order by query gives NullPointerException at at
> org.apache.tajo.catalog.Schema.getColumnId(Schema.java:142)
> The major reason of this problem is as follows:
> * TargetListManager keeps only the final target list.
> ** SELECT col1, sum(col2) as col2, ... <- the final target list
> * TargetListManager deals with each expression described in a target list or
> other clauses like group-by clause as a singleton expression.
> The main objective of this issue is to rewrite the projection part of logical
> planning in order to those problems.
> For 2 weeks, I've rewritten this part. I'll submit the patch soon.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)