You mean if used independently? Yes, they do.

Regards,
Shahab

On Tue, Nov 18, 2014 at 10:51 AM, Ted Yu <[email protected]> wrote:

> Have you verified that at least one of the following (when used alone)
> returns data ?
> (A and B), (B and C), (D and E)
>
> Thanks
>
> On Mon, Nov 17, 2014 at 9:27 PM, Shahab Yunus <[email protected]>
> wrote:
>
> > Missed couple of things.
> >
> > 1- I am using SingleColumnValueFilter and the comparator
> > is BinaryComparator which is passed into it.
> >
> > 2- CDH 5.1.0
> > (Hbase is 0.98.1-cdh5.1.0)
> >
> > Regards,
> > Shahab
> >
> > On Tue, Nov 18, 2014 at 12:22 AM, Shahab Yunus <[email protected]>
> > wrote:
> >
> > > Hi,
> > >
> > > I have data where each row has start and end time stored in UTC (long).
> > > The table is created through Phoenix and the columns have type
> > > UNSIGNED_DATE (which according to Phoenix docs
> > > <http://phoenix.apache.org/language/datatypes.html#unsigned_date_type>
> > > does Hbase.toBytes(long) underneath for 8 bye long). I am storing data
> in
> > > this table using regular Bytes.toBytes from HBase api as well.
> > >
> > > Now I want to query data given a time range, and get all rows lying
> > within
> > > or overlapping the search range. Pretty standard scenario.
> > >
> > > For this I create a set of filtersList. A hierarchy of filtersList and
> > > filters in fact.
> > >
> > > If search criteria timerange  is denoted by *sd* and *ed*
> > >
> > > And each row's date columns are denoted as *s* and *e* (signifying
> start
> > > and end datetimes.)
> > >
> > > These 4 filterLists are created as per logic given below....
> > >
> > > filterListLeft (must past all)= This further contains 2 filters= (sd<=
> s
> > > and ed>=s)
> > >
> > > filterListRight (must past all)=This further contains 2 filters= (sd<=
> e
> > > and ed>=e)
> > >
> > > filterListOverlap (must past all)=This further contains 2 filters=
> (sd<=
> > s
> > > and ed>=e)
> > >
> > > filterListWiithin (must past all)= This further contains 2 filters=
> (sd>=
> > > s and ed<=e)
> > >
> > >
> > > Then I add these 4 filterLists into another filterList and that must
> past
> > > one. I realize that some records might satisfy more than one filter
> > above.
> > > But that is OK.
> > >
> > > parentFilterList = new FilterList(must past one)
> > > parentFilterList.addFilter(filterListLeft):
> > > parentFilterList.addFilter(filterListRight):
> > > parentFilterList.addFilter(filterListOverlap):
> > > parentFilterList.addFilter(filterListWithin):
> > >
> > > Note all filters have setFilterIfMissing = true.
> > >
> > > Then I pass parentFilterList.addFilter to the scanner.
> > >
> > > So it is like= (A and B) or (B and C) or (D and E) or (F and G)
> > >
> > > But what is happening is that I only get data back for the records
> > > matching filterListWithin. No records which satisfy the other 3
> > filterList
> > > criteria comeback. The data exists and is valid form for other
> > scenarios. I
> > > can also view it through Phoenix UI tools.
> > >
> > > What am I missing? Could this be a phoenix issue?
> > >
> > > Thanks like always.
> > >
> > > Regards,
> > > Shahab
> > >
> >
>

Reply via email to