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

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


The following commit(s) were added to refs/heads/dev/1.3 by this push:
     new d2117e9  fix: there is no errors when sql is incorrectErr/check
d2117e9 is described below

commit d2117e9179e83e77c1f0514620118a134399a3f6
Author: Rick <[email protected]>
AuthorDate: Thu Apr 3 17:12:52 2025 +0800

    fix: there is no errors when sql is incorrectErr/check
    
    Co-authored-by: rick <[email protected]>
---
 client/session.go    | 17 +++++++++++++----
 test/e2e/e2e_test.go | 10 +++++++++-
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/client/session.go b/client/session.go
index aa778fb..34ff5dd 100644
--- a/client/session.go
+++ b/client/session.go
@@ -25,7 +25,6 @@ import (
        "encoding/binary"
        "errors"
        "fmt"
-       "github.com/apache/iotdb-client-go/common"
        "log"
        "net"
        "reflect"
@@ -33,6 +32,8 @@ import (
        "strings"
        "time"
 
+       "github.com/apache/iotdb-client-go/common"
+
        "github.com/apache/iotdb-client-go/rpc"
        "github.com/apache/thrift/lib/go/thrift"
 )
@@ -415,26 +416,34 @@ func (s *Session) SetTimeZone(timeZone string) (r 
*common.TSStatus, err error) {
        return r, err
 }
 
-func (s *Session) ExecuteStatement(sql string) (*SessionDataSet, error) {
+func (s *Session) ExecuteStatementWithContext(ctx context.Context, sql string) 
(*SessionDataSet, error) {
        request := rpc.TSExecuteStatementReq{
                SessionId:   s.sessionId,
                Statement:   sql,
                StatementId: s.requestStatementId,
                FetchSize:   &s.config.FetchSize,
        }
-       resp, err := s.client.ExecuteStatement(context.Background(), &request)
+       resp, err := s.client.ExecuteStatement(ctx, &request)
 
        if err != nil && resp == nil {
                if s.reconnect() {
                        request.SessionId = s.sessionId
                        request.StatementId = s.requestStatementId
-                       resp, err = 
s.client.ExecuteStatement(context.Background(), &request)
+                       resp, err = s.client.ExecuteStatement(ctx, &request)
                }
        }
 
+       if statusErr := VerifySuccess(resp.Status); statusErr != nil {
+               return nil, statusErr
+       }
+
        return s.genDataSet(sql, resp), err
 }
 
+func (s *Session) ExecuteStatement(sql string) (*SessionDataSet, error) {
+       return s.ExecuteStatementWithContext(context.Background(), sql)
+}
+
 func (s *Session) ExecuteNonQueryStatement(sql string) (r *common.TSStatus, 
err error) {
        request := rpc.TSExecuteStatementReq{
                SessionId:   s.sessionId,
diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go
index 3ad5c2e..16eaf77 100644
--- a/test/e2e/e2e_test.go
+++ b/test/e2e/e2e_test.go
@@ -20,14 +20,16 @@
 package e2e
 
 import (
+       "context"
        "fmt"
-       "github.com/apache/iotdb-client-go/common"
        "log"
        "math/rand"
        "strings"
        "testing"
        "time"
 
+       "github.com/apache/iotdb-client-go/common"
+
        "github.com/apache/iotdb-client-go/client"
        "github.com/stretchr/testify/suite"
 )
@@ -392,3 +394,9 @@ func (s *e2eTestSuite) Test_InsertAlignedTablets() {
        assert.Equal(status, "8")
        s.session.DeleteStorageGroup("root.ln.**")
 }
+
+func (s *e2eTestSuite) Test_InvalidSQL() {
+       _, err := s.session.ExecuteStatementWithContext(context.Background(), 
"select1 from device")
+       assert := s.Require()
+       assert.Error(err)
+}

Reply via email to