This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iotdb-client-go.git


The following commit(s) were added to refs/heads/main by this push:
     new bc429d2  Fix getLong("Time") for tree model (#129)
bc429d2 is described below

commit bc429d22c508967a75dbce70ed7f408b6035952b
Author: shuwenwei <[email protected]>
AuthorDate: Wed Apr 16 18:14:12 2025 +0800

    Fix getLong("Time") for tree model (#129)
---
 client/rpcdataset.go |  4 ++++
 test/e2e/e2e_test.go | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/client/rpcdataset.go b/client/rpcdataset.go
index 24ba2b2..a9a8384 100644
--- a/client/rpcdataset.go
+++ b/client/rpcdataset.go
@@ -442,6 +442,10 @@ func (s *IoTDBRpcDataSet) 
getLongByTsBlockColumnIndex(tsBlockColumnIndex int32)
        if err := s.checkRecord(); err != nil {
                return 0, err
        }
+       if tsBlockColumnIndex < 0 {
+               s.lastReadWasNull = false
+               return s.curTsBlock.GetTimeByIndex(s.tsBlockIndex)
+       }
        if !s.isNull(tsBlockColumnIndex, s.tsBlockIndex) {
                s.lastReadWasNull = false
                dataType := 
s.curTsBlock.GetColumn(tsBlockColumnIndex).GetDataType()
diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go
index d3a5f5f..de7a0a0 100644
--- a/test/e2e/e2e_test.go
+++ b/test/e2e/e2e_test.go
@@ -488,7 +488,7 @@ func (s *e2eTestSuite) Test_QueryAllDataType() {
        r, err := s.session.InsertAlignedTablet(tablet, true)
        s.checkError(r, err)
 
-       sessionDataSet, err := s.session.ExecuteQueryStatement("select * from 
root.tsg1.d1 limit 1", nil)
+       sessionDataSet, err := s.session.ExecuteQueryStatement("select s0, s1, 
s2, s3, s4, s5, s6, s7, s8, s9 from root.tsg1.d1 limit 1", nil)
        for {
                if hasNext, err := sessionDataSet.Next(); err != nil || 
!hasNext {
                        break
@@ -498,6 +498,65 @@ func (s *e2eTestSuite) Test_QueryAllDataType() {
                        s.NoError(err)
                        s.False(isNull)
                }
+               timeValue, err := sessionDataSet.GetLongByIndex(1)
+               s.NoError(err)
+               s.Equal(int64(1), timeValue)
+               boolValue, err := sessionDataSet.GetBooleanByIndex(2)
+               s.NoError(err)
+               s.Equal(true, boolValue)
+
+               intValue, err := sessionDataSet.GetIntByIndex(3)
+               s.NoError(err)
+               s.Equal(int32(1), intValue)
+
+               longValue, err := sessionDataSet.GetLongByIndex(4)
+               s.NoError(err)
+               s.Equal(int64(1), longValue)
+
+               floatValue, err := sessionDataSet.GetFloatByIndex(5)
+               s.NoError(err)
+               s.Equal(float32(1), floatValue)
+
+               doubleValue, err := sessionDataSet.GetDoubleByIndex(6)
+               s.NoError(err)
+               s.Equal(float64(1), doubleValue)
+
+               textValue, err := sessionDataSet.GetStringByIndex(7)
+               s.NoError(err)
+               s.Equal("text", textValue)
+
+               timestampValue, err := sessionDataSet.GetTimestampByIndex(8)
+               s.NoError(err)
+               s.Equal(time.Unix(0, 1e6), timestampValue)
+
+               dateValue, err := sessionDataSet.GetDateByIndex(9)
+               s.NoError(err)
+               s.Equal(expectedDate, dateValue)
+
+               blobValue, err := sessionDataSet.GetBlobByIndex(10)
+               s.NoError(err)
+               s.Equal([]byte{1}, blobValue.GetValues())
+
+               stringValue, err := sessionDataSet.GetStringByIndex(11)
+               s.NoError(err)
+               s.Equal("string", stringValue)
+       }
+       sessionDataSet.Close()
+
+       sessionDataSet, err = s.session.ExecuteQueryStatement("select s0, s1, 
s2, s3, s4, s5, s6, s7, s8, s9 from root.tsg1.d1 limit 1", nil)
+       for {
+               if hasNext, err := sessionDataSet.Next(); err != nil || 
!hasNext {
+                       break
+               }
+               for _, columnName := range sessionDataSet.GetColumnNames() {
+                       isNull, err := sessionDataSet.IsNull(columnName)
+                       s.NoError(err)
+                       s.False(isNull)
+               }
+               timeValue, err := sessionDataSet.GetLong("Time")
+               s.NoError(err)
+               s.Equal(int64(1), timeValue)
+
                boolValue, err := sessionDataSet.GetBoolean("root.tsg1.d1.s0")
                s.NoError(err)
                s.Equal(true, boolValue)
@@ -550,6 +609,10 @@ func (s *e2eTestSuite) Test_QueryAllDataType() {
                        s.NoError(err)
                        s.False(isNull)
                }
+               timeValue, err := sessionDataSet.GetObject("Time")
+               s.NoError(err)
+               s.Equal(time.Unix(0, 1*1e6), timeValue)
+
                boolValue, err := sessionDataSet.GetObject("root.tsg1.d1.s0")
                s.NoError(err)
                s.Equal(true, boolValue)
@@ -591,6 +654,7 @@ func (s *e2eTestSuite) Test_QueryAllDataType() {
                s.NoError(err)
                s.Equal("string", stringValue)
        }
+       sessionDataSet.Close()
 }
 
 func (s *e2eTestSuite) Test_InvalidSQL() {

Reply via email to