Skip to content

Commit d2117e9

Browse files
authored
fix: there is no errors when sql is incorrectErr/check
Co-authored-by: rick <[email protected]>
1 parent b4e7151 commit d2117e9

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

client/session.go

+13-4
Original file line numberDiff line numberDiff line change
@@ -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+
438447
func (s *Session) ExecuteNonQueryStatement(sql string) (r *common.TSStatus, err error) {
439448
request := rpc.TSExecuteStatementReq{
440449
SessionId: s.sessionId,

test/e2e/e2e_test.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,16 @@
2020
package e2e
2121

2222
import (
23+
"context"
2324
"fmt"
24-
"github.com/apache/iotdb-client-go/common"
2525
"log"
2626
"math/rand"
2727
"strings"
2828
"testing"
2929
"time"
3030

31+
"github.com/apache/iotdb-client-go/common"
32+
3133
"github.com/apache/iotdb-client-go/client"
3234
"github.com/stretchr/testify/suite"
3335
)
@@ -392,3 +394,9 @@ func (s *e2eTestSuite) Test_InsertAlignedTablets() {
392394
assert.Equal(status, "8")
393395
s.session.DeleteStorageGroup("root.ln.**")
394396
}
397+
398+
func (s *e2eTestSuite) Test_InvalidSQL() {
399+
_, err := s.session.ExecuteStatementWithContext(context.Background(), "select1 from device")
400+
assert := s.Require()
401+
assert.Error(err)
402+
}

0 commit comments

Comments
 (0)