[
https://issues.apache.org/jira/browse/CALCITE-5779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmitry Sysolyatin updated CALCITE-5779:
---------------------------------------
Description:
Implicit column alias for single-column table function works only for UNNEST at
the moment. But should work for every table function.
For example, PostgreSQL:
{code:java}
CREATE OR REPLACE FUNCTION fun()
RETURNS TABLE(col int)
AS
$$
SELECT 1
$$ LANGUAGE 'sql' VOLATILE;
SELECT f.col, f FROM fun() as f;
col | f
-----+---
1 | 1
(1 row)
SELECT * FROM fun() as f;
col
-----
1
(1 row)
SELECT f FROM fun() as f;
f
---
1
(1 row){code}
Calcite throws "Column 'i' not found in any table" exception for
{code:java}
SELECT i FROM table(generate_series(1,2)) as i
{code}
Where generate_series is user defined table function.
was:
Implicit column alias for single-column table function works only for UNNEST.
But should work for every table function.
For example, PostgreSQL returns the same result for
{code:java}
SELECT i FROM UNNEST(ARRAY(1,2)) as i;
SELECT i FROM generate_series(1,2) as i;
i
---
1
2
(2 rows)
{code}
But calcite throws "Column 'i' not found in any table" exception for
{code:java}
SELECT i FROM table(generate_series(1,2)) as i
{code}
Where generate_series is user defined table function.
> Implicit column alias for single-column table function does not work
> --------------------------------------------------------------------
>
> Key: CALCITE-5779
> URL: https://issues.apache.org/jira/browse/CALCITE-5779
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.34.0
> Reporter: Dmitry Sysolyatin
> Priority: Major
>
> Implicit column alias for single-column table function works only for UNNEST
> at the moment. But should work for every table function.
> For example, PostgreSQL:
> {code:java}
> CREATE OR REPLACE FUNCTION fun()
> RETURNS TABLE(col int)
> AS
> $$
> SELECT 1
> $$ LANGUAGE 'sql' VOLATILE;
> SELECT f.col, f FROM fun() as f;
> col | f
> -----+---
> 1 | 1
> (1 row)
> SELECT * FROM fun() as f;
> col
> -----
> 1
> (1 row)
> SELECT f FROM fun() as f;
> f
> ---
> 1
> (1 row){code}
>
> Calcite throws "Column 'i' not found in any table" exception for
> {code:java}
> SELECT i FROM table(generate_series(1,2)) as i
> {code}
> Where generate_series is user defined table function.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)