PHOENIX-4366 Rebuilding a local index fails sometimes (addendum)
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/0535a17e Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/0535a17e Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/0535a17e Branch: refs/heads/4.x-cdh5.13 Commit: 0535a17ed64e681b801f2b48648183b224ff8b9b Parents: a874df3 Author: James Taylor <jtay...@salesforce.com> Authored: Wed Apr 11 23:20:08 2018 +0100 Committer: Pedro Boado <pbo...@apache.org> Committed: Fri Apr 13 23:27:44 2018 +0100 ---------------------------------------------------------------------- .../NonAggregateRegionScannerFactory.java | 36 +++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/0535a17e/phoenix-core/src/main/java/org/apache/phoenix/iterate/NonAggregateRegionScannerFactory.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/NonAggregateRegionScannerFactory.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/NonAggregateRegionScannerFactory.java index 90ea025..ba6a08f 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/NonAggregateRegionScannerFactory.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/NonAggregateRegionScannerFactory.java @@ -18,8 +18,15 @@ package org.apache.phoenix.iterate; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; +import static org.apache.phoenix.util.EncodedColumnsUtil.getMinMaxQualifiersFromScan; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.KeyValue; @@ -61,15 +68,8 @@ import org.apache.phoenix.util.IndexUtil; import org.apache.phoenix.util.ScanUtil; import org.apache.phoenix.util.ServerUtil; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; -import java.io.IOException; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import static org.apache.phoenix.util.EncodedColumnsUtil.getMinMaxQualifiersFromScan; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; public class NonAggregateRegionScannerFactory extends RegionScannerFactory { @@ -102,13 +102,17 @@ public class NonAggregateRegionScannerFactory extends RegionScannerFactory { boolean useNewValueColumnQualifier = EncodedColumnsUtil.useNewValueColumnQualifier(scan); Set<KeyValueColumnExpression> arrayKVRefs = Sets.newHashSet(); + KeyValueSchema kvSchema = null; + ValueBitSet kvSchemaBitSet = null; Expression[] arrayFuncRefs = deserializeArrayPositionalExpressionInfoFromScan(scan, innerScanner, arrayKVRefs); - KeyValueSchema.KeyValueSchemaBuilder builder = new KeyValueSchema.KeyValueSchemaBuilder(0); - for (Expression expression : arrayFuncRefs) { - builder.addField(expression); + if (arrayFuncRefs != null) { + KeyValueSchema.KeyValueSchemaBuilder builder = new KeyValueSchema.KeyValueSchemaBuilder(0); + for (Expression expression : arrayFuncRefs) { + builder.addField(expression); + } + kvSchema = builder.build(); + kvSchemaBitSet = ValueBitSet.newInstance(kvSchema); } - KeyValueSchema kvSchema = builder.build(); - ValueBitSet kvSchemaBitSet = ValueBitSet.newInstance(kvSchema); TupleProjector tupleProjector = null; Region dataRegion = null; IndexMaintainer indexMaintainer = null;