fix: include parameter context in SQLite binding errors - #314
Merged
Merged
Conversation
Check every sqlite3_bind result and reject invalid parameter indexes across sync, async, and batch APIs. Closes margelo#309.
|
@chrispader is attempting to deploy a commit to the Margelo Team on Vercel. A member of the Team first needs to authorize it. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Member
|
Thanks for the PR @huytdps13400 ! 🙌🏼 |
This branch was successfully deployed
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.
SQLite binding errors currently omit the parameter index and numeric error code, which makes invalid parameter lists harder to diagnose. The core bind-status checks already landed on main in #294. This PR adds the remaining error context to the shared binder without including parameter values.
Omitted placeholders still bind as SQL NULL, so an exact parameter count is not required. The guide and public parameter type document this behavior. Regression coverage includes sync and async execution, batches, grouped batch rollback, and reusable prepared statements.
Reproduction
Execute
SELECT ?with two parameter values. The operation must throw or reject with parameter 2, SQLite error 25, andcolumn index out of range, without exposing the extra value. Repeat through a prepared statement or a batch; a correctly sized parameter list should still succeed afterward.Fixes #309.