This is an automated email from the ASF dual-hosted git repository.

chenyz pushed a commit to branch fix_udf_drop
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 23bc2166ecd79f476693c8387c08b41701da416c
Author: Chen YZ <[email protected]>
AuthorDate: Fri Mar 21 17:43:58 2025 +0800

    fix bug
---
 .../it/udf/IoTDBUserDefinedScalarFunctionIT.java   | 30 ++++++++++++++++++++++
 .../commons/udf/service/UDFManagementService.java  |  2 +-
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBUserDefinedScalarFunctionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBUserDefinedScalarFunctionIT.java
index 2d1b741a7c6..a9aea421e37 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBUserDefinedScalarFunctionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBUserDefinedScalarFunctionIT.java
@@ -88,6 +88,36 @@ public class IoTDBUserDefinedScalarFunctionIT {
     }
   }
 
+  @Test
+  public void testInvokeAfterDrop() {
+    try (Connection connection = EnvFactory.getEnv().getTableConnection();
+        Statement statement = connection.createStatement()) {
+      statement.execute("USE test");
+      statement.execute(
+          "CREATE FUNCTION tmp_udsf as 
'org.apache.iotdb.db.query.udf.example.relational.ContainNull'");
+      List<String> expectedResult = Arrays.asList("1,false", "2,true", 
"3,false", "5,true");
+      int row = 0;
+      try (ResultSet resultSet =
+          statement.executeQuery("select time, tmp_udsf(s1) as s1_null from 
vehicle")) {
+        while (resultSet.next()) {
+          Assert.assertEquals(
+              expectedResult.get(row), resultSet.getLong(1) + "," + 
resultSet.getBoolean(2));
+          row++;
+        }
+        assertEquals(4, row);
+      }
+      statement.execute("DROP FUNCTION tmp_udsf");
+      try {
+        statement.execute("select time, tmp_udsf(s1) as s1_null from vehicle");
+        fail();
+      } catch (Exception e) {
+        Assert.assertTrue(e.getMessage().contains("Unknown function"));
+      }
+    } catch (Exception e) {
+      fail(e.getMessage());
+    }
+  }
+
   @Test
   public void testIllegalInput() {
     try (Connection connection = EnvFactory.getEnv().getTableConnection();
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
index fe62cb4d291..e5a9ff6bd20 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
@@ -205,7 +205,7 @@ public class UDFManagementService {
       throws Exception {
     try {
       acquireLock();
-      UDFInformation information = udfTable.getUDFInformation(Model.TREE, 
functionName);
+      UDFInformation information = udfTable.getUDFInformation(model, 
functionName);
       if (information == null) {
         return;
       }

Reply via email to