@@ -25,14 +25,15 @@ import (
2525 "encoding/binary"
2626 "errors"
2727 "fmt"
28- "github.com/apache/iotdb-client-go/common"
2928 "log"
3029 "net"
3130 "reflect"
3231 "sort"
3332 "strings"
3433 "time"
3534
35+ "github.com/apache/iotdb-client-go/common"
36+
3637 "github.com/apache/iotdb-client-go/rpc"
3738 "github.com/apache/thrift/lib/go/thrift"
3839)
@@ -415,26 +416,34 @@ func (s *Session) SetTimeZone(timeZone string) (r *common.TSStatus, err error) {
415416 return r , err
416417}
417418
418- func (s * Session ) ExecuteStatement ( sql string ) (* SessionDataSet , error ) {
419+ func (s * Session ) ExecuteStatementWithContext ( ctx context. Context , sql string ) (* SessionDataSet , error ) {
419420 request := rpc.TSExecuteStatementReq {
420421 SessionId : s .sessionId ,
421422 Statement : sql ,
422423 StatementId : s .requestStatementId ,
423424 FetchSize : & s .config .FetchSize ,
424425 }
425- resp , err := s .client .ExecuteStatement (context . Background () , & request )
426+ resp , err := s .client .ExecuteStatement (ctx , & request )
426427
427428 if err != nil && resp == nil {
428429 if s .reconnect () {
429430 request .SessionId = s .sessionId
430431 request .StatementId = s .requestStatementId
431- resp , err = s .client .ExecuteStatement (context . Background () , & request )
432+ resp , err = s .client .ExecuteStatement (ctx , & request )
432433 }
433434 }
434435
436+ if statusErr := VerifySuccess (resp .Status ); statusErr != nil {
437+ return nil , statusErr
438+ }
439+
435440 return s .genDataSet (sql , resp ), err
436441}
437442
443+ func (s * Session ) ExecuteStatement (sql string ) (* SessionDataSet , error ) {
444+ return s .ExecuteStatementWithContext (context .Background (), sql )
445+ }
446+
438447func (s * Session ) ExecuteNonQueryStatement (sql string ) (r * common.TSStatus , err error ) {
439448 request := rpc.TSExecuteStatementReq {
440449 SessionId : s .sessionId ,
0 commit comments