I reproduced the failed test (testAddColumnWithColumnRangeFilter) after modifying your test case to fit master branch.
The reason for one Cell being returned is that ExplicitColumnTracker is used by ScanQueryMatcher to first check if the column is part of the requested columns (f:fc in your case). The other columns don't pass this check, hence they're not included in the result. Before this part of code is changed, can I ask why you need to call g.addColumn() when g has ColumnRangeFilter associated with it. Cheers On Thu, Jan 15, 2015 at 6:22 PM, Taeyun Kim <[email protected]> wrote: > (Sorry if this mail is a duplicate) > > Hi Ted, > > I've attached 2 unit test classes. > > Both have one failed test. > > - > HBaseAddColumnWithColumnRangeFilterTest1.testAddColumnWithColumnRangeFilter(): > Expected: 10, Actual 1 > - > HBaseAddColumnWithColumnRangeFilterTest2.testAddColumnWithColumnRangeFilter(): > Result is empty > > If the tests have problems, please let me know. > > > -----Original Message----- > From: Ted Yu [mailto:[email protected]] > Sent: Thursday, January 15, 2015 6:59 PM > To: [email protected] > Subject: Re: Get addColumn + ColumnRangeFilter > > Can you write a unit test which shows this behavior? > > Thanks > > > > > On Jan 14, 2015, at 9:09 PM, Taeyun Kim < > [email protected]> wrote: > > > > Hi, > > > > > > > > I have a situation that both Get.addColumn() and Get.setFilter(new > > ColumnRangeFilter(…)) needed to Get. > > > > The source code snippet is as follows: > > > > > > > > Get g = new Get(getRowKey(lfileId)); > > > > g.addColumn(Schema.ColumnFamilyNameBytes, MetaColumnNameBytes); > > > > g.setFilter(new ColumnRangeFilter(Bytes.toBytes(name), false, > > > > Bytes.toBytes(name + "~"), false)); > > > > Result r = table.get(g); > > > > > > > > if (r.isEmpty()) > > > > throw new FileNotFoundException( > > > > String.format("%d:%d:%s", projectId, lfileId, name)); > > > > > > > > When g.addColumn() is commented out, the Result is not empty, while > > with g.addColumn the Result is empty(FileNotFoundException is thrown). > > > > Is it illegal to use both methods? > > > > > > > > BTW, ther version of HBase used is 0.98. (Hortonworks HDP 2.1) > > > > > > > > Thanks. >
