You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2014/07/19 16:38:38 UTC

[jira] [Commented] (PHOENIX-1102) Query Finds No Rows When Using Multiple Column Families

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

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

>From Anoop:
After some debug finding some root cause for this.

WhereCompiler#setScanFilter
case MULTIPLE:
                filter = disambiguateWithFamily ? new MultiCFCQKeyValueComparisonFilter(whereClause) : new MultiCQKeyValueComparisonFilter(whereClause);

We use MutiCFCQFilter only when disambiguateWithFamily is true.

This can be true only when same column q name across 2 CFs and both in where clause.
In test I have like where  a.col1 = ? b.col2 = ?

But here disambiguateWithFamilywill be false .  But in this case MultiCFCQKeyValueComparisonFilter should get used.  

Returning MultiCFCQKeyValueComparisonFilter from above code with out boolean check will make test to pass.  

> 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)