You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Jonathan Gray (JIRA)" <ji...@apache.org> on 2009/10/26 17:08:59 UTC
[jira] Created: (HBASE-1937) Add convenience method to Result for
obtaining the timestamp of a column
Add convenience method to Result for obtaining the timestamp of a column
------------------------------------------------------------------------
Key: HBASE-1937
URL: https://issues.apache.org/jira/browse/HBASE-1937
Project: Hadoop HBase
Issue Type: Improvement
Components: client
Affects Versions: 0.20.1
Reporter: Jonathan Gray
Priority: Minor
Fix For: 0.21.0
>From Doug Meil on list:
{quote}
I'd like to suggest a convenience method on Result for getting the timestamp of a value if it hasn't already been suggested before.
Getting the value is easy from a Result instance...
byte b[] = r.getValue( Bytes.toBytes("family"), Bytes.toBytes("qualifier") );
... but getting the timestamp from KeyValue is a little tedious...
KeyValue kv[] = r.raw();
for (int j = 0; j < kv.length; j++) {
String col = Bytes.toString( kv[j].getColumn() ) );
// make sure you get the timestamp from the right column, etc etc.
long ll = kv[j].getTimestamp();
(etc...)
Is it reasonable to have something like...
long = r.getTimestamp( family, qualifier );
{quote}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HBASE-1937) Add convenience method to Result for
obtaining the timestamp of a column
Posted by "Jonathan Gray (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HBASE-1937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12770075#action_12770075 ]
Jonathan Gray commented on HBASE-1937:
--------------------------------------
Right now there are two primary ways to get data out of a Result. You either grab the KVs and iterate them directly, or you use one of the NavigableMaps.
The problem with the Maps are that they end up only containing a portion of the data for each endpoint (for example, after getting to the value as Doug describes, we can't determine the timestamp).
Maybe we could add a few methods like Result.getKeyValues(...) that returned a subset of the total KVs, but would make more sense to someone and be easier to deal with in clients.
For example:
{noformat}
// Return all keys in the specified family
KeyValue [] kvs = result.getKeyValues(family);
// Return all versions of the specified column
KeyValue [] kvs = result.getKeyValues(family, qualifier);
// Iterate versions of the column
for(KeyValue kv : kvs) {
byte [] value = kv.getValue();
long stamp = kv.getTimestamp();
}
{noformat}
> Add convenience method to Result for obtaining the timestamp of a column
> ------------------------------------------------------------------------
>
> Key: HBASE-1937
> URL: https://issues.apache.org/jira/browse/HBASE-1937
> Project: Hadoop HBase
> Issue Type: Improvement
> Components: client
> Affects Versions: 0.20.1
> Reporter: Jonathan Gray
> Priority: Minor
> Fix For: 0.21.0
>
>
> From Doug Meil on list:
> {quote}
> I'd like to suggest a convenience method on Result for getting the timestamp of a value if it hasn't already been suggested before.
> Getting the value is easy from a Result instance...
> byte b[] = r.getValue( Bytes.toBytes("family"), Bytes.toBytes("qualifier") );
> ... but getting the timestamp from KeyValue is a little tedious...
> KeyValue kv[] = r.raw();
> for (int j = 0; j < kv.length; j++) {
> String col = Bytes.toString( kv[j].getColumn() ) );
> // make sure you get the timestamp from the right column, etc etc.
> long ll = kv[j].getTimestamp();
> (etc...)
> Is it reasonable to have something like...
> long = r.getTimestamp( family, qualifier );
> {quote}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.