You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2020/10/03 18:21:00 UTC

[jira] [Created] (CALCITE-4305) Implicit column alias for single-column UNNEST

Julian Hyde created CALCITE-4305:
------------------------------------

             Summary: Implicit column alias for single-column UNNEST
                 Key: CALCITE-4305
                 URL: https://issues.apache.org/jira/browse/CALCITE-4305
             Project: Calcite
          Issue Type: Bug
            Reporter: Julian Hyde


Single-column UNNEST with a single alias should assign that alias to both a table and the unique column. For example, PostgreSQL returns a column called 'unnest' in the first, and 'fruit' in all of the rest:
{code}
select * from UNNEST(array ['apple', 'banana', 'pear']);
select * from UNNEST(array ['apple', 'banana', 'pear']) as fruit;
select * from UNNEST(array ['apple', 'banana', 'pear']) as t(fruit);
select t.* from UNNEST(array ['apple', 'banana', 'pear']) as t(fruit);
select fruit.* from UNNEST(array ['apple', 'banana', 'pear']) as fruit;
{code}

Thus {{FROM UNNEST(...) AS x}} is creating a table alias {{x}} and a column alias {{x}}.

This only happens for UNNEST. When aliasing other single-column relations the column name is retained, such as a SELECT-FROM-UNNEST sub-query as follows:
{code}
SELECT fruit.*
FROM (SELECT * FROM UNNEST(array ['apple', 'banana', 'pear']) as x) as fruit;

x
======
apple
banana
pear
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)