Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
- index ce5a44c..e5c0713 100644
- --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
- +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
- @@ -37,6 +37,7 @@ import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.hbase.Cell;
- +import org.apache.hadoop.hbase.HColumnDescriptor;
- import org.apache.hadoop.hbase.HConstants;
- import org.apache.hadoop.hbase.HRegionLocation;
- import org.apache.hadoop.hbase.HTableDescriptor;
- @@ -71,6 +72,7 @@ import com.google.protobuf.Descriptors;
- import com.google.protobuf.Message;
- import com.google.protobuf.Service;
- import com.google.protobuf.ServiceException;
- +import com.sun.org.apache.bcel.internal.generic.GETFIELD;
- /**
- * An implementation of {@link Table}. Used to communicate with a single HBase table.
- @@ -341,6 +343,19 @@ public class HTable implements HTableInterface {
- if (scan.getBatch() > 0 && scan.isSmall()) {
- throw new IllegalArgumentException("Small scan should not be used with batching");
- }
- + if (scan.hasFilter()) {
- + boolean useEssential = false;
- + for (HColumnDescriptor family : getTableDescriptor().getColumnFamilies()) {
- + if (scan.getFilter().isFamilyEssential(family.getName())) {
- + useEssential = true;
- + break;
- + }
- + }
- + if (useEssential && scan.getAllowPartialResults()) {
- + throw new IllegalArgumentException(
- + "Essential column family filter and partial Scan cannot be used together: data loss");
- + }
- + }
- if (scan.getCaching() <= 0) {
- scan.setCaching(scannerCaching);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement