fix(mysql): validate parameter count for prepared statements#3857
Merged
Conversation
1d2eba4 to
b1caf01
Compare
Add validation to ensure the number of provided parameters matches the expected count for MySQL prepared statements. This prevents protocol errors by returning an error if the counts do not match before sending the statement for execution.
b1caf01 to
149a36c
Compare
joeydewaal
reviewed
Jun 23, 2025
Contributor
joeydewaal
left a comment
There was a problem hiding this comment.
Like I mentioned, I'm no maintainer but here is some feedback. Also, it is generally recommended to add a regression test when fixing an issue so that might be worth adding.
Replace direct Error::Protocol(format!()) calls with err_protocol! macro in MySQL connection executor.
abonander
requested changes
Jul 1, 2025
Collaborator
abonander
left a comment
There was a problem hiding this comment.
Could you please add a test for this?
- Add test for too few parameters provided to query - Add test for too many parameters provided to query - Add test for parameters provided when none expected - All tests verify Error::Protocol is returned for mismatches Covers cases for issue transact-rs#3774 parameter validation fix.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Does your PR solve an issue?
fixes #3774
Is this a breaking change?
No. This PR adds proper error handling when the number of parameters provided doesn't match the number expected by a prepared statement in MySQL.