Releases: pyathena-dev/PyAthena
Releases · pyathena-dev/PyAthena
v3.32.0
What's Changed
- Add on_poll callback for real-time query monitoring (#723) by @laughingman7743 in #724
Full Changelog: v3.31.1...v3.32.0
v3.31.1
What's Changed
- Bump pyarrow from 18.1.0 to 23.0.1 by @dependabot[bot] in #720
- Fix empty object write for small files in fsspec transactions by @laughingman7743 in #721
Full Changelog: v3.31.0...v3.31.1
v3.31.0
What's Changed
- Bump requests from 2.32.4 to 2.33.0 by @dependabot[bot] in #699
- Pin GitHub Actions to commit SHAs for supply chain security by @laughingman7743 in #700
- Update GitHub Actions to latest versions by @laughingman7743 in #702
- Bump pygments from 2.18.0 to 2.20.0 by @dependabot[bot] in #703
- Bump pytest from 8.3.4 to 9.0.3 by @dependabot[bot] in #704
- Bump urllib3 from 2.6.3 to 2.7.0 by @dependabot[bot] in #705
- Bump idna from 3.10 to 3.15 by @dependabot[bot] in #706
- feat: support newer GetQueryExecution response fields by @laughingman7743 in #708
- docs: note JWT Trusted Identity Propagation is not supported by @laughingman7743 in #716
- docs: note Result Reuse semantic-equivalence behavior change (2025-11) by @laughingman7743 in #714
- ci: introduce markdownlint-cli2 and verify docs build on PRs by @laughingman7743 in #718
- docs: add federated passthrough queries section by @laughingman7743 in #715
Full Changelog: v3.30.1...v3.31.0
v3.30.1
What's Changed
- Move _normalize_hive_syntax to DefaultTypeConverter and fix pass stubs by @laughingman7743 in #695
- Always use C engine for CSV parsing and simplify engine selection logic by @laughingman7743 in #697
Bug Fixes
- Fix CSV parsing performance regression — PR #594 incorrectly forced the Python CSV engine for files over 50MB based on fabricated claims about pandas C parser int32 limitations. The C engine is now always used as the default (same as pandas' own default), restoring up to 28% faster CSV parsing. See #696 for details.
Internal
- Refactored type converter: moved
_normalize_hive_syntaxtoDefaultTypeConverterand cleaned up pass stubs. - Simplified CSV engine selection from 4 methods to 2 by removing dead code and inlining pyarrow compatibility checks.
Affected Versions
All versions from v3.17.0 through v3.30.0 (released 2025-08-09 to 2026-02-28) are affected by this performance regression. The last unaffected version is v3.16.0.
Workaround for older versions
If you cannot upgrade to v3.30.1, explicitly specify the C engine to bypass the incorrect engine selection:
cursor = connection.cursor(PandasCursor, engine="c")Full Changelog: v3.30.0...v3.30.1
v3.30.0
What's Changed
- Add documentation for AioS3FileSystem and S3Executor by @laughingman7743 in #686
- Expand ruff lint rules and rename make targets (chk→lint, fmt→format) by @laughingman7743 in #687
- Add AioSQLAlchemy extra package to documentation by @laughingman7743 in #688
- Add result_set_type_hints for precise complex type conversion by @laughingman7743 in #690
Full Changelog: v3.29.3...v3.30.0
v3.29.3
What's Changed
- Add S3Executor strategy pattern for async S3 operations by @laughingman7743 in #684
Full Changelog: v3.29.2...v3.29.3
v3.29.2
What's Changed
- Fix release workflow and split CI test jobs for independent retries by @laughingman7743 in #682
- Rename aconnect to aio_connect by @laughingman7743 in #683
Full Changelog: v3.29.1...v3.29.2
v3.29.1
What's Changed
- Add async SQLAlchemy dialects for native asyncio support by @laughingman7743 in #679
- Fix mypy errors with SQLAlchemy 2.0.46+ by @laughingman7743 in #681
Full Changelog: v3.29.0...v3.29.1
v3.29.0
What's Changed
- Add native asyncio cursor support (Phase 1) by @laughingman7743 in #666
- Add native asyncio specialized cursors and DRY refactors (Phase 2) by @laughingman7743 in #667
- Add native asyncio S3FS and Spark cursors with boilerplate deduplication (Phase 3) by @laughingman7743 in #668
- Add documentation for native asyncio cursors by @laughingman7743 in #671
- Wrap fetch methods in asyncio.to_thread for aio pandas/arrow/polars cursors by @laughingman7743 in #674
- Extract shared boilerplate from sync cursors into WithFetch mixin by @laughingman7743 in #676
- Extract _prepare_unload() helper into BaseCursor by @laughingman7743 in #678
Full Changelog: v3.28.0...v3.29.0
v3.28.0
What's Changed
- Update documentation domain to pyathena.dev by @laughingman7743 in #663
- Support Athena managed query result storage by @laughingman7743 in #665
Full Changelog: v3.27.2...v3.28.0