Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GODRIVER-3086 Add ErrorCodes to ServerError API #1894

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

prestonvasquez
Copy link
Collaborator

GODRIVER-3086

Summary

Extend the ServerError interface to include ErrorCodes which will return a list of deduplicated error codes returned by the server during the lifetime of operation execution.

Background & Motivation

The Go Driver provides a way to check if a ServerError has a specific error code, but no way to determine all error codes that occurred during the operation.

@prestonvasquez prestonvasquez marked this pull request as draft November 15, 2024 22:29
@prestonvasquez prestonvasquez marked this pull request as ready for review November 15, 2024 22:39
@mongodb-drivers-pr-bot mongodb-drivers-pr-bot bot added the priority-3-low Low Priority PR for Review label Nov 15, 2024
Copy link
Contributor

API Change Report

./v2/mongo

compatible changes

BulkWriteException.ErrorCodes: added
CommandError.ErrorCodes: added
ServerError.ErrorCodes: added
WriteError.ErrorCodes: added
WriteException.ErrorCodes: added

Copy link
Contributor

@FGasper FGasper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this! :)

@@ -252,9 +252,23 @@ type ServerError interface {
// HasErrorCodeWithMessage returns true if any of the contained errors have the specified code and message.
HasErrorCodeWithMessage(int, string) bool

// ErrorCodes returns a deduplicated list of error codes returned by the
// server.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’d be good to mention if there’s a defined sort order.

return hasErrorCode(e, code)
}

// ErrorCodes returns a list of error codes returned by the server.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’d be good to mention if there’s a defined sort order.

}
return false

// Deduplicate error codes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not that it affects us :), but: I see the same logic here and in WriteException’s method. This seems like the sort of thing you’d deduplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority-3-low Low Priority PR for Review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants