This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch TYQuery in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 50258821bcf5ede02d857ad489f8cb75dd88f10b Author: JackieTien97 <[email protected]> AuthorDate: Tue Mar 9 11:08:09 2021 +0800 s --- .../tsfile/file/metadata/enums/TSDataType.java | 5 +- .../apache/iotdb/tsfile/utils/TsPrimitiveType.java | 59 ++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSDataType.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSDataType.java index 0edda45..a2b7eef 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSDataType.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSDataType.java @@ -41,7 +41,10 @@ public enum TSDataType { DOUBLE((byte) 4), /** TEXT */ - TEXT((byte) 5); + TEXT((byte) 5), + + /** Vector */ + Vector((byte) 6); private final byte type; diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/TsPrimitiveType.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/TsPrimitiveType.java index 73b01d2..e5ffb4e 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/TsPrimitiveType.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/TsPrimitiveType.java @@ -74,6 +74,10 @@ public abstract class TsPrimitiveType implements Serializable { throw new UnsupportedOperationException("getBinary() is not supported for current sub-class"); } + public TsPrimitiveType[] getVector() { + throw new UnsupportedOperationException("setDouble() is not supported for current sub-class"); + } + public void setBoolean(boolean val) { throw new UnsupportedOperationException("setBoolean() is not supported for current sub-class"); } @@ -98,6 +102,10 @@ public abstract class TsPrimitiveType implements Serializable { throw new UnsupportedOperationException("setBinary() is not supported for current sub-class"); } + public void setVector(TsPrimitiveType[] val) { + throw new UnsupportedOperationException("setDouble() is not supported for current sub-class"); + } + /** * get the size of one instance of current class. * @@ -462,4 +470,55 @@ public abstract class TsPrimitiveType implements Serializable { return false; } } + + public static class TsVector extends TsPrimitiveType { + + private TsPrimitiveType[] value; + + public TsVector(TsPrimitiveType[] value) { + this.value = value; + } + + + @Override + public TsPrimitiveType[] getVector() { + return value; + } + + @Override + public void setVector(TsPrimitiveType[] val) { + this.value = val; + } + + @Override + public int getSize() { + int size = 0; + for (TsPrimitiveType type : value) { + size += type.getSize(); + } + // object header + array object header + return 4 + 4 + size; + } + + @Override + public Object getValue() { + return getVector(); + } + + @Override + public String getStringValue() { + StringBuilder builder = new StringBuilder("["); + builder.append(value[0].getStringValue()); + for (TsPrimitiveType type : value) { + builder.append(", ").append(type.getStringValue()); + } + builder.append("]"); + return builder.toString(); + } + + @Override + public TSDataType getDataType() { + return TSDataType.Vector; + } + } }
