[2/9] phoenix git commit: PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu)
PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/71b528b2 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/71b528b2 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/71b528b2 Branch: refs/heads/4.x-cdh5.11.2 Commit: 71b528b280a551904a2807ce4597b7bcb9235733 Parents: 4debdd1 Author: Rajeshbabu ChintaguntlaAuthored: Tue Mar 20 14:08:03 2018 + Committer: Pedro Boado Committed: Wed Mar 21 20:17:40 2018 + -- .../phoenix/end2end/LocalIndexSplitMergeIT.java | 59 .../IndexHalfStoreFileReaderGenerator.java | 8 ++- 2 files changed, 65 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/71b528b2/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java index 409e98f..dc3e5d3 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java @@ -263,4 +263,63 @@ public class LocalIndexSplitMergeIT extends BaseTest { } } +@Test +public void testLocalIndexScanWithMergeSpecialCase() throws Exception { +String schemaName = generateUniqueName(); +String tableName = schemaName + "." + generateUniqueName(); +String indexName = "IDX_" + generateUniqueName(); +TableName physicalTableName = SchemaUtil.getPhysicalTableName(tableName.getBytes(), false); +createBaseTable(tableName, "('a','b','def')"); +Connection conn1 = getConnectionForLocalIndexTest(); +try { +String[] strings = +{ "aa", "aaa", "", "bb", "cc", "dd", "dff", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; +for (int i = 0; i < 26; i++) { +conn1.createStatement() +.execute("UPSERT INTO " + tableName + " values('" + strings[i] + "'," + i ++ "," + (i + 1) + "," + (i + 2) + ",'" + strings[25 - i] + "')"); +} +conn1.commit(); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + " ON " + tableName + "(v1)"); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + "_2 ON " + tableName + "(k3)"); + +HBaseAdmin admin = conn1.unwrap(PhoenixConnection.class).getQueryServices().getAdmin(); +List regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + admin.mergeRegions(regionsOfUserTable.get(0).getEncodedNameAsBytes(), +regionsOfUserTable.get(1).getEncodedNameAsBytes(), false); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + +while (regionsOfUserTable.size() != 3) { +Thread.sleep(100); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); +} +String query = "SELECT t_id,k1,v1 FROM " + tableName; +ResultSet rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[25-j], rs.getString("t_id")); +assertEquals(25-j, rs.getInt("k1")); +assertEquals(strings[j], rs.getString("V1")); +} +query = "SELECT t_id,k1,k3 FROM " + tableName; +rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[j], rs.getString("t_id")); +assertEquals(j, rs.getInt("k1")); +assertEquals(j + 2, rs.getInt("k3")); +} +} finally { +conn1.close(); +} +} }
phoenix git commit: PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu)
Repository: phoenix Updated Branches: refs/heads/4.x-HBase-0.98 9e936094c -> 37b1e1162 PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/37b1e116 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/37b1e116 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/37b1e116 Branch: refs/heads/4.x-HBase-0.98 Commit: 37b1e11626e5399093447144c53edbbd860df1fc Parents: 9e93609 Author: Rajeshbabu ChintaguntlaAuthored: Tue Mar 20 20:51:05 2018 +0530 Committer: Rajeshbabu Chintaguntla Committed: Tue Mar 20 20:51:05 2018 +0530 -- .../phoenix/end2end/LocalIndexSplitMergeIT.java | 68 ++-- .../IndexHalfStoreFileReaderGenerator.java | 8 ++- 2 files changed, 70 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/37b1e116/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java index 5feea09..c1333dd 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java @@ -84,8 +84,6 @@ public class LocalIndexSplitMergeIT extends BaseTest { conn.close(); } -// Moved from LocalIndexIT because it was causing parallel runs to hang -@Ignore @Test public void testLocalIndexScanAfterRegionSplit() throws Exception { String schemaName = generateUniqueName(); @@ -182,8 +180,6 @@ public class LocalIndexSplitMergeIT extends BaseTest { } } -// Moved from LocalIndexIT because it was causing parallel runs to hang -@Ignore @Test public void testLocalIndexScanAfterRegionsMerge() throws Exception { String schemaName = generateUniqueName(); @@ -273,4 +269,68 @@ public class LocalIndexSplitMergeIT extends BaseTest { } } +@Test +public void testLocalIndexScanWithMergeSpecialCase() throws Exception { +String schemaName = generateUniqueName(); +String tableName = schemaName + "." + generateUniqueName(); +String indexName = "IDX_" + generateUniqueName(); +TableName physicalTableName = SchemaUtil.getPhysicalTableName(tableName.getBytes(), false); +createBaseTable(tableName, "('a','b','def')"); +Connection conn1 = getConnectionForLocalIndexTest(); +try { +String[] strings = +{ "aa", "aaa", "", "bb", "cc", "dd", "dff", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; +for (int i = 0; i < 26; i++) { +conn1.createStatement() +.execute("UPSERT INTO " + tableName + " values('" + strings[i] + "'," + i ++ "," + (i + 1) + "," + (i + 2) + ",'" + strings[25 - i] + "')"); +} +conn1.commit(); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + " ON " + tableName + "(v1)"); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + "_2 ON " + tableName + "(k3)"); + +HBaseAdmin admin = conn1.unwrap(PhoenixConnection.class).getQueryServices().getAdmin(); +CatalogTracker ct = new CatalogTracker(admin.getConfiguration()); +List regionsOfUserTable = +MetaReader.getTableRegions(ct, +physicalTableName, false); + admin.mergeRegions(regionsOfUserTable.get(0).getEncodedNameAsBytes(), +regionsOfUserTable.get(1).getEncodedNameAsBytes(), false); +regionsOfUserTable = +MetaReader.getTableRegions(ct, +physicalTableName, false); + +while (regionsOfUserTable.size() != 3) { +Thread.sleep(100); +regionsOfUserTable = +MetaReader.getTableRegions(ct, +physicalTableName, false); +} +assertEquals(3, regionsOfUserTable.size()); + +String query = "SELECT t_id,k1,v1 FROM " + tableName; +ResultSet rs = conn1.createStatement().executeQuery(query); +Thread.sleep(1000); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +
phoenix git commit: PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu)
Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.3 ee948f0f1 -> eaa6cdd2d PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/eaa6cdd2 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/eaa6cdd2 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/eaa6cdd2 Branch: refs/heads/4.x-HBase-1.3 Commit: eaa6cdd2dc6f1102f6e7e6943b8a4420c2efc6d8 Parents: ee948f0 Author: Rajeshbabu ChintaguntlaAuthored: Tue Mar 20 19:41:07 2018 +0530 Committer: Rajeshbabu Chintaguntla Committed: Tue Mar 20 19:41:07 2018 +0530 -- .../phoenix/end2end/LocalIndexSplitMergeIT.java | 59 .../IndexHalfStoreFileReaderGenerator.java | 8 ++- 2 files changed, 65 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/eaa6cdd2/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java index 409e98f..dc3e5d3 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java @@ -263,4 +263,63 @@ public class LocalIndexSplitMergeIT extends BaseTest { } } +@Test +public void testLocalIndexScanWithMergeSpecialCase() throws Exception { +String schemaName = generateUniqueName(); +String tableName = schemaName + "." + generateUniqueName(); +String indexName = "IDX_" + generateUniqueName(); +TableName physicalTableName = SchemaUtil.getPhysicalTableName(tableName.getBytes(), false); +createBaseTable(tableName, "('a','b','def')"); +Connection conn1 = getConnectionForLocalIndexTest(); +try { +String[] strings = +{ "aa", "aaa", "", "bb", "cc", "dd", "dff", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; +for (int i = 0; i < 26; i++) { +conn1.createStatement() +.execute("UPSERT INTO " + tableName + " values('" + strings[i] + "'," + i ++ "," + (i + 1) + "," + (i + 2) + ",'" + strings[25 - i] + "')"); +} +conn1.commit(); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + " ON " + tableName + "(v1)"); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + "_2 ON " + tableName + "(k3)"); + +HBaseAdmin admin = conn1.unwrap(PhoenixConnection.class).getQueryServices().getAdmin(); +List regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + admin.mergeRegions(regionsOfUserTable.get(0).getEncodedNameAsBytes(), +regionsOfUserTable.get(1).getEncodedNameAsBytes(), false); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + +while (regionsOfUserTable.size() != 3) { +Thread.sleep(100); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); +} +String query = "SELECT t_id,k1,v1 FROM " + tableName; +ResultSet rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[25-j], rs.getString("t_id")); +assertEquals(25-j, rs.getInt("k1")); +assertEquals(strings[j], rs.getString("V1")); +} +query = "SELECT t_id,k1,k3 FROM " + tableName; +rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[j], rs.getString("t_id")); +assertEquals(j, rs.getInt("k1")); +assertEquals(j + 2, rs.getInt("k3")); +} +} finally { +conn1.close(); +} +} }
phoenix git commit: PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu)
Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.1 df1f8ca8d -> 3e87f5d3e PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/3e87f5d3 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/3e87f5d3 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/3e87f5d3 Branch: refs/heads/4.x-HBase-1.1 Commit: 3e87f5d3e4cc05bc6291afa2dee0f159d6b69085 Parents: df1f8ca Author: Rajeshbabu ChintaguntlaAuthored: Tue Mar 20 19:40:17 2018 +0530 Committer: Rajeshbabu Chintaguntla Committed: Tue Mar 20 19:40:17 2018 +0530 -- .../phoenix/end2end/LocalIndexSplitMergeIT.java | 59 .../IndexHalfStoreFileReaderGenerator.java | 8 ++- 2 files changed, 65 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/3e87f5d3/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java index 409e98f..dc3e5d3 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java @@ -263,4 +263,63 @@ public class LocalIndexSplitMergeIT extends BaseTest { } } +@Test +public void testLocalIndexScanWithMergeSpecialCase() throws Exception { +String schemaName = generateUniqueName(); +String tableName = schemaName + "." + generateUniqueName(); +String indexName = "IDX_" + generateUniqueName(); +TableName physicalTableName = SchemaUtil.getPhysicalTableName(tableName.getBytes(), false); +createBaseTable(tableName, "('a','b','def')"); +Connection conn1 = getConnectionForLocalIndexTest(); +try { +String[] strings = +{ "aa", "aaa", "", "bb", "cc", "dd", "dff", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; +for (int i = 0; i < 26; i++) { +conn1.createStatement() +.execute("UPSERT INTO " + tableName + " values('" + strings[i] + "'," + i ++ "," + (i + 1) + "," + (i + 2) + ",'" + strings[25 - i] + "')"); +} +conn1.commit(); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + " ON " + tableName + "(v1)"); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + "_2 ON " + tableName + "(k3)"); + +HBaseAdmin admin = conn1.unwrap(PhoenixConnection.class).getQueryServices().getAdmin(); +List regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + admin.mergeRegions(regionsOfUserTable.get(0).getEncodedNameAsBytes(), +regionsOfUserTable.get(1).getEncodedNameAsBytes(), false); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + +while (regionsOfUserTable.size() != 3) { +Thread.sleep(100); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); +} +String query = "SELECT t_id,k1,v1 FROM " + tableName; +ResultSet rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[25-j], rs.getString("t_id")); +assertEquals(25-j, rs.getInt("k1")); +assertEquals(strings[j], rs.getString("V1")); +} +query = "SELECT t_id,k1,k3 FROM " + tableName; +rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[j], rs.getString("t_id")); +assertEquals(j, rs.getInt("k1")); +assertEquals(j + 2, rs.getInt("k3")); +} +} finally { +conn1.close(); +} +} }
phoenix git commit: PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu)
Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.2 687d04cb5 -> 332caa000 PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/332caa00 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/332caa00 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/332caa00 Branch: refs/heads/4.x-HBase-1.2 Commit: 332caa24a01562945e18b5e7ea43d816593e Parents: 687d04c Author: Rajeshbabu ChintaguntlaAuthored: Tue Mar 20 19:38:03 2018 +0530 Committer: Rajeshbabu Chintaguntla Committed: Tue Mar 20 19:38:03 2018 +0530 -- .../phoenix/end2end/LocalIndexSplitMergeIT.java | 59 .../IndexHalfStoreFileReaderGenerator.java | 8 ++- 2 files changed, 65 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/332caa00/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java index 409e98f..dc3e5d3 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java @@ -263,4 +263,63 @@ public class LocalIndexSplitMergeIT extends BaseTest { } } +@Test +public void testLocalIndexScanWithMergeSpecialCase() throws Exception { +String schemaName = generateUniqueName(); +String tableName = schemaName + "." + generateUniqueName(); +String indexName = "IDX_" + generateUniqueName(); +TableName physicalTableName = SchemaUtil.getPhysicalTableName(tableName.getBytes(), false); +createBaseTable(tableName, "('a','b','def')"); +Connection conn1 = getConnectionForLocalIndexTest(); +try { +String[] strings = +{ "aa", "aaa", "", "bb", "cc", "dd", "dff", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; +for (int i = 0; i < 26; i++) { +conn1.createStatement() +.execute("UPSERT INTO " + tableName + " values('" + strings[i] + "'," + i ++ "," + (i + 1) + "," + (i + 2) + ",'" + strings[25 - i] + "')"); +} +conn1.commit(); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + " ON " + tableName + "(v1)"); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + "_2 ON " + tableName + "(k3)"); + +HBaseAdmin admin = conn1.unwrap(PhoenixConnection.class).getQueryServices().getAdmin(); +List regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + admin.mergeRegions(regionsOfUserTable.get(0).getEncodedNameAsBytes(), +regionsOfUserTable.get(1).getEncodedNameAsBytes(), false); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + +while (regionsOfUserTable.size() != 3) { +Thread.sleep(100); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); +} +String query = "SELECT t_id,k1,v1 FROM " + tableName; +ResultSet rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[25-j], rs.getString("t_id")); +assertEquals(25-j, rs.getInt("k1")); +assertEquals(strings[j], rs.getString("V1")); +} +query = "SELECT t_id,k1,k3 FROM " + tableName; +rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[j], rs.getString("t_id")); +assertEquals(j, rs.getInt("k1")); +assertEquals(j + 2, rs.getInt("k3")); +} +} finally { +conn1.close(); +} +} }
phoenix git commit: PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu)
Repository: phoenix Updated Branches: refs/heads/master 204d4aa08 -> b6e33f30e PHOENIX-4576 Fix LocalIndexSplitMergeIT tests failing in master branch - addendum(Rajeshbabu) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/b6e33f30 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/b6e33f30 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/b6e33f30 Branch: refs/heads/master Commit: b6e33f30e2084879feeb3240444806b1e7069135 Parents: 204d4aa Author: Rajeshbabu ChintaguntlaAuthored: Tue Mar 20 19:35:14 2018 +0530 Committer: Rajeshbabu Chintaguntla Committed: Tue Mar 20 19:35:14 2018 +0530 -- .../phoenix/end2end/LocalIndexSplitMergeIT.java | 59 .../IndexHalfStoreFileReaderGenerator.java | 8 ++- 2 files changed, 65 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/b6e33f30/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java index 409e98f..dc3e5d3 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/LocalIndexSplitMergeIT.java @@ -263,4 +263,63 @@ public class LocalIndexSplitMergeIT extends BaseTest { } } +@Test +public void testLocalIndexScanWithMergeSpecialCase() throws Exception { +String schemaName = generateUniqueName(); +String tableName = schemaName + "." + generateUniqueName(); +String indexName = "IDX_" + generateUniqueName(); +TableName physicalTableName = SchemaUtil.getPhysicalTableName(tableName.getBytes(), false); +createBaseTable(tableName, "('a','b','def')"); +Connection conn1 = getConnectionForLocalIndexTest(); +try { +String[] strings = +{ "aa", "aaa", "", "bb", "cc", "dd", "dff", "g", "h", "i", "j", "k", "l", +"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; +for (int i = 0; i < 26; i++) { +conn1.createStatement() +.execute("UPSERT INTO " + tableName + " values('" + strings[i] + "'," + i ++ "," + (i + 1) + "," + (i + 2) + ",'" + strings[25 - i] + "')"); +} +conn1.commit(); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + " ON " + tableName + "(v1)"); +conn1.createStatement() +.execute("CREATE LOCAL INDEX " + indexName + "_2 ON " + tableName + "(k3)"); + +HBaseAdmin admin = conn1.unwrap(PhoenixConnection.class).getQueryServices().getAdmin(); +List regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + admin.mergeRegions(regionsOfUserTable.get(0).getEncodedNameAsBytes(), +regionsOfUserTable.get(1).getEncodedNameAsBytes(), false); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); + +while (regionsOfUserTable.size() != 3) { +Thread.sleep(100); +regionsOfUserTable = + MetaTableAccessor.getTableRegions(getUtility().getZooKeeperWatcher(), +admin.getConnection(), physicalTableName, false); +} +String query = "SELECT t_id,k1,v1 FROM " + tableName; +ResultSet rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[25-j], rs.getString("t_id")); +assertEquals(25-j, rs.getInt("k1")); +assertEquals(strings[j], rs.getString("V1")); +} +query = "SELECT t_id,k1,k3 FROM " + tableName; +rs = conn1.createStatement().executeQuery(query); +for (int j = 0; j < 26; j++) { +assertTrue(rs.next()); +assertEquals(strings[j], rs.getString("t_id")); +assertEquals(j, rs.getInt("k1")); +assertEquals(j + 2, rs.getInt("k3")); +} +} finally { +conn1.close(); +} +} }