You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2017/07/13 18:44:00 UTC
[jira] [Commented] (CALCITE-1581) UDTF like in hive
[ https://issues.apache.org/jira/browse/CALCITE-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16086196#comment-16086196 ]
Julian Hyde commented on CALCITE-1581:
--------------------------------------
Reviewing https://github.com/apache/calcite/pull/496/commits/3e0c7b362431ee7b1227cd547d3c494fb301743a. Thanks for the pull request. It's a good start, but there's quite a bit more to be done:
* Can you remove {{SqlConformanceEnum.setHiveCompatible}}; because it's static it's not thread-safe.
* Add {{SqlConformanceEnum.HIVE}} and change {{SqlConformance.isHiveCompatible}}
to {{allowSelectTableFunction()}} (see how the fix for CALCITE-1472 added {{SqlConformanceEnum.SQL_SERVER_2008}} and {{SqlConformance.allowExtend()}}, and maybe do something similar)
* Don't to the rewrite in the parser. The parser should just parse. After validation has succeeded, do the rewrite in {{SqlToRelConverter}}. The idea of rewriting to LATERAL is still sound.
* Add some validator tests in SqlValidatorTest.java, e.g. where table function does not exist, or where there is a UDTF and other expressions in the SELECT clause.
* Hive allows [UDTF without AS|https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Built-inTable-GeneratingFunctions(UDTF)] (e.g. {{select explode(array\[1, 2,3\]) from t}} ) and AS within parens (e.g. {{select explode(array\[1, 2, 3\]) as x from t}} ). We should too. Trigger the rewrite based on it being a UDTF, not based on the syntax.
* I get 8 test failures, including UtilTest.testResources, SqlParserTest.
* Modify documentation in reference.md
* Add at least one test that executes a SQL query and gets a result
> UDTF like in hive
> -----------------
>
> Key: CALCITE-1581
> URL: https://issues.apache.org/jira/browse/CALCITE-1581
> Project: Calcite
> Issue Type: New Feature
> Reporter: Xiaoyong Deng
> Assignee: Sihua Zhou
> Labels: udtf
>
> Support one row in and multi-column/multi-row out(one-to-many mapping), just like udtf in hive.
> The query would like this:
> {code}
> select
> func(c0, c1) as (f0, f1, f2)
> from table_name;
> {code}
> c0 and c1 are 'table_name' columns. f0, f1 and f2 are new generated columns.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)