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++) {

Reply via email to