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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2165bf49beb Add Create Trigger without using uri IT
2165bf49beb is described below

commit 2165bf49beb45de80f8449dda84fd6c8d19115ec
Author: Jackie Tien <[email protected]>
AuthorDate: Sun Dec 15 08:52:48 2024 +0800

    Add Create Trigger without using uri IT
---
 .../db/it/trigger/IoTDBTriggerManagementIT.java    | 47 ++++++++++++++++++++++
 .../execution/config/TreeConfigTaskVisitor.java    |  6 +--
 2 files changed, 50 insertions(+), 3 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
index 9a78ca427c0..b6710208556 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
@@ -286,6 +286,53 @@ public class IoTDBTriggerManagementIT {
     }
   }
 
+  @Test
+  public void testCreateTriggersNormally2() {
+    try (Connection connection = EnvFactory.getEnv().getConnection();
+        Statement statement = connection.createStatement()) {
+      Map<String, String[]> result =
+          new HashMap<String, String[]>() {
+            {
+              put(
+                  STATELESS_TRIGGER_BEFORE_INSERTION_PREFIX + "a",
+                  new String[] {
+                    STATELESS_TRIGGER_BEFORE_INSERTION_PREFIX + "a",
+                    BEFORE_INSERT,
+                    STATELESS,
+                    ACTIVE,
+                    "root.test.stateless.a",
+                    TRIGGER_FILE_TIMES_COUNTER
+                  });
+            }
+          };
+
+      // create stateless triggers before insertion
+      statement.execute(
+          String.format(
+              "create stateless trigger %s before insert on 
root.test.stateless.a as '%s' with (\"name\"=\"%s\")",
+              STATELESS_TRIGGER_BEFORE_INSERTION_PREFIX + "a",
+              TRIGGER_FILE_TIMES_COUNTER,
+              STATELESS_TRIGGER_BEFORE_INSERTION_PREFIX + "a"));
+
+      ResultSet resultSet = statement.executeQuery("show triggers");
+      int cnt = 0;
+      while (resultSet.next()) {
+        cnt++;
+        String triggerName = 
resultSet.getString(ColumnHeaderConstant.TRIGGER_NAME);
+        String[] triggerInformation = result.get(triggerName);
+        assertEquals(triggerInformation[0], triggerName);
+        assertEquals(triggerInformation[1], 
resultSet.getString(ColumnHeaderConstant.EVENT));
+        assertEquals(triggerInformation[2], 
resultSet.getString(ColumnHeaderConstant.TYPE));
+        assertEquals(triggerInformation[3], 
resultSet.getString(ColumnHeaderConstant.STATE));
+        assertEquals(triggerInformation[4], 
resultSet.getString(ColumnHeaderConstant.PATH_PATTERN));
+        assertEquals(triggerInformation[5], 
resultSet.getString(ColumnHeaderConstant.CLASS_NAME));
+      }
+      assertEquals(cnt, result.size());
+    } catch (Exception e) {
+      fail(e.getMessage());
+    }
+  }
+
   @Test
   public void testCreateAndDropMultipleTimes() {
     try (Connection connection = EnvFactory.getEnv().getConnection();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
index 9c0bb50e205..a1ee08d84e4 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java
@@ -349,9 +349,9 @@ public class TreeConfigTaskVisitor extends 
StatementVisitor<IConfigTask, MPPQuer
   @Override
   public IConfigTask visitCreateTrigger(
       CreateTriggerStatement createTriggerStatement, MPPQueryContext context) {
-    if (createTriggerStatement.isUsingURI()
-        && createTriggerStatement.getUriString() != null
-        && isUriTrusted(createTriggerStatement.getUriString())) {
+    if (!createTriggerStatement.isUsingURI()
+        || (createTriggerStatement.getUriString() != null
+            && isUriTrusted(createTriggerStatement.getUriString()))) {
       // 1. user specified uri and that uri is trusted
       // 2. user doesn't specify uri
       return new CreateTriggerTask(createTriggerStatement);

Reply via email to