Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.1 79c139eef -> 2e61620f4
PHOENIX-3484 Major compaction does not update statistics based on table specific GUIDE_POSTS_WIDTH Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/2e61620f Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/2e61620f Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/2e61620f Branch: refs/heads/4.x-HBase-1.1 Commit: 2e61620f4805b69940e18ae2330bf35afca771c5 Parents: 79c139e Author: James Taylor <[email protected]> Authored: Fri Nov 18 12:41:08 2016 -0800 Committer: James Taylor <[email protected]> Committed: Fri Nov 18 13:29:21 2016 -0800 ---------------------------------------------------------------------- .../org/apache/phoenix/end2end/GroupByCaseIT.java | 16 ++++++++++++++++ .../schema/stats/DefaultStatisticsCollector.java | 7 +++---- 2 files changed, 19 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/2e61620f/phoenix-core/src/it/java/org/apache/phoenix/end2end/GroupByCaseIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/GroupByCaseIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/GroupByCaseIT.java index 847fb4e..8e1a4cc 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/GroupByCaseIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/GroupByCaseIT.java @@ -412,8 +412,24 @@ public class GroupByCaseIT extends ParallelStatsDisabledIT { Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); Connection conn = DriverManager.getConnection(getUrl(), props); String tableName = generateUniqueName(); + ResultSet rs = conn.createStatement().executeQuery("SELECT COUNT(*) FROM " + PhoenixDatabaseMetaData.SYSTEM_STATS_NAME + " WHERE " + PhoenixDatabaseMetaData.PHYSICAL_NAME + " ='" + tableName + "'"); + assertTrue(rs.next()); + assertEquals(0,rs.getInt(1)); initAvgGroupTable(conn, tableName, PhoenixDatabaseMetaData.GUIDE_POSTS_WIDTH + "=20 "); testAvgGroupByOrderPreserving(conn, tableName, 13); + rs = conn.createStatement().executeQuery("SELECT COUNT(*) FROM " + PhoenixDatabaseMetaData.SYSTEM_STATS_NAME + " WHERE " + PhoenixDatabaseMetaData.PHYSICAL_NAME + " ='" + tableName + "'"); + assertTrue(rs.next()); + assertEquals(13,rs.getInt(1)); + conn.setAutoCommit(true); + conn.createStatement().execute("DELETE FROM " + PhoenixDatabaseMetaData.SYSTEM_STATS_NAME); + rs = conn.createStatement().executeQuery("SELECT COUNT(*) FROM " + PhoenixDatabaseMetaData.SYSTEM_STATS_NAME + " WHERE " + PhoenixDatabaseMetaData.PHYSICAL_NAME + " ='" + tableName + "'"); + assertTrue(rs.next()); + assertEquals(0,rs.getInt(1)); + TestUtil.doMajorCompaction(conn, tableName); + rs = conn.createStatement().executeQuery("SELECT COUNT(*) FROM " + PhoenixDatabaseMetaData.SYSTEM_STATS_NAME + " WHERE " + PhoenixDatabaseMetaData.PHYSICAL_NAME + " ='" + tableName + "'"); + assertTrue(rs.next()); + assertEquals(13,rs.getInt(1)); + testAvgGroupByOrderPreserving(conn, tableName, 13); conn.createStatement().execute("ALTER TABLE " + tableName + " SET " + PhoenixDatabaseMetaData.GUIDE_POSTS_WIDTH + "=100"); testAvgGroupByOrderPreserving(conn, tableName, 6); conn.createStatement().execute("ALTER TABLE " + tableName + " SET " + PhoenixDatabaseMetaData.GUIDE_POSTS_WIDTH + "=null"); http://git-wip-us.apache.org/repos/asf/phoenix/blob/2e61620f/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/DefaultStatisticsCollector.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/DefaultStatisticsCollector.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/DefaultStatisticsCollector.java index e8ecb14..17010ac 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/DefaultStatisticsCollector.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/stats/DefaultStatisticsCollector.java @@ -27,7 +27,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.KeyValueUtil; -import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.Mutation; @@ -297,15 +296,15 @@ class DefaultStatisticsCollector implements StatisticsCollector { @Override public void init() throws IOException { - this.guidePostsInfoWriterMap.clear(); - maxTimeStamp = MetaDataProtocol.MIN_TABLE_TIMESTAMP; initGuidepostDepth(); } @Override public GuidePostsInfo getGuidePosts(ImmutableBytesPtr fam) { Pair<Long, GuidePostsInfoBuilder> pair = guidePostsInfoWriterMap.get(fam); - if (pair != null) { return pair.getSecond().build(); } + if (pair != null) { + return pair.getSecond().build(); + } return null; }
