git commit: PHOENIX-1103 ChunkedResultIterator compat with hash joins

2014-07-23 Thread greid
Repository: phoenix
Updated Branches:
  refs/heads/master 545abe535 - 36a41c86a


PHOENIX-1103 ChunkedResultIterator compat with hash joins

Remove the special case for hash joins in the
ChunkedResultIterator. Once the chunk size is reached, continue
scanning until the row key changes. This commit also adds a
specific test in the HashJoinIT to test with a small chunk size.


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

Branch: refs/heads/master
Commit: 36a41c86a4cdb16ab91b95882dbdb02e6006831d
Parents: 545abe5
Author: Gabriel Reid gr...@apache.org
Authored: Mon Jul 21 18:06:05 2014 +0200
Committer: Gabriel Reid gabri...@ngdata.com
Committed: Wed Jul 23 15:45:36 2014 +0200

--
 .../org/apache/phoenix/end2end/HashJoinIT.java  | 78 +++-
 .../phoenix/iterate/ChunkedResultIterator.java  | 39 ++
 .../org/apache/phoenix/join/HashJoinInfo.java   | 11 ---
 .../phoenix/query/QueryServicesOptions.java |  5 +-
 4 files changed, 105 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/36a41c86/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 99a3d9d..4ed85cb 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
@@ -105,7 +105,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
 }
 }
 
-@Parameters(name={0})
+@Parameters
 public static CollectionObject data() {
 ListObject testCases = Lists.newArrayList();
 testCases.add(new String[][] {
@@ -2142,7 +2142,83 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
 String query = SELECT \order_id\, i.name, s.name, quantity, date 
FROM  + JOIN_ORDER_TABLE_FULL_NAME +  o RIGHT JOIN  
 + JOIN_ITEM_TABLE_FULL_NAME +  i ON o.\item_id\ = i.\item_id\ 
RIGHT JOIN 
 + JOIN_SUPPLIER_TABLE_FULL_NAME +  s ON i.\supplier_id\ = 
s.\supplier_id\ ORDER BY \order_id\, s.\supplier_id\ DESC;
+
+Properties props = new Properties(TEST_PROPERTIES);
+Connection conn = DriverManager.getConnection(getUrl(), props);
+try {
+PreparedStatement statement = conn.prepareStatement(query);
+ResultSet rs = statement.executeQuery();
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertEquals(rs.getString(2), T5);
+assertEquals(rs.getString(3), S5);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertNull(rs.getString(2));
+assertEquals(rs.getString(3), S4);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertNull(rs.getString(2));
+assertEquals(rs.getString(3), S3);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertEquals(rs.getString(2), T4);
+assertEquals(rs.getString(3), S2);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 001);
+assertEquals(rs.getString(2), T1);
+assertEquals(rs.getString(3), S1);
+assertEquals(rs.getInt(4), 1000);
+assertNotNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 002);
+assertEquals(rs.getString(2), T6);
+assertEquals(rs.getString(3), S6);
+assertEquals(rs.getInt(4), 2000);
+assertNotNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 003);
+assertEquals(rs.getString(2), T2);
+assertEquals(rs.getString(3), S1);
+assertEquals(rs.getInt(4), 3000);
+assertNotNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 004);
+assertEquals(rs.getString(2), T6);
+assertEquals(rs.getString(3), S6);
+assertEquals(rs.getInt(4), 4000);
+  

git commit: PHOENIX-1103 ChunkedResultIterator compat with hash joins

2014-07-23 Thread greid
Repository: phoenix
Updated Branches:
  refs/heads/3.0 343d9262c - f714932f0


PHOENIX-1103 ChunkedResultIterator compat with hash joins

Remove the special case for hash joins in the
ChunkedResultIterator. Once the chunk size is reached, continue
scanning until the row key changes. This commit also adds a
specific test in the HashJoinIT to test with a small chunk size.


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

Branch: refs/heads/3.0
Commit: f714932f0c72989e2382aace29dbfb304fb24db5
Parents: 343d926
Author: Gabriel Reid gr...@apache.org
Authored: Mon Jul 21 18:06:05 2014 +0200
Committer: Gabriel Reid gabri...@ngdata.com
Committed: Wed Jul 23 15:45:17 2014 +0200

--
 .../org/apache/phoenix/end2end/HashJoinIT.java  | 78 +++-
 .../phoenix/iterate/ChunkedResultIterator.java  | 39 ++
 .../org/apache/phoenix/join/HashJoinInfo.java   | 11 ---
 .../phoenix/query/QueryServicesOptions.java |  5 +-
 4 files changed, 105 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f714932f/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 26c9455..b94ba99 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
@@ -104,7 +104,7 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
 }
 }
 
-@Parameters(name={0})
+@Parameters
 public static CollectionObject data() {
 ListObject testCases = Lists.newArrayList();
 testCases.add(new String[][] {
@@ -1783,7 +1783,83 @@ public class HashJoinIT extends BaseHBaseManagedTimeIT {
 String query = SELECT \order_id\, i.name, s.name, quantity, date 
FROM  + JOIN_ORDER_TABLE_FULL_NAME +  o RIGHT JOIN  
 + JOIN_ITEM_TABLE_FULL_NAME +  i ON o.\item_id\ = i.\item_id\ 
RIGHT JOIN 
 + JOIN_SUPPLIER_TABLE_FULL_NAME +  s ON i.\supplier_id\ = 
s.\supplier_id\ ORDER BY \order_id\, s.\supplier_id\ DESC;
+
+Properties props = new Properties(TEST_PROPERTIES);
+Connection conn = DriverManager.getConnection(getUrl(), props);
+try {
+PreparedStatement statement = conn.prepareStatement(query);
+ResultSet rs = statement.executeQuery();
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertEquals(rs.getString(2), T5);
+assertEquals(rs.getString(3), S5);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertNull(rs.getString(2));
+assertEquals(rs.getString(3), S4);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertNull(rs.getString(2));
+assertEquals(rs.getString(3), S3);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertNull(rs.getString(1));
+assertEquals(rs.getString(2), T4);
+assertEquals(rs.getString(3), S2);
+assertEquals(rs.getInt(4), 0);
+assertNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 001);
+assertEquals(rs.getString(2), T1);
+assertEquals(rs.getString(3), S1);
+assertEquals(rs.getInt(4), 1000);
+assertNotNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 002);
+assertEquals(rs.getString(2), T6);
+assertEquals(rs.getString(3), S6);
+assertEquals(rs.getInt(4), 2000);
+assertNotNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 003);
+assertEquals(rs.getString(2), T2);
+assertEquals(rs.getString(3), S1);
+assertEquals(rs.getInt(4), 3000);
+assertNotNull(rs.getDate(5));
+assertTrue (rs.next());
+assertEquals(rs.getString(1), 004);
+assertEquals(rs.getString(2), T6);
+assertEquals(rs.getString(3), S6);
+assertEquals(rs.getInt(4), 4000);
+