Commit 16a41f5
authored
RELEASE:1.13.0 (microsoft#707)
### Work Item / Issue Reference
>
[AB#47087](https://sqlclientdrivers.visualstudio.com/c6d89619-62de-46a0-8b46-70b92a84d85e/_workitems/edit/47087)
-------------------------------------------------------------------
### Summary
Release mssql-python v1.13.0.
Version bump to 1.13.0. Updates `mssql_python/__init__.py`, `setup.py`,
`PyPI_Description.md`, and the README "Important Note" section. Bundled
`mssql_py_core` bumped from 0.1.7 to 0.1.8 (no source/API changes —
dev-nightly to stable pin).
#### Enhancements
- **ODBC driver ships exclusively via `mssql-python-odbc` (Phase 2)** —
The `libs/` fallback introduced in v1.12.0 has been removed.
`mssql-python` now hard-depends on `mssql-python-odbc==18.6.2.1`; `pip
install mssql-python` still pulls the driver package transparently.
Smaller wheels; driver binaries managed independently (microsoft#693).
- **Apache Arrow bulk copy** — New `Cursor.bulkcopy_arrow(table_name,
source)` method for high-performance bulk loading from `pyarrow.Table` /
`RecordBatch` / Arrow C Data Interface sources; classic `bulkcopy()` now
raises `TypeError` for Arrow inputs and steers users to the new method
(microsoft#665).
- **`token_provider=` parameter for Azure Identity credentials** —
`connect()` accepts any credential with a `.get_token(scope)` method
(`DefaultAzureCredential`, `AzureCliCredential`,
`ManagedIdentityCredential`, …). Mutually exclusive with
`Authentication=` in the connection string (microsoft#603, issue microsoft#577).
- **Identity-aware connection pooling with token-expiry refresh** — Pool
now keys on security context, preventing cross-identity connection
leaks; token acquisition deferred to pool-misses; connections with
near-expiry tokens refreshed automatically (microsoft#660, issues microsoft#651, microsoft#659).
#### Bug Fixes
- **Silent zero-row `executemany` batches on late NULLs** — Fixed
numeric array parameter binding paths
(`TINYINT`/`SMALLINT`/`INT`/`FLOAT`) that left indicator slots
uninitialized when a NULL appeared partway through the batch (microsoft#702,
issue microsoft#670).
- **`SQL_WVARCHAR` output converter applied as catch-all to non-string
columns** — Fallback now gated on `str`/`bytes` mapped types (microsoft#692,
issue microsoft#691).
- **Integer-keyed output converters silently never fired** —
`add_output_converter(SQL_DECIMAL, ...)` and other integer SQL type code
keys now dispatch correctly (pyodbc parity) (microsoft#690, issue microsoft#684).
- **`RecordBatchReader.Close()` for Arrow result sets** —
`Cursor.arrow_reader()` now returns a wrapper whose `.close()` releases
server-side resources and leaves the parent cursor usable (microsoft#644, issue
microsoft#643).
- **`AttributeError` in `Cursor.__del__` on partially-initialized
cursor** — `__init__` sets `closed`/`hstmt` before any raise; `__del__`
uses correct `sys.is_finalizing()` guard (microsoft#646, issue microsoft#642).
#### Version Bump
- `mssql_python/__init__.py`: `__version__ = "1.13.0"`
- `setup.py`: `version="1.13.0"`
- `PyPI_Description.md`: `## What's new in v1.13.0` section refreshed
- `README.md`: "Important Note" updated for Phase 2 (no more `libs/`
fallback, `mssql-python-odbc==18.6.2.1`)1 parent a6a7c93 commit 16a41f5
4 files changed
Lines changed: 16 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
43 | 46 | | |
44 | 47 | | |
45 | 48 | | |
46 | | - | |
47 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
48 | 54 | | |
49 | 55 | | |
50 | 56 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | | - | |
24 | | - | |
25 | | - | |
| 23 | + | |
26 | 24 | | |
27 | 25 | | |
28 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | | - | |
| 200 | + | |
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
| |||
0 commit comments