You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "xiangqiao (Jira)" <ji...@apache.org> on 2021/12/02 08:14:00 UTC

[jira] [Created] (FLINK-25142) The user-defined hive udtf initialize exception in hive dialect

xiangqiao created FLINK-25142:
---------------------------------

             Summary: The user-defined hive udtf initialize exception in hive dialect
                 Key: FLINK-25142
                 URL: https://issues.apache.org/jira/browse/FLINK-25142
             Project: Flink
          Issue Type: Bug
          Components: Connectors / Hive
    Affects Versions: 1.14.0, 1.13.0
            Reporter: xiangqiao


2.When I solved the first problem, I met the second problem,I added a unit test in HiveDialectITCase to reproduce this question:

This is the compatibility of hive udtf. Refer to this issue:https://issues.apache.org/jira/browse/HIVE-5737
{code:java}
@Test
public void testTemporaryFunctionUDTFInitializeWithStructObjectInspector() throws Exception {
    // create temp function
    tableEnv.executeSql(
            String.format(
                    "create temporary function temp_split as '%s'",
                    HiveGenericUDTFTest.TestSplitUDTFInitializeWithStructObjectInspector.class
                            .getName()));
    String[] functions = tableEnv.listUserDefinedFunctions();
    assertArrayEquals(new String[] {"temp_split"}, functions);
    // call the function
    tableEnv.executeSql("create table src(x string)");
    tableEnv.executeSql("insert into src values ('a,b,c')").await();
    assertEquals(
            "[+I[a], +I[b], +I[c]]",
            queryResult(tableEnv.sqlQuery("select temp_split(x) from src")).toString());
    // switch DB and the temp function can still be used
    tableEnv.executeSql("create database db1");
    tableEnv.useDatabase("db1");
    assertEquals(
            "[+I[a], +I[b], +I[c]]",
            queryResult(tableEnv.sqlQuery("select temp_split(x) from `default`.src"))
                    .toString());
    // drop the function
    tableEnv.executeSql("drop temporary function temp_split");
    functions = tableEnv.listUserDefinedFunctions();
    assertEquals(0, functions.length);
    tableEnv.executeSql("drop temporary function if exists foo");
}  {code}
!image-2021-11-10-21-04-32-660.png!

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)