Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-26762

Scan#setRowPrefixFilter incorrectly marked as deprecated

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0.0-alpha-2
    • None
    • Client, scan
    • None
    • Reviewed


      Issue HBASE-25299 is about the Scan#setRowPrefixFilter having not the expected effects when using also the setStartRow and/or setStopRow.

      The setRowPrefixFilter is intended to make setting the right startRow and stopRow for prefix scans. So it was always intended of using it instead of doing separate setStartRow and/or setStopRow calls.

      The reason for adding this to the Scan (~ 8 years ago, HBASE-11990 ) was that calculating the correct start and stop row for doing the very efficient prefix scan is very very hard to do right in the generic case.

      This is still a current usecase and many of my applications rely on this function (I even prefer the HBase Client when connecting to Google BigTable for this method).

      With issue HBASE-25299 it has now been marked as deprecated.
      Quote from the changes made in HBASE-25299:

      @deprecated since 3.0.0. The scan result might be unexpected in some cases.

      Yes, if you use this very valuable method incorrectly it will yield incorrect results.
      I do not consider this a valid reason to deprecate it.

      So I do agree with the confusion of the effects as described in HBASE-25299 which should be fixed with additional documentation.

      I disagree with the deprecation of this method.

      I'll put up a pull request in which I improve the documentation and remove the deprecation.



          This comment will be Viewable by All Users Viewable by All Users


            nielsbasjes Niels Basjes
            nielsbasjes Niels Basjes
            0 Vote for this issue
            3 Start watching this issue




                Issue deployment