[ 
https://issues.apache.org/jira/browse/DRILL-4757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Till Haug updated DRILL-4757:
-----------------------------
    Priority: Critical  (was: Major)

> 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
>            Priority: Critical
>
> 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)

Reply via email to