Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 030A7100DD for ; Fri, 16 Jan 2015 16:44:45 +0000 (UTC) Received: (qmail 43835 invoked by uid 500); 16 Jan 2015 16:44:46 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 43767 invoked by uid 500); 16 Jan 2015 16:44:46 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 43747 invoked by uid 99); 16 Jan 2015 16:44:46 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Jan 2015 16:44:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_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, 16 Jan 2015 16:44:43 +0000 Received: (qmail 42960 invoked by uid 99); 16 Jan 2015 16:44:18 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Jan 2015 16:44:18 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id C71E2E0816; Fri, 16 Jan 2015 16:44:17 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sergi@apache.org To: commits@ignite.incubator.apache.org Date: Fri, 16 Jan 2015 16:45:18 -0000 Message-Id: <010fb75db03f4bd8b2eb43bdffa30c80@git.apache.org> In-Reply-To: <11cbe1415b494f80a431f1bf67e3a2ea@git.apache.org> References: <11cbe1415b494f80a431f1bf67e3a2ea@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [63/67] [abbrv] incubator-ignite git commit: ignite-gg9499 - wip X-Virus-Checked: Checked by ClamAV on apache.org ignite-gg9499 - wip Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7298090b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7298090b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7298090b Branch: refs/heads/ignite-gg9499 Commit: 7298090b6b32b4def69a67c2cab12f2db76af8ea Parents: b18d6fb Author: S.Vladykin Authored: Fri Jan 16 12:43:42 2015 +0300 Committer: S.Vladykin Committed: Fri Jan 16 12:43:42 2015 +0300 ---------------------------------------------------------------------- .../query/h2/sql/GridSqlQuerySplitter.java | 35 +++++++++----------- 1 file changed, 16 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7298090b/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlQuerySplitter.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlQuerySplitter.java b/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlQuerySplitter.java index deeeae0..2348bc9 100644 --- a/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlQuerySplitter.java +++ b/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlQuerySplitter.java @@ -39,7 +39,7 @@ public class GridSqlQuerySplitter { * @param idx Index of column. * @return Generated by index column alias. */ - private static String columnAlias(int idx) { + private static String columnName(int idx) { return COLUMN_PREFIX + idx; } @@ -62,11 +62,7 @@ public class GridSqlQuerySplitter { return res; } - // Map query. - GridSqlSelect mapQry = srcQry.clone(); - - mapQry.clearSelect(); - + // Split all select expressions into map-reduce parts. List mapExps = new ArrayList<>(srcQry.allExpressions()); GridSqlElement[] rdcExps = new GridSqlElement[srcQry.select().size()]; @@ -74,18 +70,14 @@ public class GridSqlQuerySplitter { for (int i = 0, len = mapExps.size(); i < len; i++) splitSelectExpression(mapExps, rdcExps, i); - List aliases = new ArrayList<>(srcQry.allExpressions().size()); + // Build map query. + GridSqlSelect mapQry = srcQry.clone(); + + mapQry.clearSelect(); int idx = 0; for (GridSqlElement exp : mapExps) { // Add all expressions to select clause. - if (exp instanceof GridSqlColumn) - exp = alias(((GridSqlColumn)exp).columnName(), exp); - else if (!(exp instanceof GridSqlAlias)) - exp = alias(columnAlias(idx), exp); - - aliases.add((GridSqlAlias)exp); - mapQry.addSelectExpression(exp); idx++; @@ -128,7 +120,7 @@ public class GridSqlQuerySplitter { if (exp instanceof GridSqlAlias) return ((GridSqlAlias)exp).alias(); - return columnAlias(idx); + return columnName(idx); } /** @@ -158,7 +150,7 @@ public class GridSqlQuerySplitter { // Add generated alias to COUNT(x). // Using size as index since COUNT will be added as the last select element to the map query. - cntMap = alias(columnAlias(mapSelect.size()), cntMap); + cntMap = alias(columnName(mapSelect.size()), cntMap); mapSelect.add(cntMap); @@ -166,7 +158,7 @@ public class GridSqlQuerySplitter { GridSqlElement avgMap = aggregate(agg.distinct(), AVG).addChild(agg.child()); // Add function argument. // Add generated alias to AVG(x). - avgMap = alias(columnAlias(idx), avgMap); + avgMap = alias(columnName(idx), avgMap); mapSelect.set(idx, avgMap); @@ -193,13 +185,18 @@ public class GridSqlQuerySplitter { case MAX: case MIN: case SUM: - case GROUP_CONCAT: default: throw new IgniteException("Unsupported aggregate: " + agg.type()); } } - else if (alias == null) { + else { + if (alias == null) { // Generate alias if none. + alias = alias(columnName(idx), mapSelect.get(idx)); + + mapSelect.set(idx, alias); + } + rdcSelect[idx] = column(alias.alias()); } }