-
Notifications
You must be signed in to change notification settings - Fork 27
FIX: cursor.rowcount #263
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
FIX: cursor.rowcount #263
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request fixes the rowcount attribute in the cursor implementation to accurately reflect the number of rows fetched during various operations. The fix addresses GitHub Issue #258 by ensuring rowcount is properly updated after fetchone, fetchmany, and fetchall operations.
- Updates cursor fetch methods to set
rowcountto the cumulative number of rows fetched - Handles edge cases like empty result sets by setting
rowcountto 0 - Adds comprehensive test coverage for various fetch scenarios and data types
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| mssql_python/cursor.py | Updates fetchone, fetchmany, and fetchall methods to properly maintain the rowcount attribute |
| tests/test_004_cursor.py | Adds three new test functions covering rowcount behavior for different fetch operations and edge cases |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
📊 Code Coverage Report
Diff CoverageDiff: main...HEAD, staged and unstaged changes
Summary
📋 Files Needing Attention📉 Files with overall lowest coverage (click to expand)mssql_python.pybind.connection.connection.cpp: 67.6%
mssql_python.ddbc_bindings.py: 68.5%
mssql_python.pybind.ddbc_bindings.cpp: 69.4%
mssql_python.pybind.connection.connection_pool.cpp: 78.9%
mssql_python.cursor.py: 79.6%
mssql_python.connection.py: 81.7%
mssql_python.helpers.py: 84.7%
mssql_python.auth.py: 85.3%
mssql_python.type.py: 86.8%
mssql_python.pooling.py: 88.8%🔗 Quick Links
|
sumitmsft
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Approving PR
Work Item / Issue Reference
Summary
This pull request improves the accuracy and consistency of the
rowcountattribute in themssql_pythoncursor implementation, ensuring it reflects the correct number of rows affected or fetched after various operations. It also introduces comprehensive tests to verifyrowcountbehavior for different fetch methods and scenarios, including edge cases and specific data types.Enhancements to
rowcountlogic:fetchone,fetchmany, andfetchallmethods inmssql_python/cursor.pyto setrowcountcorrectly after each fetch operation, including for empty result sets. This ensuresrowcountis 0 for empty results, and matches the total number of rows fetched for non-empty results.Expanded test coverage for
rowcount:tests/test_004_cursor.pyto verifyrowcountupdates afterfetchone,fetchmany, andfetchall, and to check behavior for inserts, selects, and edge cases such as empty result sets and tables with GUID columns. These tests cover typical usage patterns as well as specific scenarios reported in GitHub issues.