git commit: PHOENIX-1103 ChunkedResultIterator compat with hash joins
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
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); +