You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/05/05 05:57:26 UTC
svn commit: r771545 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
Author: stack
Date: Tue May 5 03:57:26 2009
New Revision: 771545
URL: http://svn.apache.org/viewvc?rev=771545&view=rev
Log:
HBASE-889 The current Thrift API does not allow a new scanner to be created without supplying a column list unlike the other APIs.
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=771545&r1=771544&r2=771545&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Tue May 5 03:57:26 2009
@@ -193,6 +193,9 @@
(Evgeny Ryabitskiy via Stack)
HBASE-1112 we will lose data if the table name happens to be the logs' dir
name (Samuel Guo via Stack)
+ HBASE-889 The current Thrift API does not allow a new scanner to be
+ created without supplying a column list unlike the other APIs.
+ (Tim Sell via Stack)
Release 0.19.0 - 01/21/2009
INCOMPATIBLE CHANGES
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java?rev=771545&r1=771544&r2=771545&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java Tue May 5 03:57:26 2009
@@ -81,6 +81,22 @@
protected HashMap<Integer, Scanner> scannerMap = null;
/**
+ * Returns a list of all the column families for a given htable.
+ *
+ * @param table
+ * @return
+ * @throws IOException
+ */
+ byte[][] getAllColumns(HTable table) throws IOException {
+ HColumnDescriptor[] cds = table.getTableDescriptor().getColumnFamilies();
+ byte[][] columns = new byte[cds.length][];
+ for (int i = 0; i < cds.length; i++) {
+ columns[i] = cds[i].getNameWithColon();
+ }
+ return columns;
+ }
+
+ /**
* Creates and returns an HTable instance from a given table name.
*
* @param tableName
@@ -468,9 +484,13 @@
List<byte[]> columns) throws IOError {
try {
HTable table = getTable(tableName);
- Scanner scanner = table.getScanner(columns.toArray(new byte[0][]),
- startRow);
- return addScanner(scanner);
+ byte[][] columnsArray = null;
+ if ((columns == null) || (columns.size() == 0)) {
+ columnsArray = getAllColumns(table);
+ } else {
+ columnsArray = columns.toArray(new byte[0][]);
+ }
+ return addScanner(table.getScanner(columnsArray, startRow));
} catch (IOException e) {
throw new IOError(e.getMessage());
}
@@ -480,9 +500,13 @@
byte[] stopRow, List<byte[]> columns) throws IOError, TException {
try {
HTable table = getTable(tableName);
- Scanner scanner = table.getScanner(columns.toArray(new byte[0][]),
- startRow, stopRow);
- return addScanner(scanner);
+ byte[][] columnsArray = null;
+ if ((columns == null) || (columns.size() == 0)) {
+ columnsArray = getAllColumns(table);
+ } else {
+ columnsArray = columns.toArray(new byte[0][]);
+ }
+ return addScanner(table.getScanner(columnsArray, startRow, stopRow));
} catch (IOException e) {
throw new IOError(e.getMessage());
}
@@ -492,9 +516,13 @@
List<byte[]> columns, long timestamp) throws IOError, TException {
try {
HTable table = getTable(tableName);
- Scanner scanner = table.getScanner(columns.toArray(new byte[0][]),
- startRow, timestamp);
- return addScanner(scanner);
+ byte[][] columnsArray = null;
+ if ((columns == null) || (columns.size() == 0)) {
+ columnsArray = getAllColumns(table);
+ } else {
+ columnsArray = columns.toArray(new byte[0][]);
+ }
+ return addScanner(table.getScanner(columnsArray, startRow, timestamp));
} catch (IOException e) {
throw new IOError(e.getMessage());
}
@@ -505,9 +533,14 @@
throws IOError, TException {
try {
HTable table = getTable(tableName);
- Scanner scanner = table.getScanner(columns.toArray(new byte[0][]),
- startRow, stopRow, timestamp);
- return addScanner(scanner);
+ byte[][] columnsArray = null;
+ if ((columns == null) || (columns.size() == 0)) {
+ columnsArray = getAllColumns(table);
+ } else {
+ columnsArray = columns.toArray(new byte[0][]);
+ }
+ return addScanner(table.getScanner(columnsArray, startRow, stopRow,
+ timestamp));
} catch (IOException e) {
throw new IOError(e.getMessage());
}