[ 
https://issues.apache.org/jira/browse/HBASE-4155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13078356#comment-13078356
 ] 

Jean-Daniel Cryans commented on HBASE-4155:
-------------------------------------------

I dug back in the commits to see when this was introduced, and it seems that 
this was done as part of the uber refactoring done in HBASE-1304 two years ago. 
The behavior does seem broken tho, it should set the timestamp and not a time 
range (that would be another method). How it works right seems 
counter-intuitive.

So I would be +1 on fixing it, but the main issue would be that some users 
might already rely on the current behavior (I know that we don't here).

Others using Thrift want to comment?

> the problem in hbase thrift client when scan/get rows by timestamp
> ------------------------------------------------------------------
>
>                 Key: HBASE-4155
>                 URL: https://issues.apache.org/jira/browse/HBASE-4155
>             Project: HBase
>          Issue Type: Bug
>          Components: thrift
>    Affects Versions: 0.90.0
>            Reporter: zezhou
>   Original Estimate: 1m
>  Remaining Estimate: 1m
>
> I want to scan rows by specified timestamp. I use following hbase shell 
> command :
> scan 'testcrawl',{TIMESTAMP=>1312268202071} 
> ROW                                         COLUMN+CELL                       
>                                                                               
>               
>  put1.com                                   column=crawl:data, 
> timestamp=1312268202071, value=<html>put1</html>                              
>                             
>  put1.com                                   column=crawl:type, 
> timestamp=1312268202071, value=html                                           
>                              
>  put1.com                                   column=links:outlinks, 
> timestamp=1312268202071, value=www.163.com;www.sina.com 
> As I expected, I can get the rows which timestamp is 1312268202071.
> But when I use thift client to do the same thing ,the return data is the rows 
> which time before specified timestamp ,  not the same as hbase 
> shell.following is timestamp of return data:
> 1312179170000
> 1312268202059
> I look up the source in  
> hbase/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java, it use 
> following code to set time parameter .
> scan.setTimeRange(Long.MIN_VALUE, timestamp);
> This cause thrift client return rows before specified row ,not the rows 
> timestamp specified.
> But in hbase client and avro client ,it use following code to set time 
> parameter.
> scan.setTimeStamp(timestamp);
> this will return rows timestamp specified.
> Is this a feature or a bug in thrift client ?
> if this is a feature, which method in thrift client can get the rows by 
> specified timestamp?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to