You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2023/03/14 12:48:43 UTC
[iotdb] branch master updated: [IOTDB-5668] fix loading the tsfile which is from export-tsfile failed when the specified encoding type is different from default
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 0a53a0399d [IOTDB-5668] fix loading the tsfile which is from export-tsfile failed when the specified encoding type is different from default
0a53a0399d is described below
commit 0a53a0399dbe99aa536a4f40b80f0eab311929c6
Author: Zhijia Cao <ca...@126.com>
AuthorDate: Tue Mar 14 20:48:35 2023 +0800
[IOTDB-5668] fix loading the tsfile which is from export-tsfile failed when the specified encoding type is different from default
---
cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java | 10 ++++++++++
.../apache/iotdb/tsfile/write/schema/MeasurementSchema.java | 8 ++++++++
2 files changed, 18 insertions(+)
diff --git a/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java b/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
index f6bb29aa99..afddac0c25 100644
--- a/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
+++ b/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
@@ -26,7 +26,9 @@ import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.apache.iotdb.session.Session;
import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
import org.apache.iotdb.tsfile.read.common.Field;
import org.apache.iotdb.tsfile.read.common.Path;
@@ -312,6 +314,14 @@ public class ExportTsFile extends AbstractTsFileTool {
}
MeasurementSchema measurementSchema =
new MeasurementSchema(path.getMeasurement(), tsDataType);
+
+ List<Field> seriesList =
+ session.executeQueryStatement("show timeseries " + column, timeout).next().getFields();
+
+ measurementSchema.setEncoding(
+ TSEncoding.valueOf(seriesList.get(4).getStringValue()).serialize());
+ measurementSchema.setCompressor(
+ CompressionType.valueOf(seriesList.get(5).getStringValue()).serialize());
schemaMap.computeIfAbsent(deviceId, key -> new ArrayList<>()).add(measurementSchema);
}
List<Tablet> tabletList = new ArrayList<>();
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
index a1c243bad2..6e28339f86 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
@@ -428,4 +428,12 @@ public class MeasurementSchema
public boolean containsSubMeasurement(String measurementId) {
return this.measurementId.equals(measurementId);
}
+
+ public void setEncoding(byte encoding) {
+ this.encoding = encoding;
+ }
+
+ public void setCompressor(byte compressor) {
+ this.compressor = compressor;
+ }
}