ignite-gg9499 - min, max, sum

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/20566ffe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/20566ffe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/20566ffe

Branch: refs/heads/ignite-gg9499
Commit: 20566ffee0da6744e183b881ad871fcac0f0a317
Parents: 7aa4d37
Author: S.Vladykin <svlady...@gridgain.com>
Authored: Fri Jan 16 19:43:45 2015 +0300
Committer: S.Vladykin <svlady...@gridgain.com>
Committed: Fri Jan 16 19:43:45 2015 +0300

----------------------------------------------------------------------
 .../processors/query/h2/sql/GridSqlElement.java |  6 +++---
 .../query/h2/sql/GridSqlQuerySplitter.java      | 21 +++++++++++++++++---
 .../cache/GridCacheCrossCacheQuerySelfTest.java |  6 ++++--
 3 files changed, 25 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/20566ffe/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlElement.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlElement.java
 
b/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlElement.java
index 16c824b..d3463fd 100644
--- 
a/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlElement.java
+++ 
b/modules/indexing/src/main/java/org/gridgain/grid/kernal/processors/query/h2/sql/GridSqlElement.java
@@ -57,8 +57,8 @@ public abstract class GridSqlElement implements Cloneable {
     }
 
     /** {@inheritDoc} */
-    @SuppressWarnings("CloneCallsConstructors")
-    @Override protected GridSqlElement clone() throws 
CloneNotSupportedException {
+    @SuppressWarnings({"CloneCallsConstructors", 
"CloneDoesntDeclareCloneNotSupportedException"})
+    @Override protected GridSqlElement clone() {
         try {
             GridSqlElement res = (GridSqlElement)super.clone();
 
@@ -67,7 +67,7 @@ public abstract class GridSqlElement implements Cloneable {
             return res;
         }
         catch (CloneNotSupportedException e) {
-            throw new RuntimeException(e);
+            throw new IllegalStateException(e);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/20566ffe/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 6105b2b..1a48540 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
@@ -159,11 +159,26 @@ public class GridSqlQuerySplitter {
 
                     break;
 
-                case COUNT_ALL:
-                case COUNT:
+                case SUM:
                 case MAX:
                 case MIN:
-                case SUM:
+                    GridSqlElement map = aggregate(agg.distinct(), 
agg.type()).addChild(agg.child());
+
+                    map = alias(columnName(idx), map);
+
+                    mapSelect.set(idx, map);
+
+                    rdc = aggregate(agg.distinct(), 
agg.type()).addChild(column(((GridSqlAlias)map).alias()));
+
+                    if (alias != null) // Add initial alias if it was set.
+                        rdc = alias(alias.alias(), rdc);
+
+                    rdcSelect[idx] = rdc;
+
+                    break;
+
+                case COUNT_ALL:
+                case COUNT:
                 default:
                     throw new IgniteException("Unsupported aggregate: " + 
agg.type());
             }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/20566ffe/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
 
b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
index 1cf2178..0933bf4 100644
--- 
a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
+++ 
b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheCrossCacheQuerySelfTest.java
@@ -155,10 +155,12 @@ public class GridCacheCrossCacheQuerySelfTest extends 
GridCommonAbstractTest {
         assertFalse(set1.isEmpty());
         assertEquals(set0, set1);
 
-        X.println("___ AVG");
+        X.println("___ AVG MIN MAX SUM");
 
         for (List<?> o : qx.executeTwoStepQuery("partitioned",
-            "select p.name, avg(f.price) from FactPurchase f, 
\"replicated\".DimProduct p where p.id = f.productId " +
+            "select p.name, avg(f.price), min(f.price), max(f.price), 
sum(f.price) " +
+                "from FactPurchase f, \"replicated\".DimProduct p " +
+                "where p.id = f.productId " +
                 "group by f.productId, p.name").get()) {
             X.println("___ -> " + o);
         }

Reply via email to