From 3dd64aa0516f8b52e98ae1a856ef30a0ef6944d6 Mon Sep 17 00:00:00 2001 From: chenglei Date: Mon, 20 Feb 2023 18:16:08 +0800 Subject: [PATCH] HBASE-27654 IndexBlockEncoding is missing in HFileContextBuilder copy constructor (#5044) Signed-off-by: Bryan Beaudreault --- .../apache/hadoop/hbase/io/hfile/HFileContextBuilder.java | 1 + .../java/org/apache/hadoop/hbase/io/hfile/TestHFile.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java index f2131951000..0394f12144e 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java @@ -84,6 +84,7 @@ public class HFileContextBuilder { this.columnFamily = hfc.getColumnFamily(); this.tableName = hfc.getTableName(); this.cellComparator = hfc.getCellComparator(); + this.indexBlockEncoding = hfc.getIndexBlockEncoding(); } public HFileContextBuilder withHBaseCheckSum(boolean useHBaseCheckSum) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java index bf152b47e2a..0d5190d16b3 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java @@ -70,6 +70,7 @@ import org.apache.hadoop.hbase.io.ByteBuffAllocator; import org.apache.hadoop.hbase.io.compress.Compression; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoder; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; +import org.apache.hadoop.hbase.io.encoding.IndexBlockEncoding; import org.apache.hadoop.hbase.io.hfile.HFile.Reader; import org.apache.hadoop.hbase.io.hfile.HFile.Writer; import org.apache.hadoop.hbase.io.hfile.ReaderContext.ReaderType; @@ -1070,4 +1071,11 @@ public class TestHFile { alloc.clean(); } + @Test + public void testHFileContextBuilderWithIndexEncoding() throws IOException { + HFileContext context = + new HFileContextBuilder().withIndexBlockEncoding(IndexBlockEncoding.PREFIX_TREE).build(); + HFileContext newContext = new HFileContextBuilder(context).build(); + assertTrue(newContext.getIndexBlockEncoding() == IndexBlockEncoding.PREFIX_TREE); + } }