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'
