HBASE-882 The BatchUpdate class provides, put(col, cell) and delete(col) but no get() (Ryan Smith via Stack and Jim Kellerman)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@694352 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jim Kellerman 2008-09-11 17:04:39 +00:00
parent 8aaf774c9d
commit 62c4e4b5b4
3 changed files with 45 additions and 3 deletions

View File

@ -64,8 +64,6 @@ Release 0.18.0 - Unreleased
splits (Jonathan Gray via Stack)
HBASE-877 HCM is unable to find table with multiple regions which contains
binary (Jonathan Gray via Stack)
HBASE-822 The BatchUpdate class provides, put(col, cell) and delete(col)
but no get() (Ryan Smith via Stack)
IMPROVEMENTS
HBASE-801 When a table haven't disable, shell could response in a "user
@ -89,6 +87,8 @@ Release 0.18.0 - Unreleased
HBASE-871 Major compaction periodicity should be specifyable at the column
family level, not cluster wide (Jonathan Gray via Stack)
HBASE-465 Fix javadoc for all public declarations
HBASE-882 The BatchUpdate class provides, put(col, cell) and delete(col)
but no get() (Ryan Smith via Stack and Jim Kellerman)
NEW FEATURES
HBASE-787 Postgresql to HBase table replication example (Tim Sell via Stack)

View File

@ -143,6 +143,43 @@ public class BatchUpdate implements Writable, Iterable<BatchOperation> {
return null;
}
/**
* Get the current columns
*
* @return byte[][] an array of byte[] columns
*/
public synchronized byte[][] getColumns() {
byte[][] columns = new byte[operations.size()][];
for (int i = 0; i < operations.size(); i++) {
columns[i] = operations.get(i).getColumn();
}
return columns;
}
/**
* Check if the specified column is currently assigned a value
*
* @param column column to check for
* @return boolean true if the given column exists
*/
public synchronized boolean hasColumn(String column) {
return hasColumn(Bytes.toBytes(column));
}
/**
* Check if the specified column is currently assigned a value
*
* @param column column to check for
* @return boolean true if the given column exists
*/
public synchronized boolean hasColumn(byte[] column) {
byte[] getColumn = get(column);
if (getColumn == null) {
return false;
}
return true;
}
/**
* Change a value for the specified column
*

View File

@ -86,7 +86,12 @@ public class TestBatchUpdate extends HBaseClusterTestCase {
bu = new BatchUpdate("row2");
bu.put(CONTENTS, value);
byte[] getValue = bu.get(CONTENTS);
byte[][] getColumns = bu.getColumns();
assertEquals(getColumns.length, 1);
assertTrue(Arrays.equals(getColumns[0], CONTENTS));
assertTrue(bu.hasColumn(CONTENTS));
assertFalse(bu.hasColumn(new byte[] {}));
byte[] getValue = bu.get(getColumns[0]);
assertTrue(Arrays.equals(getValue, value));
table.commit(bu);