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");