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

Arina Ielchiieva updated DRILL-4903:
------------------------------------
    Description: 
When any Jdbc Plugin enabled (ex: MySql) implicit columns are returned as part 
of select * query. 
Simple json:
{noformat}
{id: 1, name: "Bob"}
{noformat}

When Jdbc plugin is enabled:
{noformat}
0: jdbc:drill:zk=local> select * from dfs.`/home/osboxes/files/simple.json`;
+----------------------------------+----------------------+--------------+---------+-----+-------+
|               fqn                |       filepath       |   filename   | 
suffix  | id  | name  |
+----------------------------------+----------------------+--------------+---------+-----+-------+
| /home/osboxes/files/simple.json  | /home/osboxes/files  | simple.json  | json 
   | 1   | Bob   |
+----------------------------------+----------------------+--------------+---------+-----+-------+
1 row selected (0.203 seconds)
0: jdbc:drill:zk=local> explain plan for select * from 
dfs.`/home/osboxes/files/simple.json`;
+------+------+
| text | json |
+------+------+
| 00-00    Screen
00-01      Scan(groupscan=[EasyGroupScan 
[selectionRoot=file:/home/osboxes/files/simple.json, numFiles=1, columns=[`*`], 
files=[file:/home/osboxes/files/simple.json]]])
{noformat}

When Jdbc plugin is disabled:
{noformat}
0: jdbc:drill:zk=local> select * from dfs.`/home/osboxes/files/simple.json`;
+-----+-------+
| id  | name  |
+-----+-------+
| 1   | Bob   |
+-----+-------+
1 row selected (0.547 seconds)
0: jdbc:drill:zk=local> explain plan for select * from 
dfs.`/home/osboxes/files/simple.json`;
+------+------+
| text | json |
+------+------+
| 00-00    Screen
00-01      Project(*=[$0])
00-02        Scan(groupscan=[EasyGroupScan 
[selectionRoot=file:/home/osboxes/files/simple.json, numFiles=1, columns=[`*`], 
files=[file:/home/osboxes/files/simple.json]]])
{noformat}

The problem is that implicit columns are removed from queries with select * 
clause during project stage. But JdbcStoragePlugin adds 
ProjectRemoveRules.class to rules which simplifies query plan and removes 
project stage.

https://github.com/apache/drill/blob/master/contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcStoragePlugin.java#L140

  was:
When any Jdbc Plugin enabled (ex: MySql) implicit columns are returned as part 
of select * query. 
Simple json:
{noformat}
{id: 1, name: "Bob"}
{noformat}

When Jdbc plugin is enabled:
{noformat}
0: jdbc:drill:zk=local> select * from dfs.`/home/osboxes/files/simple.json`;
+----------------------------------+----------------------+--------------+---------+-----+-------+
|               fqn                |       filepath       |   filename   | 
suffix  | id  | name  |
+----------------------------------+----------------------+--------------+---------+-----+-------+
| /home/osboxes/files/simple.json  | /home/osboxes/files  | simple.json  | json 
   | 1   | Bob   |
+----------------------------------+----------------------+--------------+---------+-----+-------+
1 row selected (0.203 seconds)
0: jdbc:drill:zk=local> explain plan for select * from 
dfs.`/home/osboxes/files/simple.json`;
+------+------+
| text | json |
+------+------+
| 00-00    Screen
00-01      Scan(groupscan=[EasyGroupScan 
[selectionRoot=file:/home/osboxes/files/simple.json, numFiles=1, columns=[`*`], 
files=[file:/home/osboxes/files/simple.json]]])
 | {
{noformat}

When Jdbc plugin is disabled:
{noformat}
0: jdbc:drill:zk=local> select * from dfs.`/home/osboxes/files/simple.json`;
+-----+-------+
| id  | name  |
+-----+-------+
| 1   | Bob   |
+-----+-------+
1 row selected (0.547 seconds)
0: jdbc:drill:zk=local> explain plan for select * from 
dfs.`/home/osboxes/files/simple.json`;
+------+------+
| text | json |
+------+------+
| 00-00    Screen
00-01      Project(*=[$0])
00-02        Scan(groupscan=[EasyGroupScan 
[selectionRoot=file:/home/osboxes/files/simple.json, numFiles=1, columns=[`*`], 
files=[file:/home/osboxes/files/simple.json]]])
{noformat}

The problem is that implicit columns are removed from queries with select * 
clause during project stage. But JdbcStoragePlugin adds 
ProjectRemoveRules.class to rules which simplifies query plan and removes 
project stage.

https://github.com/apache/drill/blob/master/contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcStoragePlugin.java#L140


> Implicit columns are shown when Jdbc plugin is enabled
> ------------------------------------------------------
>
>                 Key: DRILL-4903
>                 URL: https://issues.apache.org/jira/browse/DRILL-4903
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.8.0
>            Reporter: Arina Ielchiieva
>            Priority: Minor
>             Fix For: Future
>
>
> When any Jdbc Plugin enabled (ex: MySql) implicit columns are returned as 
> part of select * query. 
> Simple json:
> {noformat}
> {id: 1, name: "Bob"}
> {noformat}
> When Jdbc plugin is enabled:
> {noformat}
> 0: jdbc:drill:zk=local> select * from dfs.`/home/osboxes/files/simple.json`;
> +----------------------------------+----------------------+--------------+---------+-----+-------+
> |               fqn                |       filepath       |   filename   | 
> suffix  | id  | name  |
> +----------------------------------+----------------------+--------------+---------+-----+-------+
> | /home/osboxes/files/simple.json  | /home/osboxes/files  | simple.json  | 
> json    | 1   | Bob   |
> +----------------------------------+----------------------+--------------+---------+-----+-------+
> 1 row selected (0.203 seconds)
> 0: jdbc:drill:zk=local> explain plan for select * from 
> dfs.`/home/osboxes/files/simple.json`;
> +------+------+
> | text | json |
> +------+------+
> | 00-00    Screen
> 00-01      Scan(groupscan=[EasyGroupScan 
> [selectionRoot=file:/home/osboxes/files/simple.json, numFiles=1, 
> columns=[`*`], files=[file:/home/osboxes/files/simple.json]]])
> {noformat}
> When Jdbc plugin is disabled:
> {noformat}
> 0: jdbc:drill:zk=local> select * from dfs.`/home/osboxes/files/simple.json`;
> +-----+-------+
> | id  | name  |
> +-----+-------+
> | 1   | Bob   |
> +-----+-------+
> 1 row selected (0.547 seconds)
> 0: jdbc:drill:zk=local> explain plan for select * from 
> dfs.`/home/osboxes/files/simple.json`;
> +------+------+
> | text | json |
> +------+------+
> | 00-00    Screen
> 00-01      Project(*=[$0])
> 00-02        Scan(groupscan=[EasyGroupScan 
> [selectionRoot=file:/home/osboxes/files/simple.json, numFiles=1, 
> columns=[`*`], files=[file:/home/osboxes/files/simple.json]]])
> {noformat}
> The problem is that implicit columns are removed from queries with select * 
> clause during project stage. But JdbcStoragePlugin adds 
> ProjectRemoveRules.class to rules which simplifies query plan and removes 
> project stage.
> https://github.com/apache/drill/blob/master/contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcStoragePlugin.java#L140



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to