Skip to content

Commit ce7d924

Browse files
Fix for result.AffectedRows (#79)
There were a few cases where we were not returning the correct AffectedRows in the result. Silly mistake.
2 parents 2cd4850 + 020a6c6 commit ce7d924

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

connection.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,18 +208,18 @@ func (c *conn) runQuery(ctx context.Context, query string, args []driver.NamedVa
208208
// good
209209
case cli_service.TOperationState_FINISHED_STATE:
210210
// return handle to fetch results later
211-
return exStmtResp, opStatus, nil
211+
return exStmtResp, statusResp, nil
212212
// bad
213213
case cli_service.TOperationState_CANCELED_STATE,
214214
cli_service.TOperationState_CLOSED_STATE,
215215
cli_service.TOperationState_ERROR_STATE,
216216
cli_service.TOperationState_TIMEDOUT_STATE:
217217
logBadQueryState(log, statusResp)
218-
return exStmtResp, opStatus, errors.New(statusResp.GetDisplayMessage())
218+
return exStmtResp, statusResp, errors.New(statusResp.GetDisplayMessage())
219219
// live states
220220
default:
221221
logBadQueryState(log, statusResp)
222-
return exStmtResp, opStatus, errors.New("invalid operation state. This should not have happened")
222+
return exStmtResp, statusResp, errors.New("invalid operation state. This should not have happened")
223223
}
224224
// weird states
225225
default:

connection_test.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -731,11 +731,13 @@ func TestConn_runQuery(t *testing.T) {
731731
}
732732
return executeStatementResp, nil
733733
}
734+
var numModRows int64 = 2
734735

735736
getOperationStatus := func(ctx context.Context, req *cli_service.TGetOperationStatusReq) (r *cli_service.TGetOperationStatusResp, err error) {
736737
getOperationStatusCount++
737738
getOperationStatusResp := &cli_service.TGetOperationStatusResp{
738-
OperationState: cli_service.TOperationStatePtr(cli_service.TOperationState_FINISHED_STATE),
739+
OperationState: cli_service.TOperationStatePtr(cli_service.TOperationState_FINISHED_STATE),
740+
NumModifiedRows: &numModRows,
739741
}
740742
return getOperationStatusResp, nil
741743
}
@@ -756,6 +758,7 @@ func TestConn_runQuery(t *testing.T) {
756758
assert.Equal(t, 1, getOperationStatusCount)
757759
assert.NotNil(t, exStmtResp)
758760
assert.NotNil(t, opStatusResp)
761+
assert.Equal(t, &numModRows, opStatusResp.NumModifiedRows)
759762
})
760763

761764
t.Run("runQuery should return resp and error when query is canceled", func(t *testing.T) {
@@ -775,11 +778,13 @@ func TestConn_runQuery(t *testing.T) {
775778
}
776779
return executeStatementResp, nil
777780
}
781+
var numModRows int64 = 3
778782

779783
getOperationStatus := func(ctx context.Context, req *cli_service.TGetOperationStatusReq) (r *cli_service.TGetOperationStatusResp, err error) {
780784
getOperationStatusCount++
781785
getOperationStatusResp := &cli_service.TGetOperationStatusResp{
782-
OperationState: cli_service.TOperationStatePtr(cli_service.TOperationState_CANCELED_STATE),
786+
OperationState: cli_service.TOperationStatePtr(cli_service.TOperationState_CANCELED_STATE),
787+
NumModifiedRows: &numModRows,
783788
}
784789
return getOperationStatusResp, nil
785790
}
@@ -800,6 +805,7 @@ func TestConn_runQuery(t *testing.T) {
800805
assert.Equal(t, 1, getOperationStatusCount)
801806
assert.NotNil(t, exStmtResp)
802807
assert.NotNil(t, opStatusResp)
808+
assert.Equal(t, &numModRows, opStatusResp.NumModifiedRows)
803809
})
804810

805811
t.Run("runQuery should return resp when query is finished with DirectResults", func(t *testing.T) {
@@ -931,11 +937,12 @@ func TestConn_runQuery(t *testing.T) {
931937
}
932938
return executeStatementResp, nil
933939
}
934-
940+
var numModRows int64 = 3
935941
getOperationStatus := func(ctx context.Context, req *cli_service.TGetOperationStatusReq) (r *cli_service.TGetOperationStatusResp, err error) {
936942
getOperationStatusCount++
937943
getOperationStatusResp := &cli_service.TGetOperationStatusResp{
938-
OperationState: cli_service.TOperationStatePtr(cli_service.TOperationState_FINISHED_STATE),
944+
OperationState: cli_service.TOperationStatePtr(cli_service.TOperationState_FINISHED_STATE),
945+
NumModifiedRows: &numModRows,
939946
}
940947
return getOperationStatusResp, nil
941948
}
@@ -953,6 +960,7 @@ func TestConn_runQuery(t *testing.T) {
953960

954961
assert.NoError(t, err)
955962
assert.Equal(t, 1, executeStatementCount)
963+
assert.Equal(t, &numModRows, opStatusResp.NumModifiedRows)
956964
assert.Equal(t, 1, getOperationStatusCount)
957965
assert.NotNil(t, exStmtResp)
958966
assert.NotNil(t, opStatusResp)

0 commit comments

Comments
 (0)