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

jiangtian pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git


The following commit(s) were added to refs/heads/develop by this push:
     new 81593738 Add isTableModel method to IDeviceID  (#259)
81593738 is described below

commit 81593738666a34f3c3f4eb39ec8066c844eb4ee2
Author: shuwenwei <[email protected]>
AuthorDate: Thu Oct 10 10:26:51 2024 +0800

    Add isTableModel method to IDeviceID  (#259)
    
    * add method
    
    * fix bug and add ut
---
 .../main/java/org/apache/tsfile/file/metadata/IDeviceID.java   |  2 ++
 .../java/org/apache/tsfile/file/metadata/PlainDeviceID.java    |  5 +++++
 .../org/apache/tsfile/file/metadata/StringArrayDeviceID.java   |  6 ++++++
 .../java/org/apache/tsfile/file/metadata/IDeviceIDTest.java    | 10 ++++++++++
 4 files changed, 23 insertions(+)

diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java
index b67053a5..6245799f 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/IDeviceID.java
@@ -45,6 +45,8 @@ public interface IDeviceID extends Comparable<IDeviceID>, 
Accountable, Serializa
 
   boolean isEmpty();
 
+  boolean isTableModel();
+
   /**
    * @return the table name associated with the device. For a path-DeviceId, 
like "root.a.b.c.d", it
    *     is converted according to a fixed rule, like assuming the first three 
levels ("root.a.b")
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java
index cc93350f..ccc8ce2c 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/PlainDeviceID.java
@@ -110,6 +110,11 @@ public class PlainDeviceID implements IDeviceID {
     return deviceID.isEmpty();
   }
 
+  @Override
+  public boolean isTableModel() {
+    return false;
+  }
+
   @Override
   public long ramBytesUsed() {
     long size = INSTANCE_SIZE;
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
index d8aca6fb..1238a614 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/StringArrayDeviceID.java
@@ -36,6 +36,7 @@ import java.nio.ByteBuffer;
 import java.util.Arrays;
 import java.util.Objects;
 
+import static org.apache.tsfile.common.constant.TsFileConstant.PATH_ROOT;
 import static org.apache.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
 
 public class StringArrayDeviceID implements IDeviceID {
@@ -211,6 +212,11 @@ public class StringArrayDeviceID implements IDeviceID {
     return segments == null || segments.length == 0;
   }
 
+  @Override
+  public boolean isTableModel() {
+    return !segments[0].startsWith(PATH_ROOT + PATH_SEPARATOR);
+  }
+
   @Override
   public String getTableName() {
     return segments[0];
diff --git 
a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java 
b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java
index 29c8dd7f..0fc02aa7 100644
--- 
a/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java
+++ 
b/java/tsfile/src/test/java/org/apache/tsfile/file/metadata/IDeviceIDTest.java
@@ -63,6 +63,16 @@ public class IDeviceIDTest {
     assertTrue(deviceID.startWith("root.a"));
   }
 
+  @Test
+  public void testIsTableModel() {
+    IDeviceID deviceID = Factory.DEFAULT_FACTORY.create("root.a.b.c.d");
+    assertFalse(deviceID.isTableModel());
+    deviceID = Factory.DEFAULT_FACTORY.create("root.b.c");
+    assertFalse(deviceID.isTableModel());
+    deviceID = Factory.DEFAULT_FACTORY.create("roota.b.c.d");
+    assertTrue(deviceID.isTableModel());
+  }
+
   @Test
   public void testMatchDatabaseName() {
     IDeviceID deviceID = Factory.DEFAULT_FACTORY.create("root.a.b.c.d");

Reply via email to