-
Notifications
You must be signed in to change notification settings - Fork 36
DOC: Update Roadmap.md and Readme.md #335
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
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,51 +1,18 @@ | ||
| # Roadmap for Python Driver for SQL Server | ||
|
|
||
| We are thrilled to introduce Python driver for SQL Server (Public Preview) – a modern, high performant, and developer-friendly SDK designed to enhance your SQL Server database connectivity experience. This roadmap outlines the key structural improvements, new features and upcoming enhancements that will set our driver apart from existing solutions. | ||
|
|
||
| Why a New Driver? | ||
|
|
||
| Unlike existing Python SQL Server drivers, we are making substantial improvements to performance, maintainability, and usability by re-architecting the core internals. Our focus is on seamless integration between Python and C++, efficient memory management, better state handling, and advanced DBAPI enhancements. | ||
|
|
||
| Here’s what’s coming: | ||
|
|
||
| **1. Structural changes for abstraction of C++ and Python codebase** | ||
|
|
||
| We are undertaking significant structural changes to provide a clear abstraction between C++ code and Python. This will ensure better maintainability, improved performance, and a cleaner codebase. By leveraging existing pybind11 module, we aim to create a seamless integration between the two languages, allowing for efficient execution and easier debugging. | ||
|
|
||
| This will improve: | ||
| - Maintainability via simplified modular architecture | ||
| - Performance via optimized C++ code | ||
| - Debugging, traceability and seamless interaction between C++ and Python via with PyBind11 module integration | ||
|
|
||
| **2. Future DBAPI Enhancements** | ||
|
|
||
| In future releases, we plan to add several DBAPI enhancements, including: | ||
| - `Callproc()` : Support for calling stored procedures. | ||
| - `setinputsize()` and `setoutputsize()` | ||
| - `Output` and `InputOutput` Parameters: Handling of output and input-output parameters in stored procedures. | ||
| - Optional DBAPIs: Additional optional DBAPI features to provide more flexibility and functionality for developers. | ||
|
|
||
| **3. Cross-Platform Support: Additional Linux Distributions** | ||
|
|
||
| We are committed to providing cross-platform support for our Python driver. In the next few weeks, we will release support for additional Linux distributions viz Alpine, SUSE Linux & Oracle Linux. | ||
|
|
||
| **4. Bulk Copy (BCP)** | ||
|
|
||
| Bulk Copy API (BCP) support is coming soon to the Python Driver for SQL Server. It enables high-speed data ingestion and offers fine-grained control over batch operations, making it ideal for large-scale ETL workflows. | ||
|
|
||
| **5. Asynchronous Query Execution** | ||
|
|
||
| We are also working on adding support for asynchronous query execution. This feature will allow developers to execute queries without blocking the main thread, enabling more responsive and efficient applications. Asynchronous query execution will be particularly beneficial for applications that require high concurrency and low latency. | ||
| - No blocking of the main thread | ||
| - Faster parallel processing – ideal for high-concurrency applications | ||
| - Better integration with async frameworks like asyncio | ||
|
|
||
| We are dedicated to continuously improving the Python driver for SQL Server and welcome feedback from the community. Stay tuned for updates and new features as we work towards delivering a high-quality driver that meets your needs. | ||
| Join the Conversation! | ||
|
|
||
| We are building this for developers, with developers. Your feedback will shape the future of the driver. | ||
| - Follow our [Github Repo](https://github.com/microsoft/mssql-python) | ||
| - Join Discussions – Share your ideas and suggestions | ||
| - Try our alpha release – Help us refine and optimize the experience | ||
|
|
||
| Stay tuned for more updates, and lets build something amazing together. Watch this space for announcements and release timelines. | ||
| The following roadmap summarizes the features planned for the Python Driver for SQL Server. | ||
|
|
||
| | Feature | Description | Status | Target Timeline | | ||
gargsaumya marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| | ------------------------------ | ----------------------------------------------------------------- | ------------ | ------------------------ | | ||
| | Parameter Dictionaries | Allow parameters to be supplied as Python dicts | Planned | Q4 2025 | | ||
| | Return Rows as Dictionaries | Fetch rows as dictionaries for more Pythonic access | Planned | Q4 2025 | | ||
| | Bulk Copy (BCP) | High-throughput ingestion API for ETL workloads | Under Design | Q1 2026 | | ||
| | Asynchronous Query Execution | Non-blocking queries with asyncio support | Planned | Q1 2026 | | ||
| | Vector Datatype Support | Native support for SQL Server vector datatype | Planned | Q1 2026 | | ||
| | Table-Valued Parameters (TVPs) | Pass tabular data structures into stored procedures | Planned | Q1 2026 | | ||
| | C++ Abstraction | Modular separation via pybind11 for performance & maintainability | In Progress | ETA will be updated soon | | ||
| | JSON Datatype Support | Automatic mapping of JSON datatype to Python dicts/lists | Planned | ETA will be updated soon | | ||
| | callproc() | Full DBAPI compliance & stored procedure enhancements | Planned | ETA will be updated soon | | ||
| | setinputsize() | Full DBAPI compliance & stored procedure enhancements | Planned | ETA will be updated soon | | ||
| | setoutputsize() | Full DBAPI compliance & stored procedure enhancements | Planned | ETA will be updated soon | | ||
| | Output/InputOutput Params | Full DBAPI compliance & stored procedure enhancements | Planned | ETA will be updated soon | | ||
gargsaumya marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.