[
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 column aliasing. 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]
was:
Based on the discussion
[https://lists.apache.org/thread/7zk5wqgsk64903w5mbt72pwjmsftx0kz].
The goal is to support column aliasing. An example is Teradata /
[https://docs.teradata.com/r/Teradata-Database-SQL-Fundamentals/June-2017/Basic-SQL-Syntax/Referencing-Object-Names-in-a-Request/Using-a-Column-Alias]
A few edge cases to be considered for proper semantics
1. When SubQuery( maybe table) in from and Alias have the same name
eg
SELECT c_customerId as c FROM ( SELECT c FROM table) WHERE c = 'test'
SELECT trim(c_customer_name) as c FROM ( SELECT c FROM table) WHERE c =
'test'
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
> Support Column Aliasing feature in the where clause
> ---------------------------------------------------
>
> Key: CALCITE-5248
> URL: https://issues.apache.org/jira/browse/CALCITE-5248
> Project: Calcite
> Issue Type: New Feature
> Reporter: Jay Narale
> Priority: Major
>
> Based on the discussion here [1].
> The goal is to support column aliasing. 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]
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)