Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 95dc51033 -> 7ae02f095


PHOENIX-3476: prevent loss of offset when sub-aggregating (Matthew Silverman)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/7ae02f09
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/7ae02f09
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/7ae02f09

Branch: refs/heads/4.x-HBase-0.98
Commit: 7ae02f095289a1d085b3662cf2cbde8a0d6cca1e
Parents: 95dc510
Author: James Taylor <[email protected]>
Authored: Tue Mar 21 15:48:36 2017 -0700
Committer: James Taylor <[email protected]>
Committed: Tue Mar 21 15:49:32 2017 -0700

----------------------------------------------------------------------
 .../phoenix/end2end/NthValueFunctionIT.java     | 34 ++++++++++++++++++++
 .../FirstLastValueServerAggregator.java         |  2 --
 2 files changed, 34 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/7ae02f09/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
index 1278e26..ff0f094 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/NthValueFunctionIT.java
@@ -128,6 +128,40 @@ public class NthValueFunctionIT extends 
ParallelStatsDisabledIT {
     }
 
     @Test
+    public void offsetValueSubAggregation() throws Exception {
+        Connection conn = DriverManager.getConnection(getUrl());
+
+        String nth_test_table = generateUniqueName();
+        String ddl = "CREATE TABLE IF NOT EXISTS " + nth_test_table + " "
+                + "(id INTEGER NOT NULL PRIMARY KEY, page_id UNSIGNED_LONG,"
+                + " \"DATE\" INTEGER, \"value\" UNSIGNED_LONG)";
+        conn.createStatement().execute(ddl);
+
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+                + " (id, page_id, \"DATE\", \"value\") VALUES (1, 8, 0, 300)");
+        conn.createStatement().execute(
+                "UPSERT INTO " + nth_test_table + " (id, page_id, \"DATE\", 
\"value\") VALUES (2, 8, 1, 7)");
+        conn.createStatement().execute(
+                "UPSERT INTO " + nth_test_table + " (id, page_id, \"DATE\", 
\"value\") VALUES (3, 9, 2, 9)");
+        conn.createStatement().execute(
+                "UPSERT INTO " + nth_test_table + " (id, page_id, \"DATE\", 
\"value\") VALUES (4, 9, 3, 4)");
+        conn.createStatement().execute(
+                "UPSERT INTO " + nth_test_table + " (id, page_id, \"DATE\", 
\"value\") VALUES (5, 10, 4, 2)");
+        conn.createStatement().execute("UPSERT INTO " + nth_test_table
+                + " (id, page_id, \"DATE\", \"value\") VALUES (6, 10, 5, 
150)");
+        conn.commit();
+
+        ResultSet rs = conn.createStatement().executeQuery(
+                "SELECT NTH_VALUE(SUM_VALUE, 2) WITHIN GROUP (ORDER BY 
MIN_DATE ASC) FROM (" +
+                        "SELECT MIN(\"DATE\") AS MIN_DATE, SUM(\"value\") AS 
SUM_VALUE FROM "
+                        + nth_test_table + " GROUP BY page_id) x");
+
+        assertTrue(rs.next());
+        assertEquals(13, rs.getLong(1));
+        assertFalse(rs.next());
+    }
+
+    @Test
     public void offsetValueLastMismatchByColumn() throws Exception {
         Connection conn = DriverManager.getConnection(getUrl());
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/7ae02f09/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/FirstLastValueServerAggregator.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/FirstLastValueServerAggregator.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/FirstLastValueServerAggregator.java
index 273b890..66b38c6 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/FirstLastValueServerAggregator.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/FirstLastValueServerAggregator.java
@@ -64,8 +64,6 @@ public class FirstLastValueServerAggregator extends 
BaseAggregator {
         topValue = null;
         topValues.clear();
         topValuesCount = 0;
-        offset = -1;
-        useOffset = false;
     }
 
     @Override

Reply via email to