You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Jing Zhang (Jira)" <ji...@apache.org> on 2022/07/20 16:00:00 UTC
[jira] (FLINK-24862) The user-defined hive udaf/udtf cannot be used normally in hive dialect
[ https://issues.apache.org/jira/browse/FLINK-24862 ]
Jing Zhang deleted comment on FLINK-24862:
------------------------------------
was (Author: qingru zhang):
Fixed in release-1.14: b7e3eb948017e50b3d8f9f7ef3f94330bea71400
> The user-defined hive udaf/udtf cannot be used normally in hive dialect
> -----------------------------------------------------------------------
>
> Key: FLINK-24862
> URL: https://issues.apache.org/jira/browse/FLINK-24862
> Project: Flink
> Issue Type: Bug
> Components: Connectors / Hive
> Affects Versions: 1.11.0, 1.12.0, 1.13.0, 1.14.0
> Reporter: xiangqiao
> Assignee: xiangqiao
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.15.0, 1.14.6
>
> Attachments: image-2021-11-10-20-55-11-988.png, image-2021-11-10-21-04-32-660.png
>
>
> When hive udaf/udtf is used, a validate exception is thrown ,i added a unit test in HiveDialectITCase to reproduce this question:
> {code:java}
> @Test
> public void testTemporaryFunctionUDAF() throws Exception {
> // create temp function
> tableEnv.executeSql(
> String.format(
> "create temporary function temp_count as '%s'",
> GenericUDAFCount.class.getName()));
> String[] functions = tableEnv.listUserDefinedFunctions();
> assertArrayEquals(new String[] {"temp_count"}, functions);
> // call the function
> tableEnv.executeSql("create table src(x int)");
> tableEnv.executeSql("insert into src values (1),(-1)").await();
> assertEquals(
> "[+I[2]]",
> queryResult(tableEnv.sqlQuery("select temp_count(x) from src")).toString());
> // switch DB and the temp function can still be used
> tableEnv.executeSql("create database db1");
> tableEnv.useDatabase("db1");
> assertEquals(
> "[+I[2]]",
> queryResult(tableEnv.sqlQuery("select temp_count(x) from `default`.src"))
> .toString());
> // drop the function
> tableEnv.executeSql("drop temporary function temp_count");
> functions = tableEnv.listUserDefinedFunctions();
> assertEquals(0, functions.length);
> tableEnv.executeSql("drop temporary function if exists foo");
> } {code}
> !image-2021-11-10-20-55-11-988.png|width=1363,height=282!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)