This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch object_type
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/object_type by this push:
new 61e8f54cbee add ObjectReadExample for tiff
61e8f54cbee is described below
commit 61e8f54cbeeee6c127102a7b30bdd556bd81f6a9
Author: JackieTien97 <[email protected]>
AuthorDate: Mon Jul 7 20:54:59 2025 +0800
add ObjectReadExample for tiff
---
.../main/java/org/apache/iotdb/ObjectExample.java | 36 ++++++++++++++++++++--
.../java/org/apache/iotdb/ObjectReadExample.java | 26 +++++++++++++---
.../utils/model/UnCompressedTiffModelReader.java | 2 +-
3 files changed, 57 insertions(+), 7 deletions(-)
diff --git a/example/session/src/main/java/org/apache/iotdb/ObjectExample.java
b/example/session/src/main/java/org/apache/iotdb/ObjectExample.java
index 6a880cc0174..a0ae715e0b6 100644
--- a/example/session/src/main/java/org/apache/iotdb/ObjectExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/ObjectExample.java
@@ -69,7 +69,7 @@ public class ObjectExample {
ColumnCategory.TAG,
ColumnCategory.FIELD,
ColumnCategory.FIELD));
- Tablet tablet = new Tablet("test1", columnNameList, dataTypeList,
columnTypeList, 1);
+ Tablet tablet = new Tablet("tsfile_table", columnNameList, dataTypeList,
columnTypeList, 1);
int rowIndex = tablet.getRowSize();
tablet.addTimestamp(rowIndex, 1);
tablet.addValue(rowIndex, 0, "1");
@@ -87,7 +87,7 @@ public class ObjectExample {
session.insert(tablet);
tablet.reset();
- tablet = new Tablet("test1", columnNameList, dataTypeList,
columnTypeList, 1);
+ tablet = new Tablet("tsfile_table", columnNameList, dataTypeList,
columnTypeList, 1);
rowIndex = tablet.getRowSize();
tablet.addTimestamp(rowIndex, 2);
tablet.addValue(rowIndex, 0, "1");
@@ -105,6 +105,38 @@ public class ObjectExample {
session.insert(tablet);
tablet.reset();
+ tablet = new Tablet("tiff_table", columnNameList, dataTypeList,
columnTypeList, 1);
+ rowIndex = tablet.getRowSize();
+ tablet.addTimestamp(rowIndex, 1);
+ tablet.addValue(rowIndex, 0, "1");
+ tablet.addValue(rowIndex, 1, "5");
+ tablet.addValue(rowIndex, 2, "3");
+ tablet.addValue(rowIndex, 3, 37.6F);
+ tablet.addValue(
+ rowIndex,
+ 4,
+ true,
+ 0,
+
Files.readAllBytes(Paths.get("/Users/jackietien/Downloads/1751891240130.tiff")));
+ session.insert(tablet);
+ tablet.reset();
+
+ tablet = new Tablet("tiff_table", columnNameList, dataTypeList,
columnTypeList, 1);
+ rowIndex = tablet.getRowSize();
+ tablet.addTimestamp(rowIndex, 2);
+ tablet.addValue(rowIndex, 0, "1");
+ tablet.addValue(rowIndex, 1, "5");
+ tablet.addValue(rowIndex, 2, "3");
+ tablet.addValue(rowIndex, 3, 37.6F);
+ tablet.addValue(
+ rowIndex,
+ 4,
+ true,
+ 0,
+
Files.readAllBytes(Paths.get("/Users/jackietien/Downloads/1751891242743.tiff")));
+ session.insert(tablet);
+ tablet.reset();
+
} catch (IoTDBConnectionException e) {
e.printStackTrace();
} catch (StatementExecutionException e) {
diff --git
a/example/session/src/main/java/org/apache/iotdb/ObjectReadExample.java
b/example/session/src/main/java/org/apache/iotdb/ObjectReadExample.java
index bf4417c15be..344939175db 100644
--- a/example/session/src/main/java/org/apache/iotdb/ObjectReadExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/ObjectReadExample.java
@@ -47,7 +47,8 @@ public class ObjectReadExample {
.thriftMaxFrameSize(256 * 1024 * 1024)
.build()) {
try (SessionDataSet dataSet =
- session.executeQueryStatement("select READ_OBJECT(file) from test1
where time = 1")) {
+ session.executeQueryStatement(
+ "select READ_OBJECT(file) from tsfile_table where time = 1")) {
SessionDataSet.DataIterator iterator = dataSet.iterator();
while (iterator.next()) {
Binary binary = iterator.getBlob(1);
@@ -56,7 +57,8 @@ public class ObjectReadExample {
}
try (SessionDataSet dataSet =
- session.executeQueryStatement("select READ_OBJECT(file) from test1
where time = 2")) {
+ session.executeQueryStatement(
+ "select READ_OBJECT(file) from tsfile_table where time = 2")) {
SessionDataSet.DataIterator iterator = dataSet.iterator();
while (iterator.next()) {
Binary binary = iterator.getBlob(1);
@@ -65,7 +67,7 @@ public class ObjectReadExample {
}
try (SessionDataSet dataSet =
- session.executeQueryStatement("select READ_OBJECT(file) from
test1")) {
+ session.executeQueryStatement("select READ_OBJECT(file) from
tsfile_table")) {
SessionDataSet.DataIterator iterator = dataSet.iterator();
while (iterator.next()) {
Binary binary = iterator.getBlob(1);
@@ -74,7 +76,23 @@ public class ObjectReadExample {
}
try (SessionDataSet dataSet =
- session.executeQueryStatement("select geo_penetrate(file,
'0,3,7501,7504') from test1")) {
+ session.executeQueryStatement(
+ "select geo_penetrate(file, '0,3,7501,7504') from
tsfile_table")) {
+ SessionDataSet.DataIterator iterator = dataSet.iterator();
+ while (iterator.next()) {
+ Binary binary = iterator.getBlob(1);
+ ByteBuffer byteBuffer = ByteBuffer.wrap(binary.getValues());
+ float[] res = new float[byteBuffer.limit() / Float.BYTES];
+ for (int i = 0; i < res.length; i++) {
+ res[i] = byteBuffer.getFloat();
+ }
+ System.out.println(Arrays.toString(res));
+ }
+ }
+
+ try (SessionDataSet dataSet =
+ session.executeQueryStatement(
+ "select geo_penetrate(file, '0,3,7501,7504',
'UNCOMPRESSED_TIFF') from tiff_table")) {
SessionDataSet.DataIterator iterator = dataSet.iterator();
while (iterator.next()) {
Binary binary = iterator.getBlob(1);
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/model/UnCompressedTiffModelReader.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/model/UnCompressedTiffModelReader.java
index f1291bf09e5..e763e72c0fd 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/model/UnCompressedTiffModelReader.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/model/UnCompressedTiffModelReader.java
@@ -38,7 +38,7 @@ public class UnCompressedTiffModelReader extends ModelReader {
for (List<Integer> startAndEndTime : startAndEndTimeArray) {
int start = startAndEndTime.get(0);
int end = startAndEndTime.get(1);
- int length = end - start + 2;
+ int length = end - start + 1;
float[] pixels = new float[length];
if (processor instanceof FloatProcessor) {
for (int i = start; i <= end; i++) {