2
0

feat: remove unnecessary pending for CopyInResponse

This commit is contained in:
Rueian
2021-09-27 14:29:53 +08:00
committed by Jack Christensen
parent 3bee0c6398
commit 290ee79d1e
+2 -21
View File
@@ -1185,27 +1185,6 @@ func (pgConn *PgConn) CopyFrom(ctx context.Context, r io.Reader, sql string) (Co
return nil, &writeError{err: err, safeToRetry: n == 0} return nil, &writeError{err: err, safeToRetry: n == 0}
} }
// Read until copy in response or error.
var commandTag CommandTag
var pgErr error
pendingCopyInResponse := true
for pendingCopyInResponse {
msg, err := pgConn.receiveMessage()
if err != nil {
pgConn.asyncClose()
return nil, preferContextOverNetTimeoutError(ctx, err)
}
switch msg := msg.(type) {
case *pgproto3.CopyInResponse:
pendingCopyInResponse = false
case *pgproto3.ErrorResponse:
pgErr = ErrorResponseToPgError(msg)
case *pgproto3.ReadyForQuery:
return commandTag, pgErr
}
}
// Send copy data // Send copy data
abortCopyChan := make(chan struct{}) abortCopyChan := make(chan struct{})
copyErrChan := make(chan error, 1) copyErrChan := make(chan error, 1)
@@ -1244,6 +1223,7 @@ func (pgConn *PgConn) CopyFrom(ctx context.Context, r io.Reader, sql string) (Co
} }
}() }()
var pgErr error
var copyErr error var copyErr error
for copyErr == nil && pgErr == nil { for copyErr == nil && pgErr == nil {
select { select {
@@ -1280,6 +1260,7 @@ func (pgConn *PgConn) CopyFrom(ctx context.Context, r io.Reader, sql string) (Co
} }
// Read results // Read results
var commandTag CommandTag
for { for {
msg, err := pgConn.receiveMessage() msg, err := pgConn.receiveMessage()
if err != nil { if err != nil {