HBASE-15496 Throw RowTooBigException only for user scan/get (Guanghao Zhang)

This commit is contained in:
tedyu 2016-03-25 18:18:35 -07:00
parent 11d11d3fcc
commit b865fb9434
2 changed files with 6 additions and 2 deletions

View File

@ -610,6 +610,10 @@ public class ScanQueryMatcher {
}
}
boolean isUserScan() {
return this.isUserScan;
}
//Used only for testing purposes
static MatchCode checkColumn(ColumnTracker columnTracker, byte[] bytes, int offset,
int length, long ttl, byte type, boolean ignoreCount) throws IOException {

View File

@ -351,7 +351,7 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner
if (!isParallelSeek) {
long totalScannersSoughtBytes = 0;
for (KeyValueScanner scanner : scanners) {
if (totalScannersSoughtBytes >= maxRowSize) {
if (matcher.isUserScan() && totalScannersSoughtBytes >= maxRowSize) {
throw new RowTooBigException("Max row size allowed: " + maxRowSize
+ ", but row is bigger than that");
}
@ -572,7 +572,7 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner
scannerContext.incrementSizeProgress(CellUtil.estimatedHeapSizeOf(cell));
scannerContext.incrementBatchProgress(1);
if (totalBytesRead > maxRowSize) {
if (matcher.isUserScan() && totalBytesRead > maxRowSize) {
throw new RowTooBigException(
"Max row size allowed: " + maxRowSize + ", but the row is bigger than that.");
}