Re: [DISCUSS] HBASE-25299 Scan#setRowPrefixFilter Unexpected behavior

2020-11-20 Thread 唐天航
Thanks for suggestion and review.
UT updated.

Viraj Jasani  于2020年11月20日周五 下午5:36写道:

> +1 to deprecating setRowPrefixFilter. PR looks good, as I commented
> yesterday, if you could include your nice example as a unit test with this
> PR, that would be really great.
> Thanks for this nice find!
>
>
> On Thu, 19 Nov 2020 at 6:02 AM, Guanghao Zhang  wrote:
>
> > I am +1 to deprecated setRowPrefixFilter method. This method name is
> > setRowPrefixFilter but not use filter and only set start row and end
> row. I
> > thought this could be done by user.
> >
> > 唐天航  于2020年11月19日周四 上午12:45写道:
> >
> > > Hi,
> > >   I have opened an issue HBASE-25299
> > >  about
> > > Scan#setRowPrefixFilter
> > > Unexpected behavior.
> > >
> > > e.g.
> > >
> > > startRow : "112"
> > >
> > > rowPrefixFilter : "11"
> > >
> > > The Result of this scan might contain : "111", which is unexpected.
> > >
> > >   public Scan setRowPrefixFilter(byte[] rowPrefix) {
> > > if (rowPrefix == null) {
> > >   setStartRow(HConstants.EMPTY_START_ROW);
> > >   setStopRow(HConstants.EMPTY_END_ROW);
> > > } else {
> > >   this.setStartRow(rowPrefix);
> > >
>  this.setStopRow(calculateTheClosestNextRowKeyForPrefix(rowPrefix));
> > > }
> > > return this;
> > >   }
> > >
> > >  Scan#setRowPrefixFilter achieves this function by setting startRow and
> > > stopRow, ignoring the situation that startRow may have been set.
> > >
> > >
> > > I have discussed this issue with @infraio and he suggested to deprecate
> > > this method because modifying it may cause compatibility issues.
> > >
> > > Is this plan acceptable? Hope to get some suggestions.
> > >
> > >
> > > Thank you. Regards
> > >
> >
>


Re: [DISCUSS] HBASE-25299 Scan#setRowPrefixFilter Unexpected behavior

2020-11-20 Thread Viraj Jasani
+1 to deprecating setRowPrefixFilter. PR looks good, as I commented
yesterday, if you could include your nice example as a unit test with this
PR, that would be really great.
Thanks for this nice find!


On Thu, 19 Nov 2020 at 6:02 AM, Guanghao Zhang  wrote:

> I am +1 to deprecated setRowPrefixFilter method. This method name is
> setRowPrefixFilter but not use filter and only set start row and end row. I
> thought this could be done by user.
>
> 唐天航  于2020年11月19日周四 上午12:45写道:
>
> > Hi,
> >   I have opened an issue HBASE-25299
> >  about
> > Scan#setRowPrefixFilter
> > Unexpected behavior.
> >
> > e.g.
> >
> > startRow : "112"
> >
> > rowPrefixFilter : "11"
> >
> > The Result of this scan might contain : "111", which is unexpected.
> >
> >   public Scan setRowPrefixFilter(byte[] rowPrefix) {
> > if (rowPrefix == null) {
> >   setStartRow(HConstants.EMPTY_START_ROW);
> >   setStopRow(HConstants.EMPTY_END_ROW);
> > } else {
> >   this.setStartRow(rowPrefix);
> >   this.setStopRow(calculateTheClosestNextRowKeyForPrefix(rowPrefix));
> > }
> > return this;
> >   }
> >
> >  Scan#setRowPrefixFilter achieves this function by setting startRow and
> > stopRow, ignoring the situation that startRow may have been set.
> >
> >
> > I have discussed this issue with @infraio and he suggested to deprecate
> > this method because modifying it may cause compatibility issues.
> >
> > Is this plan acceptable? Hope to get some suggestions.
> >
> >
> > Thank you. Regards
> >
>