Skip to content

Commit 9d49511

Browse files
authored
Merge pull request #1222 from brojeg/master
Enable funlen linter (part 3)
2 parents f97ddc7 + 1a32b17 commit 9d49511

File tree

3 files changed

+67
-55
lines changed

3 files changed

+67
-55
lines changed

internal/query/result.go

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -130,40 +130,10 @@ func (r *result) nextResultSet(ctx context.Context) (_ *resultSet, err error) {
130130
case <-ctx.Done():
131131
return nil, xerrors.WithStackTrace(ctx.Err())
132132
default:
133-
if resultSetIndex := r.lastPart.GetResultSetIndex(); resultSetIndex >= nextResultSetIndex { //nolint:nestif
133+
if resultSetIndex := r.lastPart.GetResultSetIndex(); resultSetIndex >= nextResultSetIndex {
134134
r.resultSetIndex = resultSetIndex
135135

136-
return newResultSet(func() (_ *Ydb_Query.ExecuteQueryResponsePart, err error) {
137-
defer func() {
138-
if err != nil && !xerrors.Is(err,
139-
io.EOF, context.Canceled,
140-
) {
141-
r.errs = append(r.errs, err)
142-
}
143-
}()
144-
select {
145-
case <-r.closed:
146-
return nil, errClosedResult
147-
default:
148-
part, err := nextPart(ctx, r.stream, r.trace)
149-
if err != nil {
150-
if xerrors.Is(err, io.EOF) {
151-
_ = r.closeOnce(ctx)
152-
}
153-
154-
return nil, xerrors.WithStackTrace(err)
155-
}
156-
r.lastPart = part
157-
if part.GetResultSetIndex() > nextResultSetIndex {
158-
return nil, xerrors.WithStackTrace(fmt.Errorf(
159-
"result set (index=%d) receive part (index=%d) for next result set: %w",
160-
nextResultSetIndex, part.GetResultSetIndex(), io.EOF,
161-
))
162-
}
163-
164-
return part, nil
165-
}
166-
}, r.lastPart, r.trace), nil
136+
return newResultSet(r.getNextResultSetPart(ctx, nextResultSetIndex), r.lastPart, r.trace), nil
167137
}
168138
part, err := nextPart(ctx, r.stream, r.trace)
169139
if err != nil {
@@ -181,6 +151,43 @@ func (r *result) nextResultSet(ctx context.Context) (_ *resultSet, err error) {
181151
}
182152
}
183153

154+
func (r *result) getNextResultSetPart(
155+
ctx context.Context,
156+
nextResultSetIndex int64,
157+
) func() (_ *Ydb_Query.ExecuteQueryResponsePart, err error) {
158+
return func() (_ *Ydb_Query.ExecuteQueryResponsePart, err error) {
159+
defer func() {
160+
if err != nil && !xerrors.Is(err,
161+
io.EOF, context.Canceled,
162+
) {
163+
r.errs = append(r.errs, err)
164+
}
165+
}()
166+
select {
167+
case <-r.closed:
168+
return nil, errClosedResult
169+
default:
170+
part, err := nextPart(ctx, r.stream, r.trace)
171+
if err != nil {
172+
if xerrors.Is(err, io.EOF) {
173+
_ = r.closeOnce(ctx)
174+
}
175+
176+
return nil, xerrors.WithStackTrace(err)
177+
}
178+
r.lastPart = part
179+
if part.GetResultSetIndex() > nextResultSetIndex {
180+
return nil, xerrors.WithStackTrace(fmt.Errorf(
181+
"result set (index=%d) receive part (index=%d) for next result set: %w",
182+
nextResultSetIndex, part.GetResultSetIndex(), io.EOF,
183+
))
184+
}
185+
186+
return part, nil
187+
}
188+
}
189+
}
190+
184191
func (r *result) NextResultSet(ctx context.Context) (_ query.ResultSet, err error) {
185192
onDone := trace.QueryOnResultNextResultSet(r.trace, &ctx,
186193
stack.FunctionID("github.com/ydb-platform/ydb-go-sdk/3/internal/query.(*result).NextResultSet"),

internal/query/session.go

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -122,26 +122,7 @@ func (s *Session) attach(ctx context.Context) (finalErr error) {
122122
return xerrors.WithStackTrace(err)
123123
}
124124

125-
s.closeOnce = xsync.OnceFunc(func(ctx context.Context) (err error) {
126-
defer cancelAttach()
127-
128-
s.setStatus(statusClosing)
129-
defer s.setStatus(statusClosed)
130-
131-
var cancel context.CancelFunc
132-
if d := s.cfg.SessionDeleteTimeout(); d > 0 {
133-
ctx, cancel = xcontext.WithTimeout(ctx, d)
134-
} else {
135-
ctx, cancel = xcontext.WithCancel(ctx)
136-
}
137-
defer cancel()
138-
139-
if err = deleteSession(ctx, s.grpcClient, s.id); err != nil {
140-
return xerrors.WithStackTrace(err)
141-
}
142-
143-
return nil
144-
})
125+
s.closeOnce = xsync.OnceFunc(s.closeAndDeleteSession(cancelAttach))
145126

146127
go func() {
147128
defer func() {
@@ -168,6 +149,29 @@ func (s *Session) attach(ctx context.Context) (finalErr error) {
168149
return nil
169150
}
170151

152+
func (s *Session) closeAndDeleteSession(cancelAttach context.CancelFunc) func(ctx context.Context) (err error) {
153+
return func(ctx context.Context) (err error) {
154+
defer cancelAttach()
155+
156+
s.setStatus(statusClosing)
157+
defer s.setStatus(statusClosed)
158+
159+
var cancel context.CancelFunc
160+
if d := s.cfg.SessionDeleteTimeout(); d > 0 {
161+
ctx, cancel = xcontext.WithTimeout(ctx, d)
162+
} else {
163+
ctx, cancel = xcontext.WithCancel(ctx)
164+
}
165+
defer cancel()
166+
167+
if err = deleteSession(ctx, s.grpcClient, s.id); err != nil {
168+
return xerrors.WithStackTrace(err)
169+
}
170+
171+
return nil
172+
}
173+
}
174+
171175
func deleteSession(ctx context.Context, client Ydb_Query_V1.QueryServiceClient, sessionID string) error {
172176
_, err := client.DeleteSession(ctx,
173177
&Ydb_Query.DeleteSessionRequest{

internal/table/scanner/scanner.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ func (s *valueScanner) setColumnIndexes(columns []string) {
369369
// string
370370
// [16]byte
371371
//
372-
//nolint:gocyclo
372+
//nolint:gocyclo,funlen
373373
func (s *valueScanner) any() interface{} {
374374
x := s.stack.current()
375375
if s.Err() != nil || x.isEmpty() {
@@ -809,7 +809,7 @@ func (s *valueScanner) trySetByteArray(v interface{}, optional, def bool) bool {
809809
return true
810810
}
811811

812-
//nolint:gocyclo
812+
//nolint:gocyclo,funlen
813813
func (s *valueScanner) scanRequired(v interface{}) {
814814
switch v := v.(type) {
815815
case *bool:
@@ -885,7 +885,7 @@ func (s *valueScanner) scanRequired(v interface{}) {
885885
}
886886
}
887887

888-
//nolint:gocyclo
888+
//nolint:gocyclo, funlen
889889
func (s *valueScanner) scanOptional(v interface{}, defaultValueForOptional bool) {
890890
if defaultValueForOptional {
891891
if s.isNull() {
@@ -1092,6 +1092,7 @@ func (s *valueScanner) scanOptional(v interface{}, defaultValueForOptional bool)
10921092
}
10931093
}
10941094

1095+
//nolint:funlen
10951096
func (s *valueScanner) setDefaultValue(dst interface{}) {
10961097
switch v := dst.(type) {
10971098
case *bool:

0 commit comments

Comments
 (0)