Very large integers and non-numeric floats as parameters #671
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.
This PR attempts to fix #670 . Currently, conversions from PyLongObject and PyFloatObject type python parameters to C-style values are not checked for success. This PR addresses that.
When converting integers, an Overflow exception is generated by PyLong_AsLongLong() if the integer value is larger than an 8-byte integer can contain. For floats, no exception is generated by PyFloat_AsDouble() for non-numeric float values, but a ProgrammingError is raised by the driver.
It may be better in future to raise DataError exceptions in both cases, but that would require more extensive code changes.