[2/2] phoenix git commit: PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException (Aman Poonia)

2018-09-27 Thread vincentpoon
PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException 
(Aman Poonia)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/9e7ea88a
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/9e7ea88a
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/9e7ea88a

Branch: refs/heads/4.14-HBase-0.98
Commit: 9e7ea88a40a966fc4ce3d19a02ed63116150f870
Parents: 501ce1f
Author: Lars Hofhansl 
Authored: Fri Sep 14 12:40:06 2018 -0700
Committer: Vincent Poon 
Committed: Thu Sep 27 14:33:00 2018 -0700

--
 .../regionserver/IndexHalfStoreFileReader.java  | 48 
 .../IndexHalfStoreFileReaderGenerator.java  | 12 ++---
 2 files changed, 43 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/9e7ea88a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
index 8bd0d72..273a1b0 100644
--- 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
+++ 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver.SCAN_START_ROW_SUFFIX;
+
 import java.io.IOException;
 import java.util.Map;
 
@@ -26,10 +28,12 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.io.FSDataInputStreamWrapper;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.io.Reference;
 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
+import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.index.IndexMaintainer;
 
 /**
@@ -56,8 +60,9 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 private final Map 
indexMaintainers;
 private final byte[][] viewConstants;
 private final int offset;
-private final HRegionInfo regionInfo;
+private final HRegionInfo childRegionInfo;
 private final byte[] regionStartKeyInHFile;
+private final HRegionInfo currentRegion;
 
 /**
  * @param fs
@@ -69,17 +74,19 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
  * @param conf
  * @param indexMaintainers
  * @param viewConstants
- * @param regionInfo
+ * @param childRegionInfo
  * @param regionStartKeyInHFile
  * @param splitKey
+ * @param currentRegion
  * @throws IOException
  */
 public IndexHalfStoreFileReader(final FileSystem fs, final Path p, final 
CacheConfig cacheConf,
 final FSDataInputStreamWrapper in, long size, final Reference r,
 final Configuration conf,
 final Map 
indexMaintainers,
-final byte[][] viewConstants, final HRegionInfo regionInfo,
-byte[] regionStartKeyInHFile, byte[] splitKey) throws IOException {
+final byte[][] viewConstants, final HRegionInfo childRegionInfo,
+byte[] regionStartKeyInHFile, byte[] splitKey, HRegionInfo 
currentRegion)
+throws IOException {
 super(fs, p, in, size, cacheConf, conf);
 this.splitkey = splitKey == null ? r.getSplitKey() : splitKey;
 // Is it top or bottom half?
@@ -87,9 +94,10 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 this.splitRow = 
CellUtil.cloneRow(KeyValue.createKeyValueFromKey(splitkey));
 this.indexMaintainers = indexMaintainers;
 this.viewConstants = viewConstants;
-this.regionInfo = regionInfo;
+this.childRegionInfo = childRegionInfo;
 this.regionStartKeyInHFile = regionStartKeyInHFile;
 this.offset = regionStartKeyInHFile.length;
+this.currentRegion = currentRegion;
 }
 
 public int getOffset() {
@@ -105,7 +113,7 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 public HRegionInfo getRegionInfo() {
-return regionInfo;
+return childRegionInfo;
 }
 
 public byte[] getRegionStartKeyInHFile() {
@@ -125,8 +133,30 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 @Override
-public StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean 
pread, boolean isCompaction, long readPt) {
-return new LocalIndexStoreFileScanner(this, 

[2/2] phoenix git commit: PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException (Aman Poonia)

2018-09-27 Thread vincentpoon
PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException 
(Aman Poonia)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/1ec88316
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/1ec88316
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/1ec88316

Branch: refs/heads/4.14-HBase-1.1
Commit: 1ec88316a720dd1706d17f5cb28e3e32a8a0d9d0
Parents: 961e808
Author: Lars Hofhansl 
Authored: Fri Sep 14 12:40:06 2018 -0700
Committer: Vincent Poon 
Committed: Thu Sep 27 14:17:41 2018 -0700

--
 .../regionserver/IndexHalfStoreFileReader.java  | 48 
 .../IndexHalfStoreFileReaderGenerator.java  | 12 ++---
 2 files changed, 43 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/1ec88316/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
index 8bd0d72..273a1b0 100644
--- 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
+++ 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver.SCAN_START_ROW_SUFFIX;
+
 import java.io.IOException;
 import java.util.Map;
 
@@ -26,10 +28,12 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.io.FSDataInputStreamWrapper;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.io.Reference;
 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
+import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.index.IndexMaintainer;
 
 /**
@@ -56,8 +60,9 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 private final Map 
indexMaintainers;
 private final byte[][] viewConstants;
 private final int offset;
-private final HRegionInfo regionInfo;
+private final HRegionInfo childRegionInfo;
 private final byte[] regionStartKeyInHFile;
+private final HRegionInfo currentRegion;
 
 /**
  * @param fs
@@ -69,17 +74,19 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
  * @param conf
  * @param indexMaintainers
  * @param viewConstants
- * @param regionInfo
+ * @param childRegionInfo
  * @param regionStartKeyInHFile
  * @param splitKey
+ * @param currentRegion
  * @throws IOException
  */
 public IndexHalfStoreFileReader(final FileSystem fs, final Path p, final 
CacheConfig cacheConf,
 final FSDataInputStreamWrapper in, long size, final Reference r,
 final Configuration conf,
 final Map 
indexMaintainers,
-final byte[][] viewConstants, final HRegionInfo regionInfo,
-byte[] regionStartKeyInHFile, byte[] splitKey) throws IOException {
+final byte[][] viewConstants, final HRegionInfo childRegionInfo,
+byte[] regionStartKeyInHFile, byte[] splitKey, HRegionInfo 
currentRegion)
+throws IOException {
 super(fs, p, in, size, cacheConf, conf);
 this.splitkey = splitKey == null ? r.getSplitKey() : splitKey;
 // Is it top or bottom half?
@@ -87,9 +94,10 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 this.splitRow = 
CellUtil.cloneRow(KeyValue.createKeyValueFromKey(splitkey));
 this.indexMaintainers = indexMaintainers;
 this.viewConstants = viewConstants;
-this.regionInfo = regionInfo;
+this.childRegionInfo = childRegionInfo;
 this.regionStartKeyInHFile = regionStartKeyInHFile;
 this.offset = regionStartKeyInHFile.length;
+this.currentRegion = currentRegion;
 }
 
 public int getOffset() {
@@ -105,7 +113,7 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 public HRegionInfo getRegionInfo() {
-return regionInfo;
+return childRegionInfo;
 }
 
 public byte[] getRegionStartKeyInHFile() {
@@ -125,8 +133,30 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 @Override
-public StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean 
pread, boolean isCompaction, long readPt) {
-return new LocalIndexStoreFileScanner(this, 

[2/2] phoenix git commit: PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException (Aman Poonia)

2018-09-27 Thread vincentpoon
PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException 
(Aman Poonia)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/e48df227
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/e48df227
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/e48df227

Branch: refs/heads/4.14-HBase-1.2
Commit: e48df2277449bc5ab3a8ad10a25d464174669716
Parents: 7a5e520
Author: Lars Hofhansl 
Authored: Fri Sep 14 12:40:06 2018 -0700
Committer: Vincent Poon 
Committed: Thu Sep 27 14:15:01 2018 -0700

--
 .../regionserver/IndexHalfStoreFileReader.java  | 48 
 .../IndexHalfStoreFileReaderGenerator.java  | 12 ++---
 2 files changed, 43 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/e48df227/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
index 8bd0d72..273a1b0 100644
--- 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
+++ 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver.SCAN_START_ROW_SUFFIX;
+
 import java.io.IOException;
 import java.util.Map;
 
@@ -26,10 +28,12 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.io.FSDataInputStreamWrapper;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.io.Reference;
 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
+import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.index.IndexMaintainer;
 
 /**
@@ -56,8 +60,9 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 private final Map 
indexMaintainers;
 private final byte[][] viewConstants;
 private final int offset;
-private final HRegionInfo regionInfo;
+private final HRegionInfo childRegionInfo;
 private final byte[] regionStartKeyInHFile;
+private final HRegionInfo currentRegion;
 
 /**
  * @param fs
@@ -69,17 +74,19 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
  * @param conf
  * @param indexMaintainers
  * @param viewConstants
- * @param regionInfo
+ * @param childRegionInfo
  * @param regionStartKeyInHFile
  * @param splitKey
+ * @param currentRegion
  * @throws IOException
  */
 public IndexHalfStoreFileReader(final FileSystem fs, final Path p, final 
CacheConfig cacheConf,
 final FSDataInputStreamWrapper in, long size, final Reference r,
 final Configuration conf,
 final Map 
indexMaintainers,
-final byte[][] viewConstants, final HRegionInfo regionInfo,
-byte[] regionStartKeyInHFile, byte[] splitKey) throws IOException {
+final byte[][] viewConstants, final HRegionInfo childRegionInfo,
+byte[] regionStartKeyInHFile, byte[] splitKey, HRegionInfo 
currentRegion)
+throws IOException {
 super(fs, p, in, size, cacheConf, conf);
 this.splitkey = splitKey == null ? r.getSplitKey() : splitKey;
 // Is it top or bottom half?
@@ -87,9 +94,10 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 this.splitRow = 
CellUtil.cloneRow(KeyValue.createKeyValueFromKey(splitkey));
 this.indexMaintainers = indexMaintainers;
 this.viewConstants = viewConstants;
-this.regionInfo = regionInfo;
+this.childRegionInfo = childRegionInfo;
 this.regionStartKeyInHFile = regionStartKeyInHFile;
 this.offset = regionStartKeyInHFile.length;
+this.currentRegion = currentRegion;
 }
 
 public int getOffset() {
@@ -105,7 +113,7 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 public HRegionInfo getRegionInfo() {
-return regionInfo;
+return childRegionInfo;
 }
 
 public byte[] getRegionStartKeyInHFile() {
@@ -125,8 +133,30 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 @Override
-public StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean 
pread, boolean isCompaction, long readPt) {
-return new LocalIndexStoreFileScanner(this, 

[2/2] phoenix git commit: PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException (Aman Poonia)

2018-09-27 Thread vincentpoon
PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException 
(Aman Poonia)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/632d2c60
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/632d2c60
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/632d2c60

Branch: refs/heads/4.14-HBase-1.3
Commit: 632d2c6054b957b8b33823dd5b89cc419e1095d2
Parents: bfa3e81
Author: Lars Hofhansl 
Authored: Fri Sep 14 12:38:37 2018 -0700
Committer: Vincent Poon 
Committed: Thu Sep 27 14:13:04 2018 -0700

--
 .../regionserver/IndexHalfStoreFileReader.java  | 48 
 .../IndexHalfStoreFileReaderGenerator.java  | 12 ++---
 2 files changed, 43 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/632d2c60/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
index 8bd0d72..273a1b0 100644
--- 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
+++ 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver.SCAN_START_ROW_SUFFIX;
+
 import java.io.IOException;
 import java.util.Map;
 
@@ -26,10 +28,12 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.io.FSDataInputStreamWrapper;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.io.Reference;
 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
+import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.index.IndexMaintainer;
 
 /**
@@ -56,8 +60,9 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 private final Map 
indexMaintainers;
 private final byte[][] viewConstants;
 private final int offset;
-private final HRegionInfo regionInfo;
+private final HRegionInfo childRegionInfo;
 private final byte[] regionStartKeyInHFile;
+private final HRegionInfo currentRegion;
 
 /**
  * @param fs
@@ -69,17 +74,19 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
  * @param conf
  * @param indexMaintainers
  * @param viewConstants
- * @param regionInfo
+ * @param childRegionInfo
  * @param regionStartKeyInHFile
  * @param splitKey
+ * @param currentRegion
  * @throws IOException
  */
 public IndexHalfStoreFileReader(final FileSystem fs, final Path p, final 
CacheConfig cacheConf,
 final FSDataInputStreamWrapper in, long size, final Reference r,
 final Configuration conf,
 final Map 
indexMaintainers,
-final byte[][] viewConstants, final HRegionInfo regionInfo,
-byte[] regionStartKeyInHFile, byte[] splitKey) throws IOException {
+final byte[][] viewConstants, final HRegionInfo childRegionInfo,
+byte[] regionStartKeyInHFile, byte[] splitKey, HRegionInfo 
currentRegion)
+throws IOException {
 super(fs, p, in, size, cacheConf, conf);
 this.splitkey = splitKey == null ? r.getSplitKey() : splitKey;
 // Is it top or bottom half?
@@ -87,9 +94,10 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 this.splitRow = 
CellUtil.cloneRow(KeyValue.createKeyValueFromKey(splitkey));
 this.indexMaintainers = indexMaintainers;
 this.viewConstants = viewConstants;
-this.regionInfo = regionInfo;
+this.childRegionInfo = childRegionInfo;
 this.regionStartKeyInHFile = regionStartKeyInHFile;
 this.offset = regionStartKeyInHFile.length;
+this.currentRegion = currentRegion;
 }
 
 public int getOffset() {
@@ -105,7 +113,7 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 public HRegionInfo getRegionInfo() {
-return regionInfo;
+return childRegionInfo;
 }
 
 public byte[] getRegionStartKeyInHFile() {
@@ -125,8 +133,30 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 @Override
-public StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean 
pread, boolean isCompaction, long readPt) {
-return new LocalIndexStoreFileScanner(this, 

[2/2] phoenix git commit: PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException (Aman Poonia)

2018-09-27 Thread vincentpoon
PHOENIX-4839 IndexHalfStoreFileReaderGenerator throws NullPointerException 
(Aman Poonia)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/d101141f
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/d101141f
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/d101141f

Branch: refs/heads/4.14-HBase-1.4
Commit: d101141fa7fd2a4908f88d0034ecd475c4f6747c
Parents: 7dc6e89
Author: Lars Hofhansl 
Authored: Fri Sep 14 12:35:57 2018 -0700
Committer: Vincent Poon 
Committed: Thu Sep 27 14:01:57 2018 -0700

--
 .../regionserver/IndexHalfStoreFileReader.java  | 42 
 .../IndexHalfStoreFileReaderGenerator.java  | 20 +-
 2 files changed, 44 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/d101141f/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
index 1f3113c..e2dff03 100644
--- 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
+++ 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import static 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver.SCAN_START_ROW_SUFFIX;
+
 import java.io.IOException;
 import java.util.Map;
 
@@ -26,10 +28,12 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.io.FSDataInputStreamWrapper;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.io.Reference;
 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
+import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.index.IndexMaintainer;
 
 /**
@@ -56,8 +60,9 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 private final Map 
indexMaintainers;
 private final byte[][] viewConstants;
 private final int offset;
-private final HRegionInfo regionInfo;
+private final HRegionInfo childRegionInfo;
 private final byte[] regionStartKeyInHFile;
+private final HRegionInfo currentRegion;
 
 /**
  * @param fs
@@ -69,7 +74,7 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
  * @param conf
  * @param indexMaintainers
  * @param viewConstants
- * @param regionInfo
+ * @param childRegionInfo
  * @param regionStartKeyInHFile
  * @param splitKey
  * @throws IOException
@@ -78,8 +83,9 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 final FSDataInputStreamWrapper in, long size, final Reference r,
 final Configuration conf,
 final Map 
indexMaintainers,
-final byte[][] viewConstants, final HRegionInfo regionInfo,
-byte[] regionStartKeyInHFile, byte[] splitKey) throws IOException {
+final byte[][] viewConstants, final HRegionInfo childRegionInfo,
+byte[] regionStartKeyInHFile, byte[] splitKey, HRegionInfo 
currentRegion)
+throws IOException {
 super(fs, p, in, size, cacheConf, conf);
 this.splitkey = splitKey == null ? r.getSplitKey() : splitKey;
 // Is it top or bottom half?
@@ -87,9 +93,10 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 this.splitRow = 
CellUtil.cloneRow(KeyValue.createKeyValueFromKey(splitkey));
 this.indexMaintainers = indexMaintainers;
 this.viewConstants = viewConstants;
-this.regionInfo = regionInfo;
+this.childRegionInfo = childRegionInfo;
 this.regionStartKeyInHFile = regionStartKeyInHFile;
 this.offset = regionStartKeyInHFile.length;
+this.currentRegion = currentRegion;
 }
 
 public int getOffset() {
@@ -105,7 +112,7 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 }
 
 public HRegionInfo getRegionInfo() {
-return regionInfo;
+return childRegionInfo;
 }
 
 public byte[] getRegionStartKeyInHFile() {
@@ -126,8 +133,29 @@ public class IndexHalfStoreFileReader extends 
StoreFile.Reader {
 
 @Override
 public StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean 
pread, boolean isCompaction, long readPt,
-long scannerOrder, boolean canOptimizeForNonNullColumn) {
+