[
https://issues.apache.org/jira/browse/CALCITE-6254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Nuyanzin closed CALCITE-6254.
------------------------------------
Resolved in release 1.37.0 (2024-05-06)
> Support table function calls in FROM clause without TABLE() wrapper
> -------------------------------------------------------------------
>
> Key: CALCITE-6254
> URL: https://issues.apache.org/jira/browse/CALCITE-6254
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.36.0
> Reporter: Barry Kelly
> Priority: Minor
> Labels: parser, pull-request-available
> Fix For: 1.37.0
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> Currently, when selecting from a table function, the function call needs to
> be wrapped in TABLE() like this:
> {{ SELECT * FROM TABLE(table_func('args'));}}
> Many dialects (SQL Server, PostgreSQL, BigQuery) do not require this:
> {{ SELECT * FROM table_func('args');}}
> The current Calcite grammar can be extended to permit this syntax without
> conflicting with other productions.
> There is a close call with the dynamic columns feature used by
> [Phoenix|https://phoenix.apache.org/dynamic_columns.html]
> {{ SELECT * FROM EventLog(lastGCTime TIME)}}
> It can be disambiguated with 3 tokens of lookahead, seeing past the '(' and
> identifier to the presence of a type production. The table extension clause
> for dynamic columns requires at least one field, so the empty case of '()' is
> not ambiguous either.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)