HBASE-9496 make sure HBase APIs are compatible between 0.94 and 0.96

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1523825 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
sershe 2013-09-16 22:36:38 +00:00
parent 5a0016d1af
commit ed90c565ef
24 changed files with 167 additions and 92 deletions

View File

@ -39,6 +39,7 @@ import org.apache.hadoop.hbase.io.HeapSize;
import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.ClassSize; import org.apache.hadoop.hbase.util.ClassSize;
import com.google.common.collect.Lists;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams; import com.google.common.io.ByteStreams;
@ -195,12 +196,25 @@ public abstract class Mutation extends OperationWithAttributes implements Row, C
/** /**
* Method for setting the put's familyMap * Method for setting the put's familyMap
*/ */
public void setFamilyMap(NavigableMap<byte [], List<Cell>> map) { public void setFamilyCellMap(NavigableMap<byte [], List<Cell>> map) {
// TODO: Shut this down or move it up to be a Constructor. Get new object rather than change // TODO: Shut this down or move it up to be a Constructor. Get new object rather than change
// this internal data member. // this internal data member.
this.familyMap = map; this.familyMap = map;
} }
/**
* Method for setting the put's familyMap that is deprecated and inefficient.
* @deprecated use {@link #setFamilyCellMap(NavigableMap)} instead.
*/
@Deprecated
public void setFamilyMap(NavigableMap<byte [], List<KeyValue>> map) {
TreeMap<byte[], List<Cell>> fm = new TreeMap<byte[], List<Cell>>(Bytes.BYTES_COMPARATOR);
for (Map.Entry<byte[], List<KeyValue>> e : map.entrySet()) {
fm.put(e.getKey(), Lists.<Cell>newArrayList(e.getValue()));
}
this.familyMap = fm;
}
/** /**
* Method to check if the familyMap is empty * Method to check if the familyMap is empty
* @return true if empty, false otherwise * @return true if empty, false otherwise

View File

@ -29,6 +29,8 @@ import java.util.Map;
import java.util.NavigableMap; import java.util.NavigableMap;
import java.util.TreeMap; import java.util.TreeMap;
import javax.annotation.Nullable;
import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.Cell;
@ -95,26 +97,45 @@ public class Result implements CellScannable {
} }
/** /**
* Instantiate a Result with the specified array of KeyValues. * @deprecated Use {@link #create(List)} instead.
* <br><strong>Note:</strong> You must ensure that the keyvalues
* are already sorted
* @param cells array of KeyValues
*/ */
public Result(Cell [] cells) { @Deprecated
public Result(KeyValue [] cells) {
this.cells = cells; this.cells = cells;
} }
/** /**
* Instantiate a Result with the specified List of KeyValues. * @deprecated Use {@link #create(List)} instead.
* <br><strong>Note:</strong> You must ensure that the keyvalues
* are already sorted
* @param kvs List of KeyValues
*/ */
public Result(List<Cell> kvs) { @Deprecated
public Result(List<KeyValue> kvs) {
// TODO: Here we presume the passed in Cells are KVs. One day this won't always be so. // TODO: Here we presume the passed in Cells are KVs. One day this won't always be so.
this(kvs.toArray(new Cell[kvs.size()])); this(kvs.toArray(new Cell[kvs.size()]));
} }
/**
* Instantiate a Result with the specified List of KeyValues.
* <br><strong>Note:</strong> You must ensure that the keyvalues are already sorted.
* @param cells List of cells
*/
public static Result create(List<Cell> cells) {
return new Result(cells.toArray(new Cell[cells.size()]));
}
/**
* Instantiate a Result with the specified array of KeyValues.
* <br><strong>Note:</strong> You must ensure that the keyvalues are already sorted.
* @param cells array of cells
*/
public static Result create(Cell[] cells) {
return new Result(cells);
}
/** Private ctor. Use {@link #create(Cell[])}. */
private Result(Cell[] cells) {
this.cells = cells;
}
/** /**
* Method for retrieving the row key that corresponds to * Method for retrieving the row key that corresponds to
* the row from which this Result was created. * the row from which this Result was created.
@ -196,6 +217,13 @@ public class Result implements CellScannable {
return isEmpty() ? null : Arrays.asList(raw()); return isEmpty() ? null : Arrays.asList(raw());
} }
/**
* @deprecated Use {@link #getColumnCells(byte[], byte[])} instead.
*/
@Deprecated
public List<KeyValue> getColumn(byte [] family, byte [] qualifier) {
return KeyValueUtil.ensureKeyValues(getColumnCells(family, qualifier));
}
/** /**
* Return the Cells for the specific column. The Cells are sorted in * Return the Cells for the specific column. The Cells are sorted in
@ -212,7 +240,7 @@ public class Result implements CellScannable {
* @return a list of Cells for this column or empty list if the column * @return a list of Cells for this column or empty list if the column
* did not exist in the result set * did not exist in the result set
*/ */
public List<Cell> getColumn(byte [] family, byte [] qualifier) { public List<Cell> getColumnCells(byte [] family, byte [] qualifier) {
List<Cell> result = new ArrayList<Cell>(); List<Cell> result = new ArrayList<Cell>();
Cell [] kvs = rawCells(); Cell [] kvs = rawCells();
@ -300,6 +328,14 @@ public class Result implements CellScannable {
return pos; return pos;
} }
/**
* @deprecated Use {@link #getColumnLatestCell(byte[], byte[])} instead.
*/
@Deprecated
public KeyValue getColumnLatest(byte [] family, byte [] qualifier) {
return KeyValueUtil.ensureKeyValue(getColumnLatestCell(family, qualifier));
}
/** /**
* The Cell for the most recent timestamp for a given column. * The Cell for the most recent timestamp for a given column.
* *
@ -309,7 +345,7 @@ public class Result implements CellScannable {
* @return the Cell for the column, or null if no value exists in the row or none have been * @return the Cell for the column, or null if no value exists in the row or none have been
* selected in the query (Get/Scan) * selected in the query (Get/Scan)
*/ */
public Cell getColumnLatest(byte [] family, byte [] qualifier) { public Cell getColumnLatestCell(byte [] family, byte [] qualifier) {
Cell [] kvs = rawCells(); // side effect possibly. Cell [] kvs = rawCells(); // side effect possibly.
if (kvs == null || kvs.length == 0) { if (kvs == null || kvs.length == 0) {
return null; return null;
@ -325,6 +361,16 @@ public class Result implements CellScannable {
return null; return null;
} }
/**
* @deprecated Use {@link #getColumnLatestCell(byte[], int, int, byte[], int, int)} instead.
*/
@Deprecated
public KeyValue getColumnLatest(byte [] family, int foffset, int flength,
byte [] qualifier, int qoffset, int qlength) {
return KeyValueUtil.ensureKeyValue(
getColumnLatestCell(family, foffset, flength, qualifier, qoffset, qlength));
}
/** /**
* The Cell for the most recent timestamp for a given column. * The Cell for the most recent timestamp for a given column.
* *
@ -338,7 +384,7 @@ public class Result implements CellScannable {
* @return the Cell for the column, or null if no value exists in the row or none have been * @return the Cell for the column, or null if no value exists in the row or none have been
* selected in the query (Get/Scan) * selected in the query (Get/Scan)
*/ */
public Cell getColumnLatest(byte [] family, int foffset, int flength, public Cell getColumnLatestCell(byte [] family, int foffset, int flength,
byte [] qualifier, int qoffset, int qlength) { byte [] qualifier, int qoffset, int qlength) {
Cell [] kvs = rawCells(); // side effect possibly. Cell [] kvs = rawCells(); // side effect possibly.
@ -363,7 +409,7 @@ public class Result implements CellScannable {
* @return value of latest version of column, null if none found * @return value of latest version of column, null if none found
*/ */
public byte[] getValue(byte [] family, byte [] qualifier) { public byte[] getValue(byte [] family, byte [] qualifier) {
Cell kv = getColumnLatest(family, qualifier); Cell kv = getColumnLatestCell(family, qualifier);
if (kv == null) { if (kv == null) {
return null; return null;
} }
@ -380,7 +426,7 @@ public class Result implements CellScannable {
*/ */
public ByteBuffer getValueAsByteBuffer(byte [] family, byte [] qualifier) { public ByteBuffer getValueAsByteBuffer(byte [] family, byte [] qualifier) {
Cell kv = getColumnLatest(family, 0, family.length, qualifier, 0, qualifier.length); Cell kv = getColumnLatestCell(family, 0, family.length, qualifier, 0, qualifier.length);
if (kv == null) { if (kv == null) {
return null; return null;
@ -403,7 +449,7 @@ public class Result implements CellScannable {
public ByteBuffer getValueAsByteBuffer(byte [] family, int foffset, int flength, public ByteBuffer getValueAsByteBuffer(byte [] family, int foffset, int flength,
byte [] qualifier, int qoffset, int qlength) { byte [] qualifier, int qoffset, int qlength) {
Cell kv = getColumnLatest(family, foffset, flength, qualifier, qoffset, qlength); Cell kv = getColumnLatestCell(family, foffset, flength, qualifier, qoffset, qlength);
if (kv == null) { if (kv == null) {
return null; return null;
@ -449,7 +495,7 @@ public class Result implements CellScannable {
public boolean loadValue(byte [] family, int foffset, int flength, public boolean loadValue(byte [] family, int foffset, int flength,
byte [] qualifier, int qoffset, int qlength, ByteBuffer dst) byte [] qualifier, int qoffset, int qlength, ByteBuffer dst)
throws BufferOverflowException { throws BufferOverflowException {
Cell kv = getColumnLatest(family, foffset, flength, qualifier, qoffset, qlength); Cell kv = getColumnLatestCell(family, foffset, flength, qualifier, qoffset, qlength);
if (kv == null) { if (kv == null) {
return false; return false;
@ -486,7 +532,7 @@ public class Result implements CellScannable {
public boolean containsNonEmptyColumn(byte [] family, int foffset, int flength, public boolean containsNonEmptyColumn(byte [] family, int foffset, int flength,
byte [] qualifier, int qoffset, int qlength) { byte [] qualifier, int qoffset, int qlength) {
Cell kv = getColumnLatest(family, foffset, flength, qualifier, qoffset, qlength); Cell kv = getColumnLatestCell(family, foffset, flength, qualifier, qoffset, qlength);
return (kv != null) && (kv.getValueLength() > 0); return (kv != null) && (kv.getValueLength() > 0);
} }
@ -518,7 +564,7 @@ public class Result implements CellScannable {
*/ */
public boolean containsEmptyColumn(byte [] family, int foffset, int flength, public boolean containsEmptyColumn(byte [] family, int foffset, int flength,
byte [] qualifier, int qoffset, int qlength) { byte [] qualifier, int qoffset, int qlength) {
Cell kv = getColumnLatest(family, foffset, flength, qualifier, qoffset, qlength); Cell kv = getColumnLatestCell(family, foffset, flength, qualifier, qoffset, qlength);
return (kv != null) && (kv.getValueLength() == 0); return (kv != null) && (kv.getValueLength() == 0);
} }
@ -532,7 +578,7 @@ public class Result implements CellScannable {
* @return true if at least one value exists in the result, false if not * @return true if at least one value exists in the result, false if not
*/ */
public boolean containsColumn(byte [] family, byte [] qualifier) { public boolean containsColumn(byte [] family, byte [] qualifier) {
Cell kv = getColumnLatest(family, qualifier); Cell kv = getColumnLatestCell(family, qualifier);
return kv != null; return kv != null;
} }
@ -551,7 +597,7 @@ public class Result implements CellScannable {
public boolean containsColumn(byte [] family, int foffset, int flength, public boolean containsColumn(byte [] family, int foffset, int flength,
byte [] qualifier, int qoffset, int qlength) { byte [] qualifier, int qoffset, int qlength) {
return getColumnLatest(family, foffset, flength, qualifier, qoffset, qlength) != null; return getColumnLatestCell(family, foffset, flength, qualifier, qoffset, qlength) != null;
} }
/** /**

View File

@ -1060,7 +1060,7 @@ public final class ProtobufUtil {
for (CellProtos.Cell c: values) { for (CellProtos.Cell c: values) {
cells.add(toCell(c)); cells.add(toCell(c));
} }
return new Result(cells); return Result.create(cells);
} }
/** /**
@ -1088,7 +1088,7 @@ public final class ProtobufUtil {
for (CellProtos.Cell c: values) { for (CellProtos.Cell c: values) {
cells.add(toCell(c)); cells.add(toCell(c));
} }
return new Result(cells); return Result.create(cells);
} }
/** /**

View File

@ -309,7 +309,7 @@ public final class ResponseConverter {
} }
cells.add(cellScanner.current()); cells.add(cellScanner.current());
} }
results[i] = new Result(cells); results[i] = Result.create(cells);
} else { } else {
// Result is pure pb. // Result is pure pb.
results[i] = ProtobufUtil.toResult(response.getResults(i)); results[i] = ProtobufUtil.toResult(response.getResults(i));

View File

@ -19,6 +19,8 @@
package org.apache.hadoop.hbase; package org.apache.hadoop.hbase;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.hbase.util.ByteBufferUtils; import org.apache.hadoop.hbase.util.ByteBufferUtils;
@ -27,6 +29,9 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.IterableUtils; import org.apache.hadoop.hbase.util.IterableUtils;
import org.apache.hadoop.io.WritableUtils; import org.apache.hadoop.io.WritableUtils;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
/** /**
* static convenience methods for dealing with KeyValues and collections of KeyValues * static convenience methods for dealing with KeyValues and collections of KeyValues
*/ */
@ -203,4 +208,13 @@ public class KeyValueUtil {
if (cell == null) return null; if (cell == null) return null;
return cell instanceof KeyValue? (KeyValue)cell: copyToNewKeyValue(cell); return cell instanceof KeyValue? (KeyValue)cell: copyToNewKeyValue(cell);
} }
public static List<KeyValue> ensureKeyValues(List<Cell> cells) {
List<KeyValue> lazyList = Lists.transform(cells, new Function<Cell, KeyValue>() {
public KeyValue apply(Cell arg0) {
return KeyValueUtil.ensureKeyValue(arg0);
}
});
return new ArrayList<KeyValue>(lazyList);
}
} }

View File

@ -202,9 +202,9 @@ public class TestBulkDeleteProtocol {
int rows = 0; int rows = 0;
for (Result result : ht.getScanner(new Scan())) { for (Result result : ht.getScanner(new Scan())) {
assertEquals(2, result.getFamilyMap(FAMILY1).size()); assertEquals(2, result.getFamilyMap(FAMILY1).size());
assertTrue(result.getColumn(FAMILY1, QUALIFIER2).isEmpty()); assertTrue(result.getColumnCells(FAMILY1, QUALIFIER2).isEmpty());
assertEquals(1, result.getColumn(FAMILY1, QUALIFIER1).size()); assertEquals(1, result.getColumnCells(FAMILY1, QUALIFIER1).size());
assertEquals(1, result.getColumn(FAMILY1, QUALIFIER3).size()); assertEquals(1, result.getColumnCells(FAMILY1, QUALIFIER3).size());
rows++; rows++;
} }
assertEquals(100, rows); assertEquals(100, rows);
@ -235,7 +235,7 @@ public class TestBulkDeleteProtocol {
int rows = 0; int rows = 0;
for (Result result : ht.getScanner(new Scan())) { for (Result result : ht.getScanner(new Scan())) {
assertTrue(result.getFamilyMap(FAMILY1).isEmpty()); assertTrue(result.getFamilyMap(FAMILY1).isEmpty());
assertEquals(1, result.getColumn(FAMILY2, QUALIFIER2).size()); assertEquals(1, result.getColumnCells(FAMILY2, QUALIFIER2).size());
rows++; rows++;
} }
assertEquals(100, rows); assertEquals(100, rows);
@ -273,15 +273,15 @@ public class TestBulkDeleteProtocol {
scan.setMaxVersions(); scan.setMaxVersions();
for (Result result : ht.getScanner(scan)) { for (Result result : ht.getScanner(scan)) {
assertEquals(3, result.getFamilyMap(FAMILY1).size()); assertEquals(3, result.getFamilyMap(FAMILY1).size());
List<Cell> column = result.getColumn(FAMILY1, QUALIFIER1); List<Cell> column = result.getColumnCells(FAMILY1, QUALIFIER1);
assertEquals(1, column.size()); assertEquals(1, column.size());
assertTrue(CellUtil.matchingValue(column.get(0), "v1".getBytes())); assertTrue(CellUtil.matchingValue(column.get(0), "v1".getBytes()));
column = result.getColumn(FAMILY1, QUALIFIER2); column = result.getColumnCells(FAMILY1, QUALIFIER2);
assertEquals(1, column.size()); assertEquals(1, column.size());
assertTrue(CellUtil.matchingValue(column.get(0), "v1".getBytes())); assertTrue(CellUtil.matchingValue(column.get(0), "v1".getBytes()));
column = result.getColumn(FAMILY1, QUALIFIER3); column = result.getColumnCells(FAMILY1, QUALIFIER3);
assertEquals(1, column.size()); assertEquals(1, column.size());
assertTrue(CellUtil.matchingValue(column.get(0), "v1".getBytes())); assertTrue(CellUtil.matchingValue(column.get(0), "v1".getBytes()));
rows++; rows++;
@ -325,9 +325,9 @@ public class TestBulkDeleteProtocol {
scan.setMaxVersions(); scan.setMaxVersions();
for (Result result : ht.getScanner(scan)) { for (Result result : ht.getScanner(scan)) {
assertEquals(3, result.getFamilyMap(FAMILY1).size()); assertEquals(3, result.getFamilyMap(FAMILY1).size());
assertEquals(3, result.getColumn(FAMILY1, QUALIFIER1).size()); assertEquals(3, result.getColumnCells(FAMILY1, QUALIFIER1).size());
assertEquals(3, result.getColumn(FAMILY1, QUALIFIER2).size()); assertEquals(3, result.getColumnCells(FAMILY1, QUALIFIER2).size());
List<Cell> column = result.getColumn(FAMILY1, QUALIFIER3); List<Cell> column = result.getColumnCells(FAMILY1, QUALIFIER3);
assertEquals(2, column.size()); assertEquals(2, column.size());
assertTrue(CellUtil.matchingValue(column.get(0), "v3".getBytes())); assertTrue(CellUtil.matchingValue(column.get(0), "v3".getBytes()));
assertTrue(CellUtil.matchingValue(column.get(1), "v1".getBytes())); assertTrue(CellUtil.matchingValue(column.get(1), "v1".getBytes()));
@ -407,15 +407,15 @@ public class TestBulkDeleteProtocol {
scan1.setMaxVersions(); scan1.setMaxVersions();
for (Result res : ht.getScanner(scan1)) { for (Result res : ht.getScanner(scan1)) {
assertEquals(3, res.getFamilyMap(FAMILY1).size()); assertEquals(3, res.getFamilyMap(FAMILY1).size());
List<Cell> column = res.getColumn(FAMILY1, QUALIFIER1); List<Cell> column = res.getColumnCells(FAMILY1, QUALIFIER1);
assertEquals(2, column.size()); assertEquals(2, column.size());
assertTrue(CellUtil.matchingValue(column.get(0), "v4".getBytes())); assertTrue(CellUtil.matchingValue(column.get(0), "v4".getBytes()));
assertTrue(CellUtil.matchingValue(column.get(1), "v3".getBytes())); assertTrue(CellUtil.matchingValue(column.get(1), "v3".getBytes()));
column = res.getColumn(FAMILY1, QUALIFIER2); column = res.getColumnCells(FAMILY1, QUALIFIER2);
assertEquals(2, column.size()); assertEquals(2, column.size());
assertTrue(CellUtil.matchingValue(column.get(0), "v4".getBytes())); assertTrue(CellUtil.matchingValue(column.get(0), "v4".getBytes()));
assertTrue(CellUtil.matchingValue(column.get(1), "v3".getBytes())); assertTrue(CellUtil.matchingValue(column.get(1), "v3".getBytes()));
assertEquals(4, res.getColumn(FAMILY1, QUALIFIER3).size()); assertEquals(4, res.getColumnCells(FAMILY1, QUALIFIER3).size());
rows++; rows++;
} }
assertEquals(100, rows); assertEquals(100, rows);

View File

@ -470,7 +470,7 @@ public class IntegrationTestBulkLoad extends IntegrationTestBase {
for (Map.Entry<byte[], byte[]> entry : value.getFamilyMap(CHAIN_FAM).entrySet()) { for (Map.Entry<byte[], byte[]> entry : value.getFamilyMap(CHAIN_FAM).entrySet()) {
long chainId = Bytes.toLong(entry.getKey()); long chainId = Bytes.toLong(entry.getKey());
long next = Bytes.toLong(entry.getValue()); long next = Bytes.toLong(entry.getValue());
Cell c = value.getColumn(SORT_FAM, entry.getKey()).get(0); Cell c = value.getColumnCells(SORT_FAM, entry.getKey()).get(0);
long order = Bytes.toLong(CellUtil.cloneValue(c)); long order = Bytes.toLong(CellUtil.cloneValue(c));
context.write(new LinkKey(chainId, order), new LinkChain(longRk, next)); context.write(new LinkKey(chainId, order), new LinkChain(longRk, next));
} }

View File

@ -170,8 +170,8 @@ public class TableNamespaceManager {
if (res.isEmpty()) { if (res.isEmpty()) {
return null; return null;
} }
byte[] val = CellUtil.cloneValue(res.getColumnLatest(HTableDescriptor.NAMESPACE_FAMILY_INFO_BYTES, byte[] val = CellUtil.cloneValue(res.getColumnLatestCell(
HTableDescriptor.NAMESPACE_COL_DESC_BYTES)); HTableDescriptor.NAMESPACE_FAMILY_INFO_BYTES, HTableDescriptor.NAMESPACE_COL_DESC_BYTES));
return return
ProtobufUtil.toNamespaceDescriptor( ProtobufUtil.toNamespaceDescriptor(
HBaseProtos.NamespaceDescriptor.parseFrom(val)); HBaseProtos.NamespaceDescriptor.parseFrom(val));
@ -241,7 +241,8 @@ public class TableNamespaceManager {
ResultScanner scanner = getNamespaceTable().getScanner(HTableDescriptor.NAMESPACE_FAMILY_INFO_BYTES); ResultScanner scanner = getNamespaceTable().getScanner(HTableDescriptor.NAMESPACE_FAMILY_INFO_BYTES);
try { try {
for(Result r : scanner) { for(Result r : scanner) {
byte[] val = CellUtil.cloneValue(r.getColumnLatest(HTableDescriptor.NAMESPACE_FAMILY_INFO_BYTES, byte[] val = CellUtil.cloneValue(r.getColumnLatestCell(
HTableDescriptor.NAMESPACE_FAMILY_INFO_BYTES,
HTableDescriptor.NAMESPACE_COL_DESC_BYTES)); HTableDescriptor.NAMESPACE_COL_DESC_BYTES));
ret.add(ProtobufUtil.toNamespaceDescriptor( ret.add(ProtobufUtil.toNamespaceDescriptor(
HBaseProtos.NamespaceDescriptor.parseFrom(val))); HBaseProtos.NamespaceDescriptor.parseFrom(val)));

View File

@ -1787,7 +1787,7 @@ public class HRegion implements HeapSize { // , Writable{
void delete(NavigableMap<byte[], List<Cell>> familyMap, void delete(NavigableMap<byte[], List<Cell>> familyMap,
Durability durability) throws IOException { Durability durability) throws IOException {
Delete delete = new Delete(FOR_UNIT_TESTS_ONLY); Delete delete = new Delete(FOR_UNIT_TESTS_ONLY);
delete.setFamilyMap(familyMap); delete.setFamilyCellMap(familyMap);
delete.setDurability(durability); delete.setDurability(durability);
doBatchMutate(delete); doBatchMutate(delete);
} }
@ -2598,7 +2598,7 @@ public class HRegion implements HeapSize { // , Writable{
familyMap.put(family, edits); familyMap.put(family, edits);
Put p = new Put(row); Put p = new Put(row);
p.setFamilyMap(familyMap); p.setFamilyCellMap(familyMap);
doBatchMutate(p); doBatchMutate(p);
} }
@ -4372,7 +4372,7 @@ public class HRegion implements HeapSize { // , Writable{
} }
} }
List<Cell> results = get(get, true); List<Cell> results = get(get, true);
return new Result(results); return Result.create(results);
} }
/* /*
@ -4810,7 +4810,7 @@ public class HRegion implements HeapSize { // , Writable{
} }
return append.isReturnResults() ? new Result(allKVs) : null; return append.isReturnResults() ? Result.create(allKVs) : null;
} }
/** /**
@ -4955,7 +4955,7 @@ public class HRegion implements HeapSize { // , Writable{
requestFlush(); requestFlush();
} }
return new Result(allKVs); return Result.create(allKVs);
} }
// //

View File

@ -3136,7 +3136,7 @@ public class HRegionServer implements ClientProtos.ClientService.BlockingInterfa
currentScanResultSize += KeyValueUtil.ensureKeyValue(kv).heapSize(); currentScanResultSize += KeyValueUtil.ensureKeyValue(kv).heapSize();
} }
} }
results.add(new Result(values)); results.add(Result.create(values));
} }
if (!moreRows) { if (!moreRows) {
break; break;

View File

@ -176,7 +176,7 @@ public class RemoteHTable implements HTableInterface {
kvs.add(new KeyValue(row.getKey(), column, qualifier, kvs.add(new KeyValue(row.getKey(), column, qualifier,
cell.getTimestamp(), cell.getValue())); cell.getTimestamp(), cell.getValue()));
} }
results.add(new Result(kvs)); results.add(Result.create(kvs));
} }
return results.toArray(new Result[results.size()]); return results.toArray(new Result[results.size()]);
} }

View File

@ -345,7 +345,7 @@ public class TestSerialization {
* TODO * TODO
@Test public void testResultEmpty() throws Exception { @Test public void testResultEmpty() throws Exception {
List<KeyValue> keys = new ArrayList<KeyValue>(); List<KeyValue> keys = new ArrayList<KeyValue>();
Result r = new Result(keys); Result r = Result.newResult(keys);
assertTrue(r.isEmpty()); assertTrue(r.isEmpty());
byte [] rb = Writables.getBytes(r); byte [] rb = Writables.getBytes(r);
Result deserializedR = (Result)Writables.getWritable(rb, new Result()); Result deserializedR = (Result)Writables.getWritable(rb, new Result());
@ -367,7 +367,7 @@ public class TestSerialization {
KeyValue kvA = new KeyValue(rowA, famA, qfA, valueA); KeyValue kvA = new KeyValue(rowA, famA, qfA, valueA);
KeyValue kvB = new KeyValue(rowB, famB, qfB, valueB); KeyValue kvB = new KeyValue(rowB, famB, qfB, valueB);
Result result = new Result(new KeyValue[]{kvA, kvB}); Result result = Result.newResult(new KeyValue[]{kvA, kvB});
byte [] rb = Writables.getBytes(result); byte [] rb = Writables.getBytes(result);
Result deResult = (Result)Writables.getWritable(rb, new Result()); Result deResult = (Result)Writables.getWritable(rb, new Result());
@ -399,7 +399,7 @@ public class TestSerialization {
KeyValue kvA = new KeyValue(rowA, famA, qfA, valueA); KeyValue kvA = new KeyValue(rowA, famA, qfA, valueA);
KeyValue kvB = new KeyValue(rowB, famB, qfB, valueB); KeyValue kvB = new KeyValue(rowB, famB, qfB, valueB);
Result result = new Result(new KeyValue[]{kvA, kvB}); Result result = Result.newResult(new KeyValue[]{kvA, kvB});
byte [] rb = Writables.getBytes(result); byte [] rb = Writables.getBytes(result);
@ -441,9 +441,9 @@ public class TestSerialization {
KeyValue kvB = new KeyValue(rowB, famB, qfB, valueB); KeyValue kvB = new KeyValue(rowB, famB, qfB, valueB);
Result result1 = new Result(new KeyValue[]{kvA, kvB}); Result result1 = Result.newResult(new KeyValue[]{kvA, kvB});
Result result2 = new Result(new KeyValue[]{kvB}); Result result2 = Result.newResult(new KeyValue[]{kvB});
Result result3 = new Result(new KeyValue[]{kvB}); Result result3 = Result.newResult(new KeyValue[]{kvB});
Result [] results = new Result [] {result1, result2, result3}; Result [] results = new Result [] {result1, result2, result3};
@ -477,7 +477,7 @@ public class TestSerialization {
@Test public void testResultArrayEmpty() throws Exception { @Test public void testResultArrayEmpty() throws Exception {
List<KeyValue> keys = new ArrayList<KeyValue>(); List<KeyValue> keys = new ArrayList<KeyValue>();
Result r = new Result(keys); Result r = Result.newResult(keys);
Result [] results = new Result [] {r}; Result [] results = new Result [] {r};
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

View File

@ -107,7 +107,7 @@ public class MetaMockingUtil {
//important: sort the kvs so that binary search work //important: sort the kvs so that binary search work
Collections.sort(kvs, KeyValue.META_COMPARATOR); Collections.sort(kvs, KeyValue.META_COMPARATOR);
return new Result(kvs); return Result.create(kvs);
} }
/** /**

View File

@ -99,26 +99,26 @@ public class TestMetaReaderEditorNoCluster {
assertNull(HRegionInfo.getHRegionInfo(new Result())); assertNull(HRegionInfo.getHRegionInfo(new Result()));
List<Cell> kvs = new ArrayList<Cell>(); List<Cell> kvs = new ArrayList<Cell>();
Result r = new Result(kvs); Result r = Result.create(kvs);
assertNull(HRegionInfo.getHRegionInfo(r)); assertNull(HRegionInfo.getHRegionInfo(r));
byte [] f = HConstants.CATALOG_FAMILY; byte [] f = HConstants.CATALOG_FAMILY;
// Make a key value that doesn't have the expected qualifier. // Make a key value that doesn't have the expected qualifier.
kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f, kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f,
HConstants.SERVER_QUALIFIER, f)); HConstants.SERVER_QUALIFIER, f));
r = new Result(kvs); r = Result.create(kvs);
assertNull(HRegionInfo.getHRegionInfo(r)); assertNull(HRegionInfo.getHRegionInfo(r));
// Make a key that does not have a regioninfo value. // Make a key that does not have a regioninfo value.
kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f, kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f,
HConstants.REGIONINFO_QUALIFIER, f)); HConstants.REGIONINFO_QUALIFIER, f));
HRegionInfo hri = HRegionInfo.getHRegionInfo(new Result(kvs)); HRegionInfo hri = HRegionInfo.getHRegionInfo(Result.create(kvs));
assertTrue(hri == null); assertTrue(hri == null);
// OK, give it what it expects // OK, give it what it expects
kvs.clear(); kvs.clear();
kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f, kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f,
HConstants.REGIONINFO_QUALIFIER, HConstants.REGIONINFO_QUALIFIER,
HRegionInfo.FIRST_META_REGIONINFO.toByteArray())); HRegionInfo.FIRST_META_REGIONINFO.toByteArray()));
hri = HRegionInfo.getHRegionInfo(new Result(kvs)); hri = HRegionInfo.getHRegionInfo(Result.create(kvs));
assertNotNull(hri); assertNotNull(hri);
assertTrue(hri.equals(HRegionInfo.FIRST_META_REGIONINFO)); assertTrue(hri.equals(HRegionInfo.FIRST_META_REGIONINFO));
} }
@ -165,7 +165,7 @@ public class TestMetaReaderEditorNoCluster {
HConstants.CATALOG_FAMILY, HConstants.STARTCODE_QUALIFIER, HConstants.CATALOG_FAMILY, HConstants.STARTCODE_QUALIFIER,
Bytes.toBytes(sn.getStartcode()))); Bytes.toBytes(sn.getStartcode())));
final List<CellScannable> cellScannables = new ArrayList<CellScannable>(1); final List<CellScannable> cellScannables = new ArrayList<CellScannable>(1);
cellScannables.add(new Result(kvs)); cellScannables.add(Result.create(kvs));
final ScanResponse.Builder builder = ScanResponse.newBuilder(); final ScanResponse.Builder builder = ScanResponse.newBuilder();
for (CellScannable result : cellScannables) { for (CellScannable result : cellScannables) {
builder.addCellsPerResult(((Result)result).size()); builder.addCellsPerResult(((Result)result).size());

View File

@ -96,7 +96,7 @@ public class TestIntraRowPagination {
kvListScan.addAll(results); kvListScan.addAll(results);
results.clear(); results.clear();
} }
result = new Result(kvListScan); result = Result.create(kvListScan);
TestScannersFromClientSide.verifyResult(result, kvListExp, toLog, TestScannersFromClientSide.verifyResult(result, kvListExp, toLog,
"Testing scan with storeOffset and storeLimit"); "Testing scan with storeOffset and storeLimit");
} finally { } finally {

View File

@ -138,7 +138,7 @@ public class TestPutDeleteEtcCellIteration {
byte [] bytes = Bytes.toBytes(i); byte [] bytes = Bytes.toBytes(i);
cells[i] = new KeyValue(ROW, bytes, bytes, TIMESTAMP, bytes); cells[i] = new KeyValue(ROW, bytes, bytes, TIMESTAMP, bytes);
} }
Result r = new Result(Arrays.asList(cells)); Result r = Result.create(Arrays.asList(cells));
int index = 0; int index = 0;
for (CellScanner cellScanner = r.cellScanner(); cellScanner.advance();) { for (CellScanner cellScanner = r.cellScanner(); cellScanner.advance();) {
Cell cell = cellScanner.current(); Cell cell = cellScanner.current();

View File

@ -65,15 +65,15 @@ public class TestResult extends TestCase {
Arrays.sort(kvs, KeyValue.COMPARATOR); Arrays.sort(kvs, KeyValue.COMPARATOR);
Result r = new Result(kvs); Result r = Result.create(kvs);
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
final byte[] qf = Bytes.toBytes(i); final byte[] qf = Bytes.toBytes(i);
List<Cell> ks = r.getColumn(family, qf); List<Cell> ks = r.getColumnCells(family, qf);
assertEquals(1, ks.size()); assertEquals(1, ks.size());
assertTrue(CellUtil.matchingQualifier(ks.get(0), qf)); assertTrue(CellUtil.matchingQualifier(ks.get(0), qf));
assertEquals(ks.get(0), r.getColumnLatest(family, qf)); assertEquals(ks.get(0), r.getColumnLatestCell(family, qf));
} }
} }
@ -87,15 +87,15 @@ public class TestResult extends TestCase {
Arrays.sort(kvs, KeyValue.COMPARATOR); Arrays.sort(kvs, KeyValue.COMPARATOR);
Result r = new Result(kvs); Result r = Result.create(kvs);
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
final byte[] qf = Bytes.toBytes(i); final byte[] qf = Bytes.toBytes(i);
List<Cell> ks = r.getColumn(family, qf); List<Cell> ks = r.getColumnCells(family, qf);
assertEquals(2, ks.size()); assertEquals(2, ks.size());
assertTrue(CellUtil.matchingQualifier(ks.get(0), qf)); assertTrue(CellUtil.matchingQualifier(ks.get(0), qf));
assertEquals(200, ks.get(0).getTimestamp()); assertEquals(200, ks.get(0).getTimestamp());
assertEquals(ks.get(0), r.getColumnLatest(family, qf)); assertEquals(ks.get(0), r.getColumnLatestCell(family, qf));
} }
} }
@ -104,7 +104,7 @@ public class TestResult extends TestCase {
Arrays.sort(kvs, KeyValue.COMPARATOR); Arrays.sort(kvs, KeyValue.COMPARATOR);
Result r = new Result(kvs); Result r = Result.create(kvs);
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
final byte[] qf = Bytes.toBytes(i); final byte[] qf = Bytes.toBytes(i);
@ -124,7 +124,7 @@ public class TestResult extends TestCase {
Arrays.sort(kvs, KeyValue.COMPARATOR); Arrays.sort(kvs, KeyValue.COMPARATOR);
Result r = new Result(kvs); Result r = Result.create(kvs);
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
final byte[] qf = Bytes.toBytes(i); final byte[] qf = Bytes.toBytes(i);
@ -138,7 +138,7 @@ public class TestResult extends TestCase {
Arrays.sort(kvs, KeyValue.COMPARATOR); Arrays.sort(kvs, KeyValue.COMPARATOR);
Result r = new Result(kvs); Result r = Result.create(kvs);
ByteBuffer loadValueBuffer = ByteBuffer.allocate(1024); ByteBuffer loadValueBuffer = ByteBuffer.allocate(1024);
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
@ -165,7 +165,7 @@ public class TestResult extends TestCase {
ByteBuffer loadValueBuffer = ByteBuffer.allocate(1024); ByteBuffer loadValueBuffer = ByteBuffer.allocate(1024);
Result r = new Result(kvs); Result r = Result.create(kvs);
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
final byte[] qf = Bytes.toBytes(i); final byte[] qf = Bytes.toBytes(i);
@ -188,8 +188,8 @@ public class TestResult extends TestCase {
KeyValue kv1 = new KeyValue(row, family, qual, value); KeyValue kv1 = new KeyValue(row, family, qual, value);
KeyValue kv2 = new KeyValue(row, family, qual, value1); KeyValue kv2 = new KeyValue(row, family, qual, value1);
Result r1 = new Result(new KeyValue[] {kv1}); Result r1 = Result.create(new KeyValue[] {kv1});
Result r2 = new Result(new KeyValue[] {kv2}); Result r2 = Result.create(new KeyValue[] {kv2});
// no exception thrown // no exception thrown
Result.compareResults(r1, r1); Result.compareResults(r1, r1);
try { try {
@ -226,7 +226,7 @@ public class TestResult extends TestCase {
Bytes.toBytes(valueSB.toString()), 1, n); Bytes.toBytes(valueSB.toString()), 1, n);
Arrays.sort(kvs, KeyValue.COMPARATOR); Arrays.sort(kvs, KeyValue.COMPARATOR);
ByteBuffer loadValueBuffer = ByteBuffer.allocate(1024); ByteBuffer loadValueBuffer = ByteBuffer.allocate(1024);
Result r = new Result(kvs); Result r = Result.create(kvs);
byte[][] qfs = new byte[n][Bytes.SIZEOF_INT]; byte[][] qfs = new byte[n][Bytes.SIZEOF_INT];
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {

View File

@ -324,7 +324,7 @@ public class TestScannersFromClientSide {
kvListScan.add(kv); kvListScan.add(kv);
} }
} }
result = new Result(kvListScan); result = Result.create(kvListScan);
verifyResult(result, kvListExp, toLog, "Testing scan with maxResults"); verifyResult(result, kvListExp, toLog, "Testing scan with maxResults");
} }

View File

@ -156,7 +156,7 @@ public class TestChangingEncoding {
Get get = new Get(getRowKey(batchId, i)); Get get = new Get(getRowKey(batchId, i));
Result result = table.get(get); Result result = table.get(get);
for (int j = 0; j < NUM_COLS_PER_ROW; ++j) { for (int j = 0; j < NUM_COLS_PER_ROW; ++j) {
Cell kv = result.getColumnLatest(CF_BYTES, getQualifier(j)); Cell kv = result.getColumnLatestCell(CF_BYTES, getQualifier(j));
assertTrue(CellUtil.matchingValue(kv, getValue(batchId, i, j))); assertTrue(CellUtil.matchingValue(kv, getValue(batchId, i, j)));
} }
} }

View File

@ -294,7 +294,7 @@ public class TestHRegion extends HBaseTestCase {
Get get = new Get(row); Get get = new Get(row);
Result result = region.get(get); Result result = region.get(get);
for (long i = minSeqId; i <= maxSeqId; i += 10) { for (long i = minSeqId; i <= maxSeqId; i += 10) {
List<Cell> kvs = result.getColumn(family, Bytes.toBytes(i)); List<Cell> kvs = result.getColumnCells(family, Bytes.toBytes(i));
assertEquals(1, kvs.size()); assertEquals(1, kvs.size());
assertEquals(Bytes.toBytes(i), CellUtil.cloneValue(kvs.get(0))); assertEquals(Bytes.toBytes(i), CellUtil.cloneValue(kvs.get(0)));
} }
@ -347,7 +347,7 @@ public class TestHRegion extends HBaseTestCase {
Get get = new Get(row); Get get = new Get(row);
Result result = region.get(get); Result result = region.get(get);
for (long i = minSeqId; i <= maxSeqId; i += 10) { for (long i = minSeqId; i <= maxSeqId; i += 10) {
List<Cell> kvs = result.getColumn(family, Bytes.toBytes(i)); List<Cell> kvs = result.getColumnCells(family, Bytes.toBytes(i));
if (i < recoverSeqId) { if (i < recoverSeqId) {
assertEquals(0, kvs.size()); assertEquals(0, kvs.size());
} else { } else {
@ -3609,7 +3609,7 @@ public class TestHRegion extends HBaseTestCase {
get.addColumn(Incrementer.family, Incrementer.qualifier); get.addColumn(Incrementer.family, Incrementer.qualifier);
get.setMaxVersions(1); get.setMaxVersions(1);
Result res = this.region.get(get); Result res = this.region.get(get);
List<Cell> kvs = res.getColumn(Incrementer.family, List<Cell> kvs = res.getColumnCells(Incrementer.family,
Incrementer.qualifier); Incrementer.qualifier);
//we just got the latest version //we just got the latest version
@ -3703,7 +3703,7 @@ public class TestHRegion extends HBaseTestCase {
get.addColumn(Appender.family, Appender.qualifier); get.addColumn(Appender.family, Appender.qualifier);
get.setMaxVersions(1); get.setMaxVersions(1);
Result res = this.region.get(get); Result res = this.region.get(get);
List<Cell> kvs = res.getColumn(Appender.family, List<Cell> kvs = res.getColumnCells(Appender.family,
Appender.qualifier); Appender.qualifier);
//we just got the latest version //we just got the latest version
@ -3740,7 +3740,7 @@ public class TestHRegion extends HBaseTestCase {
get.addColumn(family, qualifier); get.addColumn(family, qualifier);
get.setMaxVersions(); get.setMaxVersions();
res = this.region.get(get); res = this.region.get(get);
kvs = res.getColumn(family, qualifier); kvs = res.getColumnCells(family, qualifier);
assertEquals(1, kvs.size()); assertEquals(1, kvs.size());
assertEquals(Bytes.toBytes("value0"), CellUtil.cloneValue(kvs.get(0))); assertEquals(Bytes.toBytes("value0"), CellUtil.cloneValue(kvs.get(0)));
@ -3749,7 +3749,7 @@ public class TestHRegion extends HBaseTestCase {
get.addColumn(family, qualifier); get.addColumn(family, qualifier);
get.setMaxVersions(); get.setMaxVersions();
res = this.region.get(get); res = this.region.get(get);
kvs = res.getColumn(family, qualifier); kvs = res.getColumnCells(family, qualifier);
assertEquals(1, kvs.size()); assertEquals(1, kvs.size());
assertEquals(Bytes.toBytes("value0"), CellUtil.cloneValue(kvs.get(0))); assertEquals(Bytes.toBytes("value0"), CellUtil.cloneValue(kvs.get(0)));
@ -3761,7 +3761,7 @@ public class TestHRegion extends HBaseTestCase {
get.addColumn(family, qualifier); get.addColumn(family, qualifier);
get.setMaxVersions(); get.setMaxVersions();
res = this.region.get(get); res = this.region.get(get);
kvs = res.getColumn(family, qualifier); kvs = res.getColumnCells(family, qualifier);
assertEquals(1, kvs.size()); assertEquals(1, kvs.size());
assertEquals(Bytes.toBytes("value1"), CellUtil.cloneValue(kvs.get(0))); assertEquals(Bytes.toBytes("value1"), CellUtil.cloneValue(kvs.get(0)));
@ -3770,7 +3770,7 @@ public class TestHRegion extends HBaseTestCase {
get.addColumn(family, qualifier); get.addColumn(family, qualifier);
get.setMaxVersions(); get.setMaxVersions();
res = this.region.get(get); res = this.region.get(get);
kvs = res.getColumn(family, qualifier); kvs = res.getColumnCells(family, qualifier);
assertEquals(1, kvs.size()); assertEquals(1, kvs.size());
assertEquals(Bytes.toBytes("value1"), CellUtil.cloneValue(kvs.get(0))); assertEquals(Bytes.toBytes("value1"), CellUtil.cloneValue(kvs.get(0)));
} }

View File

@ -832,7 +832,7 @@ public class TestKeepDeletes {
private void checkResult(Result r, byte[] fam, byte[] col, byte[] ... vals) { private void checkResult(Result r, byte[] fam, byte[] col, byte[] ... vals) {
assertEquals(r.size(), vals.length); assertEquals(r.size(), vals.length);
List<Cell> kvs = r.getColumn(fam, col); List<Cell> kvs = r.getColumnCells(fam, col);
assertEquals(kvs.size(), vals.length); assertEquals(kvs.size(), vals.length);
for (int i=0;i<vals.length;i++) { for (int i=0;i<vals.length;i++) {
assertArrayEquals(CellUtil.cloneValue(kvs.get(i)), vals[i]); assertArrayEquals(CellUtil.cloneValue(kvs.get(i)), vals[i]);

View File

@ -461,7 +461,7 @@ public class TestMinVersions {
private void checkResult(Result r, byte[] col, byte[] ... vals) { private void checkResult(Result r, byte[] col, byte[] ... vals) {
assertEquals(r.size(), vals.length); assertEquals(r.size(), vals.length);
List<Cell> kvs = r.getColumn(col, col); List<Cell> kvs = r.getColumnCells(col, col);
assertEquals(kvs.size(), vals.length); assertEquals(kvs.size(), vals.length);
for (int i=0;i<vals.length;i++) { for (int i=0;i<vals.length;i++) {
assertTrue(CellUtil.matchingValue(kvs.get(i), vals[i])); assertTrue(CellUtil.matchingValue(kvs.get(i), vals[i]));

View File

@ -180,7 +180,7 @@ public class MultiThreadedUpdater extends MultiThreadedWriterBase {
byte[] hashCodeBytes = Bytes.toBytes(hashCode); byte[] hashCodeBytes = Bytes.toBytes(hashCode);
byte[] checkedValue = HConstants.EMPTY_BYTE_ARRAY; byte[] checkedValue = HConstants.EMPTY_BYTE_ARRAY;
if (hashCode % 2 == 0) { if (hashCode % 2 == 0) {
Cell kv = result.getColumnLatest(cf, column); Cell kv = result.getColumnLatestCell(cf, column);
checkedValue = kv != null ? CellUtil.cloneValue(kv) : null; checkedValue = kv != null ? CellUtil.cloneValue(kv) : null;
Preconditions.checkNotNull(checkedValue, Preconditions.checkNotNull(checkedValue,
"Column value to be checked should not be null"); "Column value to be checked should not be null");

View File

@ -1281,9 +1281,9 @@ public class TestHBaseFsck {
Get get = new Get(hri.getRegionName()); Get get = new Get(hri.getRegionName());
Result result = meta.get(get); Result result = meta.get(get);
assertTrue(result.getColumn(HConstants.CATALOG_FAMILY, assertTrue(result.getColumnCells(HConstants.CATALOG_FAMILY,
HConstants.SPLITA_QUALIFIER).isEmpty()); HConstants.SPLITA_QUALIFIER).isEmpty());
assertTrue(result.getColumn(HConstants.CATALOG_FAMILY, assertTrue(result.getColumnCells(HConstants.CATALOG_FAMILY,
HConstants.SPLITB_QUALIFIER).isEmpty()); HConstants.SPLITB_QUALIFIER).isEmpty());
TEST_UTIL.getHBaseAdmin().flush(TableName.META_TABLE_NAME.getName()); TEST_UTIL.getHBaseAdmin().flush(TableName.META_TABLE_NAME.getName());