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

hui pushed a commit to branch lmh/addJoinNode
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 467a09bc86ed1f547868e29f8cd3504b88215f9a
Author: Minghui Liu <[email protected]>
AuthorDate: Wed Dec 20 11:29:35 2023 +0800

    add serde UT
---
 .../plan/planner/plan/node/PlanNodeType.java       |   3 +
 .../process/FullOuterTimeJoinNodeSerdeTest.java    |  68 -------------
 .../plan/node/process/TimeJoinNodeSerdeTest.java   | 106 +++++++++++++++++++++
 3 files changed, 109 insertions(+), 68 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
index 17e9af3c9a4..d5e1ca7124d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/PlanNodeType.java
@@ -83,6 +83,7 @@ import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TopKNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.TransformNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.InnerTimeJoinNode;
+import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.LeftOuterTimeJoinNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last.LastQueryCollectNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last.LastQueryMergeNode;
 import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.last.LastQueryNode;
@@ -422,6 +423,8 @@ public enum PlanNodeType {
         return PipeEnrichedConfigSchemaNode.deserialize(buffer);
       case 87:
         return InnerTimeJoinNode.deserialize(buffer);
+      case 88:
+        return LeftOuterTimeJoinNode.deserialize(buffer);
       default:
         throw new IllegalArgumentException("Invalid node type: " + nodeType);
     }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/FullOuterTimeJoinNodeSerdeTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/FullOuterTimeJoinNodeSerdeTest.java
deleted file mode 100644
index b48d4072f74..00000000000
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/FullOuterTimeJoinNodeSerdeTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.queryengine.plan.plan.node.process;
-
-import org.apache.iotdb.commons.exception.IllegalPathException;
-import org.apache.iotdb.commons.path.MeasurementPath;
-import 
org.apache.iotdb.db.queryengine.plan.plan.node.PlanNodeDeserializeHelper;
-import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId;
-import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode;
-import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode;
-import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-
-import org.junit.Test;
-
-import java.nio.ByteBuffer;
-
-import static org.junit.Assert.assertEquals;
-
-public class FullOuterTimeJoinNodeSerdeTest {
-  @Test
-  public void testSerializeAndDeserialize() throws IllegalPathException {
-    SeriesScanNode seriesScanNode1 =
-        new SeriesScanNode(
-            new PlanNodeId("TestSeriesScanNode"),
-            new MeasurementPath("root.sg.d1.s1", TSDataType.INT32),
-            Ordering.DESC,
-            null,
-            100,
-            100,
-            null);
-    SeriesScanNode seriesScanNode2 =
-        new SeriesScanNode(
-            new PlanNodeId("TestSeriesScanNode"),
-            new MeasurementPath("root.sg.d1.s2", TSDataType.INT32),
-            Ordering.DESC,
-            null,
-            100,
-            100,
-            null);
-
-    FullOuterTimeJoinNode fullOuterTimeJoinNode =
-        new FullOuterTimeJoinNode(new PlanNodeId("TestTimeJoinNode"), 
Ordering.ASC);
-    fullOuterTimeJoinNode.addChild(seriesScanNode1);
-    fullOuterTimeJoinNode.addChild(seriesScanNode2);
-
-    ByteBuffer byteBuffer = ByteBuffer.allocate(2048);
-    fullOuterTimeJoinNode.serialize(byteBuffer);
-    byteBuffer.flip();
-    assertEquals(PlanNodeDeserializeHelper.deserialize(byteBuffer), 
fullOuterTimeJoinNode);
-  }
-}
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/TimeJoinNodeSerdeTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/TimeJoinNodeSerdeTest.java
new file mode 100644
index 00000000000..0918cbe664b
--- /dev/null
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/plan/node/process/TimeJoinNodeSerdeTest.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.db.queryengine.plan.plan.node.process;
+
+import org.apache.iotdb.commons.exception.IllegalPathException;
+import org.apache.iotdb.commons.path.MeasurementPath;
+import 
org.apache.iotdb.db.queryengine.plan.plan.node.PlanNodeDeserializeHelper;
+import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNode;
+import org.apache.iotdb.db.queryengine.plan.planner.plan.node.PlanNodeId;
+import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.FullOuterTimeJoinNode;
+import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.InnerTimeJoinNode;
+import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.process.join.LeftOuterTimeJoinNode;
+import 
org.apache.iotdb.db.queryengine.plan.planner.plan.node.source.SeriesScanNode;
+import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.nio.ByteBuffer;
+
+import static org.junit.Assert.assertEquals;
+
+public class TimeJoinNodeSerdeTest {
+
+  private static SeriesScanNode seriesScanNode1;
+  private static SeriesScanNode seriesScanNode2;
+
+  static {
+    try {
+      seriesScanNode1 =
+          new SeriesScanNode(
+              new PlanNodeId("TestSeriesScanNode"),
+              new MeasurementPath("root.sg.d1.s1", TSDataType.INT32),
+              Ordering.DESC,
+              null,
+              100,
+              100,
+              null);
+      seriesScanNode2 =
+          new SeriesScanNode(
+              new PlanNodeId("TestSeriesScanNode"),
+              new MeasurementPath("root.sg.d1.s2", TSDataType.INT32),
+              Ordering.DESC,
+              null,
+              100,
+              100,
+              null);
+    } catch (IllegalPathException e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testSerializeAndDeserializeFullOuterTimeJoin() throws 
IllegalPathException {
+    FullOuterTimeJoinNode fullOuterTimeJoinNode =
+        new FullOuterTimeJoinNode(new PlanNodeId("TestFullOuterTimeJoinNode"), 
Ordering.ASC);
+    fullOuterTimeJoinNode.addChild(seriesScanNode1);
+    fullOuterTimeJoinNode.addChild(seriesScanNode2);
+
+    testSerde(fullOuterTimeJoinNode);
+  }
+
+  @Test
+  public void testSerializeAndDeserializeInnerTimeJoin() throws 
IllegalPathException {
+    InnerTimeJoinNode innerTimeJoinNode =
+        new InnerTimeJoinNode(new PlanNodeId("TestInnerTimeJoinNode"), 
Ordering.ASC);
+    innerTimeJoinNode.addChild(seriesScanNode1);
+    innerTimeJoinNode.addChild(seriesScanNode2);
+
+    testSerde(innerTimeJoinNode);
+  }
+
+  @Test
+  public void testSerializeAndDeserializeLeftOuterTimeJoin() throws 
IllegalPathException {
+    LeftOuterTimeJoinNode leftOuterTimeJoinNode =
+        new LeftOuterTimeJoinNode(new PlanNodeId("TestLeftOuterTimeJoinNode"), 
Ordering.ASC);
+    leftOuterTimeJoinNode.addChild(seriesScanNode1);
+    leftOuterTimeJoinNode.addChild(seriesScanNode2);
+
+    testSerde(leftOuterTimeJoinNode);
+  }
+
+  private void testSerde(PlanNode node) throws IllegalPathException {
+    ByteBuffer byteBuffer = ByteBuffer.allocate(2048);
+    node.serialize(byteBuffer);
+    byteBuffer.flip();
+    assertEquals(PlanNodeDeserializeHelper.deserialize(byteBuffer), node);
+  }
+}

Reply via email to