FEAT: Using Row Objects in MacOS Cursor #81
Merged
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.
Summary
This pull request refactors the
Cursor
class inmssql_python/cursor_mac.py
to improve data handling by introducing aRow
object for query results. The changes enhance type safety and make the interface more consistent by replacing raw sequences (e.g., tuples) withRow
objects. Additionally, the implementation offetchone
,fetchmany
, andfetchall
methods has been updated to reflect this new design.Refactoring for Improved Data Handling:
Row
Object: Added an import for theRow
class and updated thefetchone
,fetchmany
, andfetchall
methods to returnRow
objects instead of raw sequences like tuples. This change improves type safety and encapsulates row data with metadata (mssql_python/cursor_mac.py
, [1] [2] [3].Method Updates:
fetchone
Method: Refactored to fetch raw data, check for no data, and return aRow
object constructed with the row data and description.fetchmany
Method: Updated to fetch a specified number of rows, validate input size, and return a list ofRow
objects.fetchall
Method: Modified to fetch all remaining rows and return them as a list ofRow
objects.Issue Reference
Fixes AB#37748
Checklist
Testing Performed