- 
                Notifications
    You must be signed in to change notification settings 
- Fork 27
STYLE: Cpp linting #300
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
STYLE: Cpp linting #300
Conversation
| 📊 Code Coverage Report
 Diff CoverageDiff: main...HEAD, staged and unstaged changes
 Summary
 mssql_python/pybind/connection/connection.cppLines 222-231   222             // Limit static buffer growth for memory safety
  223             constexpr size_t MAX_BUFFER_COUNT = 100;
  224             if (wstr_buffers.size() >= MAX_BUFFER_COUNT) {
  225             // Remove oldest 50% of entries when limit reached
! 226             wstr_buffers.erase(wstr_buffers.begin(),
! 227                                wstr_buffers.begin() + (MAX_BUFFER_COUNT / 2));
  228             }
  229 
  230             wstr_buffers.push_back(wstr);Lines 258-267   258                 LOG("Set string attribute successfully");
  259             }
  260             return ret;
  261         } catch (const std::exception& e) {
! 262             LOG("Exception during string attribute setting: " +
! 263                 std::string(e.what()));
  264             return SQL_ERROR;
  265         }
  266     } else if (py::isinstance<py::bytes>(value) ||
  267                py::isinstance<py::bytearray>(value)) {Lines 272-281   272             // Limit static buffer growth
  273             constexpr size_t MAX_BUFFER_COUNT = 100;
  274             if (buffers.size() >= MAX_BUFFER_COUNT) {
  275             // Remove oldest 50% of entries when limit reached
! 276             buffers.erase(buffers.begin(),
! 277                           buffers.begin() + (MAX_BUFFER_COUNT / 2));
  278             }
  279 
  280             buffers.emplace_back(std::move(binary_data));
  281             SQLPOINTER ptr = const_cast<char*>(buffers.back().c_str());Lines 290-299   290                 LOG("Set attribute successfully with binary data");
  291             }
  292             return ret;
  293         } catch (const std::exception& e) {
! 294             LOG("Exception during binary attribute setting: " +
! 295                 std::string(e.what()));
  296             return SQL_ERROR;
  297         }
  298     } else {
  299         LOG("Unsupported attribute value type");mssql_python/pybind/connection/connection_pool.cppLines 58-67   58             valid_conn = std::make_shared<Connection>(connStr, true);
  59             valid_conn->connect(attrs_before);
  60             ++_current_size;
  61         } else if (!valid_conn) {
! 62             throw std::runtime_error(
! 63                 "ConnectionPool::acquire: pool size limit reached");
  64         }
  65     }
  66 
  67     // Phase 3: Disconnect expired/bad connections outside lockLines 99-108    99     for (auto& conn : to_close) {
  100         try {
  101             conn->disconnect();
  102         } catch (const std::exception& ex) {
! 103             LOG("ConnectionPool::close: disconnect failed: {}",
! 104                 ex.what());
  105         }
  106     }
  107 }mssql_python/pybind/unix_buffers.h📋 Files Needing Attention📉 Files with overall lowest coverage (click to expand)mssql_python.pybind.ddbc_bindings.cpp: 70.7%
mssql_python.row.py: 77.9%
mssql_python.pybind.connection.connection_pool.cpp: 78.9%
mssql_python.ddbc_bindings.py: 79.6%
mssql_python.pybind.connection.connection.cpp: 81.2%
mssql_python.connection.py: 82.9%
mssql_python.cursor.py: 83.6%
mssql_python.auth.py: 87.1%
mssql_python.pooling.py: 87.7%
mssql_python.exceptions.py: 92.1%🔗 Quick Links
 | 
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 applies C++ linting and code style improvements to the connection implementation files in the mssql_python/pybind/connection directory. The changes focus on code readability, maintainability, and type safety without altering functional behavior.
Key changes include:
- Reformatted long function calls and statements across multiple lines for improved readability with consistent indentation
- Enhanced type safety by replacing long longwithint64_tand usingreinterpret_castfor pointer conversions
- Improved error handling with more descriptive error messages and robust exception handling
Reviewed Changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description | 
|---|---|
| mssql_python/pybind/connection/connection.h | Updated include statements and reformatted function signatures for consistency | 
| mssql_python/pybind/connection/connection.cpp | Extensive formatting improvements including line splitting, type safety enhancements, and improved error handling throughout | 
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
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. The added comments are non-blocking.
… jahnvi/code_linting_cpp
Work Item / Issue Reference
Summary
This pull request refactors the
connection.cppandconnection.hfiles to improve code readability, maintainability, and consistency, while also making minor corrections and clarifications to comments. The changes mainly involve formatting, type usage, and error handling improvements, as well as updating include paths and constructor signatures.Code Formatting and Readability Improvements
getEnvHandle,allocateDbcHandle,commit,rollback, and others inconnection.cpp.Type and Variable Usage Updates
setAttributefromlong longtoint64_tfor clarity and platform consistency.Error Handling Enhancements
Include Path and Constructor Signature Updates
connection.cppandconnection.hfor consistency and to support future platform agnostic changes.ConnectionHandleconstructor signature to improve clarity and maintainability.