Ankit Singhal created PHOENIX-5884:
--------------------------------------

             Summary: Join query return empty result when filters for both the 
tables are present
                 Key: PHOENIX-5884
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5884
             Project: Phoenix
          Issue Type: Bug
            Reporter: Ankit Singhal
            Assignee: Ankit Singhal


Let's assume DDL to be same for both the tables involved in a join
{code}
CREATE TABLE LeftTable (    id1 CHAR(6) NOT NULL,    id2 VARCHAR(22) NOT NULL,  
  id3 VARCHAR(12) NOT NULL,    id4 CHAR(2) NOT NULL,    id5 CHAR(6) NOT NULL,   
  id6 VARCHAR(200) NOT NULL,    id7 VARCHAR(50) NOT NULL,    ts TIMESTAMP ,    
CONSTRAINT PK_JOIN_AND_INTERSECTION_TABLE PRIMARY 
KEY(id1,id2,id3,id4,id5,id6,id7))
{code}

Following query return right results
{code}
SELECT m.*,r.* FROM LEFT_TABLE m join RIGHT_TABLE r  on m.id3 = r.id3 and m.id2 
= r.id2  and m.id4 = r.id4  and m.id5 = r.id5  and m.id1 = r.id1  and m.ts = 
r.ts  where  r.id1 IN ('201904','201905')  and r.id2 = 'ID2_VAL'  and r.id3 IN 
('ID3_VAL','ID3_VAL2') 
{code

but When to optimize the query, filters for the left table are also added , 
query returned empty result . Though the filters are based on join condition so 
semantically above query and below query should be same.
{code}
SELECT m.*,r.* FROM LEFT_TABLE m join RIGHT_TABLE r  on m.id3 = r.id3  and 
m.id2 = r.id2  and m.id4 = r.id4 and m.id5 = r.id5  and m.id1 = r.id1 and m.ts 
= r.ts  where m.id1 IN ('201904','201905')  and r.id1 IN ('201904','201905') 
and r.id2 = 'ID2_VAL'             and m.id3 IN ('ID3_VAL','ID3_VAL2')  and 
r.id3 IN ('ID3_VAL','ID3_VAL2') 
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to