You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2011/02/24 00:02:11 UTC
svn commit: r1073979 [1/3] - in /hbase/trunk: CHANGES.txt
src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java
src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift
Author: rawson
Date: Wed Feb 23 23:02:10 2011
New Revision: 1073979
URL: http://svn.apache.org/viewvc?rev=1073979&view=rev
Log:
HBASE-3542 MultiGet methods in Thrift
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/generated/Hbase.java
hbase/trunk/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift
Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1073979&r1=1073978&r2=1073979&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Feb 23 23:02:10 2011
@@ -107,6 +107,9 @@ Release 0.90.2 - Unreleased
HRegionServer getMaster (Greg Bowyer via Stack)
HBASE-3548 Fix type in documentation of pseudo distributed mode
+ IMPROVEMENTS
+ HBASE-3542 MultiGet methods in Thrift
+
Release 0.90.1 - Unreleased
NEW FEATURES
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java?rev=1073979&r1=1073978&r2=1073979&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java Wed Feb 23 23:02:10 2011
@@ -398,6 +398,52 @@ public class ThriftServer {
}
}
+ public List<TRowResult> getRows(byte[] tableName, List<byte[]> rows)
+ throws IOError {
+ return getRowsWithColumnsTs(tableName, rows, null,
+ HConstants.LATEST_TIMESTAMP);
+ }
+
+ public List<TRowResult> getRowsWithColumns(byte[] tableName, List<byte[]> rows,
+ List<byte[]> columns) throws IOError {
+ return getRowsWithColumnsTs(tableName, rows, columns,
+ HConstants.LATEST_TIMESTAMP);
+ }
+
+ public List<TRowResult> getRowsTs(byte[] tableName, List<byte[]> rows,
+ long timestamp) throws IOError {
+ return getRowsWithColumnsTs(tableName, rows, null,
+ timestamp);
+ }
+
+ public List<TRowResult> getRowsWithColumnsTs(byte[] tableName, List<byte[]> rows,
+ List<byte[]> columns, long timestamp) throws IOError {
+ try {
+ List<Get> gets = new ArrayList<Get>(rows.size());
+ HTable table = getTable(tableName);
+ for (byte[] row : rows) {
+ Get get = new Get(row);
+ if (columns != null) {
+ byte[][] columnArr = columns.toArray(new byte[columns.size()][]);
+ for(byte [] column : columnArr) {
+ byte [][] famAndQf = KeyValue.parseColumn(column);
+ if (famAndQf.length == 1) {
+ get.addFamily(famAndQf[0]);
+ } else {
+ get.addColumn(famAndQf[0], famAndQf[1]);
+ }
+ }
+ get.setTimeRange(Long.MIN_VALUE, timestamp);
+ }
+ gets.add(get);
+ }
+ Result[] result = table.get(gets);
+ return ThriftUtilities.rowResultFromHBase(result);
+ } catch (IOException e) {
+ throw new IOError(e.getMessage());
+ }
+ }
+
public void deleteAll(byte[] tableName, byte[] row, byte[] column)
throws IOError {
deleteAllTs(tableName, row, column, HConstants.LATEST_TIMESTAMP);