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

James Taylor commented on PHOENIX-1102:
---------------------------------------

The intent of disambiguateWithFamily is to determine if we need the cf to 
disambiguate the KeyValue. It should only be necessary if there are multiple 
columns with the *same name* but in different column families. Otherwise, we 
only need to compare the cq to determine a match.

Looking at it a bit, it looks like the culprit is isFamilyEssential:
{code}
    public boolean isFamilyEssential(byte[] name) {
        return Bytes.compareTo(cf, name) == 0;
    }
{code}

Instead, we need to push the the MultiCQKeyValueComparisonFilter all of the cf
being used and have an implementation that looks like the one in
MultiCFCQKeyValueComparisonFilter:
{code}
    public boolean isFamilyEssential(byte[] name) {
        return cfSet.contains(name);
    }
{code}


> Query Finds No Rows When Using Multiple Column Families
> -------------------------------------------------------
>
>                 Key: PHOENIX-1102
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1102
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 4.0.0, 5.0.0
>            Reporter: James Taylor
>            Assignee: Anoop Sam John
>
> When using multiple column families, query does not find all expected rows.
>  
> My table schema:
> CREATE TABLE IF NOT EXISTS FAMILY_TEST (
>   NUM1 INTEGER NOT NULL,
>   AA.NUM2 INTEGER,
>   BB.NUM3 INTEGER,
>   CONSTRAINT my_pk PRIMARY KEY (NUM1));
> I populated it with one row, assigning 1 to each field.  I can verify that 
> the record is there, but I can not get a simple expression working that uses 
> fields across two column families:
> SELECT * FROM FAMILY_TEST;
>       NUM1       NUM2       NUM3 
> ---------- ---------- ---------- 
>          1          1          1 
> Time: 0.038 sec(s)
> SELECT * FROM FAMILY_TEST WHERE NUM2=1 AND NUM3=1;
> no rows selected
> Time: 0.039 sec(s)
> I understand that columns to be queried together should usually be in the 
> same column family for efficiency, but I did not expect my second query to 
> not work at all.  Or if it is not supported, I would expect an error.  I get 
> the same results if I use AA.NUM2 and BB.NUM3 as well.
> I am using Phoenix 3.0.0.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to