This is an automated email from the ASF dual-hosted git repository. lancelly pushed a commit to branch udf_win in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 03e62ed1a0b927ccddeb4707da255a47a1011477 Author: Liao Lanyu <[email protected]> AuthorDate: Fri Aug 18 14:30:56 2023 +0800 Fix some ITs of UDFManagement --- .../iotdb/db/it/udf/IoTDBUDFManagementIT.java | 50 ++++++++++++++++++++-- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDFManagementIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDFManagementIT.java index 2362af361fb..908a997d420 100644 --- a/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDFManagementIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/db/it/udf/IoTDBUDFManagementIT.java @@ -32,6 +32,7 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; +import java.io.File; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; @@ -54,6 +55,16 @@ public class IoTDBUDFManagementIT { private static final String FUNCTION_TYPE_BUILTIN_UDTF = "built-in UDTF"; private static final String FUNCTION_TYPE_EXTERNAL_UDTF = "external UDTF"; + private static final String UDF_LIB_PREFIX = + System.getProperty("user.dir") + + File.separator + + "target" + + File.separator + + "test-classes" + + File.separator; + + private static final String UDF_JAR_PREFIX = new File(UDF_LIB_PREFIX).toURI().toString(); + @Before public void setUp() throws Exception { EnvFactory.getEnv().initClusterEnvironment(); @@ -208,6 +219,37 @@ public class IoTDBUDFManagementIT { } } + @Test + public void testCreateFunctionWithURI() throws SQLException { + try (Connection connection = EnvFactory.getEnv().getConnection(); + Statement statement = connection.createStatement()) { + statement.execute( + String.format( + "create function udf as 'org.apache.iotdb.db.query.udf.example.Adder' using URI '%s'", + UDF_JAR_PREFIX + "udf-example.jar")); + + statement.execute( + String.format( + "create function udf1 as 'org.apache.iotdb.db.query.udf.example.Adder' using URI '%s'", + UDF_JAR_PREFIX + "udf-example.jar")); + + try (ResultSet resultSet = statement.executeQuery("show functions")) { + int count = 0; + while (resultSet.next()) { + ++count; + } + Assert.assertEquals( + 2 + NATIVE_FUNCTIONS_COUNT + BUILTIN_FUNCTIONS_COUNT + BUILTIN_SCALAR_FUNCTIONS_COUNT, + count); + assertEquals(3, resultSet.getMetaData().getColumnCount()); + statement.execute("drop function udf"); + statement.execute("drop function udf1"); + } catch (Exception e) { + fail(); + } + } + } + @Test public void testCreateFunctionWithInvalidURI() { try (Connection connection = EnvFactory.getEnv().getConnection(); @@ -215,8 +257,8 @@ public class IoTDBUDFManagementIT { try { statement.execute( String.format( - "create stateless trigger %s before insert on root.test.stateless.* as '%s' using URI '%s' with (\"name\"=\"%s\")", - "a", "org.apache.iotdb.test", "", "test")); + "create function udf as 'org.apache.iotdb.db.query.udf.example.Adder' using URI '%s'", + "")); fail(); } catch (Exception e) { assertTrue(e.getMessage().contains("URI")); @@ -225,8 +267,8 @@ public class IoTDBUDFManagementIT { try { statement.execute( String.format( - "create stateless trigger %s before insert on root.test.stateless.* as '%s' using URI '%s' with (\"name\"=\"%s\")", - "a", "org.apache.iotdb.test", "file:///data/udf/upload-test.jar", "test")); + "create function udf as 'org.apache.iotdb.db.query.udf.example.Adder' using URI '%s'", + "file:///data/udf/upload-test.jar")); fail(); } catch (Exception e) { assertTrue(e.getMessage().contains("URI"));
