[ 
https://issues.apache.org/jira/browse/DRILL-4682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15389966#comment-15389966
 ] 

ASF GitHub Bot commented on DRILL-4682:
---------------------------------------

Github user vdiravka commented on a diff in the pull request:

    https://github.com/apache/drill/pull/549#discussion_r71921608
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/parser/DrillCompoundIdentifier.java
 ---
    @@ -69,31 +70,38 @@ public void addIndex(int index, SqlParserPos pos){
         }
       }
     
    -  public SqlNode getAsSqlNode(){
    -    if(ids.size() == 1){
    +  public SqlNode getAsSqlNode(Set<DrillCompoundIdentifier> fullSchemasSet) 
{
    --- End diff --
    
    Do you ask about clarification/github comment or code comment?
    Calcite parses the query with schema name in column name correctly. Then 
Drill reconverts SqlNode for supporting complex types 
[DRILL-932](https://issues.apache.org/jira/browse/DRILL-932). 
    But it was hardcoded: handled everything post two index as item operator 
(For column name in select clause `cp.employee.json.employee_id` SqlNode was 
`cp.employee.json['department_id']` instead of 
`cp.employee.json.department_id`).
    I added the case when full schema identifier is used in select clause to 
handle everything post two index (except schema identifier) as item operator. I 
made it by comparing column names identifiers with full schema identifiers from 
`from` and `join` clauses


> Allow full schema identifier in SELECT clause
> ---------------------------------------------
>
>                 Key: DRILL-4682
>                 URL: https://issues.apache.org/jira/browse/DRILL-4682
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: SQL Parser
>            Reporter: Andries Engelbrecht
>
> Currently Drill requires aliases to identify columns in the SELECT clause 
> when working with multiple tables/workspaces.
> Many BI/Analytical and other tools by default will use the full schema 
> identifier in the select clause when generating SQL statements for execution 
> for generic JDBC or ODBC sources. Not supporting this feature causes issues 
> and a slower adoption of utilizing Drill as an execution engine within the 
> larger Analytical SQL community.
> Propose to support 
> SELECT <storage_plugin>.<workspace>.<table>.<column> FROM 
> <storage_plugin>.<workspace>.<table>
> Also see DRILL-3510 for double quote support as per ANSI_QUOTES
> SELECT "<storage_plugin>"."<workspace>"."<table>"."<column>" FROM 
> "<storage_plugin>"."<workspace>"."<table>"
> Which is very common generic SQL being generated by most tools when dealing 
> with a generic SQL data source.



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

Reply via email to