You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Till Haug (JIRA)" <ji...@apache.org> on 2016/06/30 08:38:10 UTC
[jira] [Created] (DRILL-4757) Column Name Clash experienced with
JDBC
Till Haug created DRILL-4757:
--------------------------------
Summary: Column Name Clash experienced with JDBC
Key: DRILL-4757
URL: https://issues.apache.org/jira/browse/DRILL-4757
Project: Apache Drill
Issue Type: Bug
Components: Storage - JDBC
Affects Versions: 1.6.0, 1.7.0
Reporter: Till Haug
If there are two columns with the same name in two different tables, there seems to be a conflict.
Example 1:
select t.emp_no as col_one, d.emp_no as col_two
from mysqlaws.employees.titles as t, mysqlaws.employees.dept_manager as d
where t.emp_no = d.emp_no
Result 1:
emp_no emp_no0
110022 null
110022 null
110039 null
...
Expected Result 1:
col_one col_two
110022 110022
110022 110022
110039 110039
...
EXPLAIN PLAN FOR Example 1:
+------+------+
| text | json |
+------+------+
| 00-00 Screen
00-01 Project(col_one=[$0], col_two=[$1])
00-02 Project(col_one=[$2], col_two=[$6])
00-03 Jdbc(sql=[SELECT *
FROM `employees`.`titles`
INNER JOIN `employees`.`dept_manager` ON `titles`.`emp_no` = `dept_manager`.`emp_no`])
| {
"head" : {
"version" : 1,
"generator" : {
"type" : "ExplainHandler",
"info" : ""
},
"type" : "APACHE_DRILL_PHYSICAL",
"options" : [ ],
"queue" : 0,
"resultMode" : "EXEC"
},
"graph" : [ {
"pop" : "jdbc-scan",
"@id" : 3,
"sql" : "SELECT *\nFROM `employees`.`titles`\nINNER JOIN `employees`.`dept_manager` ON `titles`.`emp_no` = `dept_manager`.`emp_no`",
"config" : {
"type" : "jdbc",
"driver" : "com.mysql.jdbc.Driver",
"url" : "jdbc:mysql://vz-test.cbnbj0e1vrwg.eu-central-1.rds.amazonaws.com:8008",
"username" : "vz_master",
"password" : "vzpassword",
"enabled" : true
},
"userName" : "",
"cost" : 100.0
}, {
"pop" : "project",
"@id" : 2,
"exprs" : [ {
"ref" : "`col_one`",
"expr" : "`from_date`"
}, {
"ref" : "`col_two`",
"expr" : "`from_date0`"
} ],
"child" : 3,
"initialAllocation" : 1000000,
"maxAllocation" : 10000000000,
"cost" : 100.0
}, {
"pop" : "project",
"@id" : 1,
"exprs" : [ {
"ref" : "`col_one`",
"expr" : "`col_one`"
}, {
"ref" : "`col_two`",
"expr" : "`col_two`"
} ],
"child" : 2,
"initialAllocation" : 1000000,
"maxAllocation" : 10000000000,
"cost" : 100.0
}, {
"pop" : "screen",
"@id" : 0,
"child" : 1,
"initialAllocation" : 1000000,
"maxAllocation" : 10000000000,
"cost" : 100.0
} ]
}
Example 2:
select t.from_date as col_one, d.from_date as col_two
from mysqlaws.employees.titles as t, mysqlaws.employees.dept_manager as d
where t.emp_no = d.emp_no
Result 2:
col_one col_two
1985-01-01 null
1985-01-01 null
1991-10-01 null
...
Expected Result 2:
col_one col_two
1985-01-01 1985-01-01
1991-10-01 1985-01-01
1991-10-01 1991-10-01
...
In Example 1 there is no rename happening and the col_two is all nulls.
In Example 2 the rename is happening, but the col_two is still all nulls.
When we run these queries directly against the databases (both mssql and mysql) they work as expected.
If you'd like to directly reproduce it, feel free to use our server we set up with the following storage plugin
{
"type": "jdbc",
"driver": "com.mysql.jdbc.Driver",
"url": "jdbc:mysql://vz-test.cbnbj0e1vrwg.eu-central-1.rds.amazonaws.com:8008",
"username": "vz_master",
"password": "vzpassword",
"enabled": false
}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)