There was a similar (but not identical) issue reported as 
https://issues.apache.org/jira/browse/DRILL-4374.  In that case, an error was 
returned, but the root cause seemed to stem from using the Postgres JDBC 
storage plugin to access tables with the same column name.  From the comment 
thread on the bug, it looks like the bug wasn’t reproducible.  So, if you have 
a consistent repro with schema and data, it would be good to log a new bug with 
that repro info.

-- Zelaine

On 8/21/17, 3:22 PM, "Kunal Khatua" <[email protected]> wrote:

    Could you share the profile ( *.sys.drill file or the 
http://<hostname>:8047/profiles/<queryId>.json ) ?
    
    This might be a bug with the JDBC Storage plugin. 
    
    A quick way to validate this would be to have the similar data as 2 
text/parquet tables and have Drill read from that. If we don't see an issue, 
then it is most likely a storage plugin bug, for which you should file a JIRA.
    
    
    
    -----Original Message-----
    From: Hielke Hoeve [mailto:[email protected]] 
    Sent: Monday, August 21, 2017 7:05 AM
    To: [email protected]
    Subject: Drill selects column with the same name of a different table 
    
    Hi everyone. I just started using Drill/Zeppelin and I’m facing a strange 
problem. I have a PostgreSQL database linked to a Drill instance. Whenever I am 
trying to join 2 tables which both have a column name and whenever I want to 
select this name Drill selects the wrong name column. What am I doing wrong?
    
    Given the following 2 tables:
    
    Department
    | id | name |
    |----|------|
    | 1  |  A   |
    | 2  |  B   |
    
    Employee
    | id | name | dept | salary |
    |----|------|------|--------|
    | 1  |  U   |  1   |  100   |
    | 2  |  V   |  1   |   75   |
    | 3  |  W   |  1   |  120   |
    | 4  |  X   |  2   |   95   |
    | 5  |  Y   |  2   |  140   |
    | 6  |  Z   |  2   |   55   |
    
    Running
    
    select employee.name, employee.salary
    from employee
    inner join department on employee.dept = department.id where 
department.name = 'A'
    
    returns
    
    | name | salary |
    |------|--------|
    |  A   |  100   |
    |  A   |  75    |
    |  A   |  120   |
    
    Running
    
    select dept.name, employee.salary
    from employee
    inner join department on employee.dept = department.id where 
department.name = 'A'
    
    returns
    
    | name | salary |
    |------|--------|
    | null |  100   |
    | null |  75    |
    | null |  120   |
    
    
    What does work, but seems very silly to me, is:
    
    select dept.name, employee.salary
    from employee
    inner join (select id, name as deptname from department) as department on 
employee.dept = department.id where department.deptname = 'A'
    
    
    

Reply via email to