Return-Path: X-Original-To: apmail-tajo-dev-archive@minotaur.apache.org Delivered-To: apmail-tajo-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6A41510B7B for ; Fri, 17 Jan 2014 09:53:47 +0000 (UTC) Received: (qmail 8429 invoked by uid 500); 17 Jan 2014 09:53:46 -0000 Delivered-To: apmail-tajo-dev-archive@tajo.apache.org Received: (qmail 8339 invoked by uid 500); 17 Jan 2014 09:53:45 -0000 Mailing-List: contact dev-help@tajo.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tajo.incubator.apache.org Delivered-To: mailing list dev@tajo.incubator.apache.org Received: (qmail 8325 invoked by uid 99); 17 Jan 2014 09:53:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Jan 2014 09:53:44 +0000 X-ASF-Spam-Status: No, hits=-2000.1 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 17 Jan 2014 09:53:42 +0000 Received: (qmail 7068 invoked by uid 99); 17 Jan 2014 09:53:20 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Jan 2014 09:53:20 +0000 Date: Fri, 17 Jan 2014 09:53:19 +0000 (UTC) From: "Tajo QA (JIRA)" To: dev@tajo.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (TAJO-501) Rewrite the projection part of logical planning MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/TAJO-501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13874608#comment-13874608 ] 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/12623609/TAJO-501_4.patch against master revision ebb12b7. {color:red}-1 patch.{color} The patch command could not apply the patch. {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 patch.{color} The patch command could not apply the patch. Console output: https://builds.apache.org/job/PreCommit-TAJO-Build/56//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, TAJO-501_2.patch, TAJO-501_3.patch, TAJO-501_4.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)