xiangqiao created FLINK-24862:
---------------------------------

             Summary: 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.14.0, 1.13.0
            Reporter: xiangqiao
         Attachments: image-2021-11-10-20-55-11-988.png

Here are two questions:
1.First question, 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!



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

Reply via email to