PHOENIX-1654 Incorrect group-by keys from ClientAggregatePlan
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/fc299d5e Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/fc299d5e Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/fc299d5e Branch: refs/heads/calcite Commit: fc299d5e554cc5842fce96ece64058069fbea78c Parents: e0a81a0 Author: maryannxue <wei....@intel.com> Authored: Thu Feb 12 15:39:23 2015 -0500 Committer: maryannxue <wei....@intel.com> Committed: Thu Feb 12 15:39:23 2015 -0500 ---------------------------------------------------------------------- .../java/org/apache/phoenix/end2end/HashJoinIT.java | 14 ++++++++++++++ .../org/apache/phoenix/end2end/SortMergeJoinIT.java | 14 ++++++++++++++ .../apache/phoenix/execute/ClientAggregatePlan.java | 2 +- 3 files changed, 29 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/fc299d5e/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java index 5d2f522..03686f0 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/HashJoinIT.java @@ -2785,6 +2785,20 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT { + "GROUP BY t1.TID, t1.A, t2.A"); upsertStmt.execute(); conn.commit(); + + rs = statement.executeQuery("SELECT * FROM " + joinTable); + assertTrue(rs.next()); + assertEquals(rs.getString(1), "1"); + assertEquals(rs.getInt(2), 1); + assertEquals(rs.getInt(3), 2); + assertEquals(rs.getInt(4), 2); + assertTrue(rs.next()); + assertEquals(rs.getString(1), "1"); + assertEquals(rs.getInt(2), 2); + assertEquals(rs.getInt(3), 1); + assertEquals(rs.getInt(4), 2); + + assertFalse(rs.next()); } finally { conn.close(); } http://git-wip-us.apache.org/repos/asf/phoenix/blob/fc299d5e/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java index 4503b5b..7912803 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SortMergeJoinIT.java @@ -1805,6 +1805,20 @@ public class SortMergeJoinIT extends BaseHBaseManagedTimeIT { + "GROUP BY t1.TID, t1.A, t2.A"); upsertStmt.execute(); conn.commit(); + + rs = statement.executeQuery("SELECT * FROM " + joinTable); + assertTrue(rs.next()); + assertEquals(rs.getString(1), "1"); + assertEquals(rs.getInt(2), 1); + assertEquals(rs.getInt(3), 2); + assertEquals(rs.getInt(4), 2); + assertTrue(rs.next()); + assertEquals(rs.getString(1), "1"); + assertEquals(rs.getInt(2), 2); + assertEquals(rs.getInt(3), 1); + assertEquals(rs.getInt(4), 2); + + assertFalse(rs.next()); } finally { conn.close(); } http://git-wip-us.apache.org/repos/asf/phoenix/blob/fc299d5e/phoenix-core/src/main/java/org/apache/phoenix/execute/ClientAggregatePlan.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/execute/ClientAggregatePlan.java b/phoenix-core/src/main/java/org/apache/phoenix/execute/ClientAggregatePlan.java index 59aab2d..30adbe9 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/execute/ClientAggregatePlan.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/execute/ClientAggregatePlan.java @@ -101,7 +101,7 @@ public class ClientAggregatePlan extends ClientProcessingPlan { } iterator = new OrderedResultIterator(iterator, keyExpressionOrderBy, thresholdBytes, limit, projector.getEstimatedRowByteSize()); } - aggResultIterator = new ClientGroupedAggregatingResultIterator(LookAheadResultIterator.wrap(iterator), serverAggregators, groupBy.getExpressions()); + aggResultIterator = new ClientGroupedAggregatingResultIterator(LookAheadResultIterator.wrap(iterator), serverAggregators, groupBy.getKeyExpressions()); aggResultIterator = new GroupedAggregatingResultIterator(LookAheadResultIterator.wrap(aggResultIterator), clientAggregators); }