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

Jay Narale updated CALCITE-5248:
--------------------------------
    Description: 
Based on the discussion here [1].

The goal is to support exteneded column aliasing in where , on clause and 
select List. An example is Teradata [2]

A few edge cases to be considered for proper semantics

1. When SubQuery( maybe table) in from and Alias have the same name eg 
{code:java}
 SELECT  c_customerId as c FROM ( SELECT c FROM table) WHERE c = 'test' {code}
{code:java}
 SELECT  trim(c_customer_name) as c FROM ( SELECT c FROM table) WHERE c = 
'test' {code}
Comments 

In a database, the execution order is *FROM > WHERE > SELECT* so the semantics 
should be that column in the subquery is given priority and a filter is  
applied to that column

 

Some edge cases that need consideration 
[doc|https://docs.google.com/document/d/1bt_5CmRg97gh_j_lsVrnoEDn5N3TRNGeYcyX4uGD_0g/edit]

 

 [1] -  [https://lists.apache.org/thread/7zk5wqgsk64903w5mbt72pwjmsftx0kz]

 [2] - 
[https://docs.teradata.com/r/Teradata-Database-SQL-Fundamentals/June-2017/Basic-SQL-Syntax/Referencing-Object-Names-in-a-Request/Using-a-Column-Alias]
 

  was:
Based on the discussion here [1].

The goal is to support exteneded column aliasing in where , on clause and 
select List. An example is Teradata [2]

A few edge cases to be considered for proper semantics

1. When SubQuery( maybe table) in from and Alias have the same name eg 
{code:java}
 SELECT  c_customerId as c FROM ( SELECT c FROM table) WHERE c = 'test' {code}
{code:java}
 SELECT  trim(c_customer_name) as c FROM ( SELECT c FROM table) WHERE c = 
'test' {code}
Comments 

In a database, the execution order is *FROM > WHERE > SELECT* so the semantics 
should be that column in the subquery is given priority and a filter is  
applied to that column

Behavior in Teradata

Consistent with the above, a Filter is applied to the SubQuery

2. When a correlated column outside the query has the same name as the alias

TBD

      Here I think the behavior should be identical to the behavior in OrderBy

 

 [1] -  [https://lists.apache.org/thread/7zk5wqgsk64903w5mbt72pwjmsftx0kz]

 [2] - 
[https://docs.teradata.com/r/Teradata-Database-SQL-Fundamentals/June-2017/Basic-SQL-Syntax/Referencing-Object-Names-in-a-Request/Using-a-Column-Alias]
 


> Support Extended Column Aliasing
> --------------------------------
>
>                 Key: CALCITE-5248
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5248
>             Project: Calcite
>          Issue Type: New Feature
>            Reporter: Jay Narale
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Based on the discussion here [1].
> The goal is to support exteneded column aliasing in where , on clause and 
> select List. An example is Teradata [2]
> A few edge cases to be considered for proper semantics
> 1. When SubQuery( maybe table) in from and Alias have the same name eg 
> {code:java}
>  SELECT  c_customerId as c FROM ( SELECT c FROM table) WHERE c = 'test' {code}
> {code:java}
>  SELECT  trim(c_customer_name) as c FROM ( SELECT c FROM table) WHERE c = 
> 'test' {code}
> Comments 
> In a database, the execution order is *FROM > WHERE > SELECT* so the 
> semantics should be that column in the subquery is given priority and a 
> filter is  applied to that column
>  
> Some edge cases that need consideration 
> [doc|https://docs.google.com/document/d/1bt_5CmRg97gh_j_lsVrnoEDn5N3TRNGeYcyX4uGD_0g/edit]
>  
>  [1] -  [https://lists.apache.org/thread/7zk5wqgsk64903w5mbt72pwjmsftx0kz]
>  [2] - 
> [https://docs.teradata.com/r/Teradata-Database-SQL-Fundamentals/June-2017/Basic-SQL-Syntax/Referencing-Object-Names-in-a-Request/Using-a-Column-Alias]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to