[ https://issues.apache.org/jira/browse/CALCITE-6254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
hongyu guo resolved CALCITE-6254. --------------------------------- Fix Version/s: 1.37.0 Resolution: Fixed Resloved in [331f985|https://github.com/apache/calcite/commit/331f9859445b112e9ffc03e3c6aeff808e023034]. Thanks for your contribution, [~barrkel]! > 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)