Skip to content

Releases: exasol/pyexasol

2.2.1

22 Apr 11:44
4a13137

Choose a tag to compare

2.2.1 - 2026-04-22

Summary

This release increases the allowed pytest range to >=7.0.0,<10". This allows users
to re-lock their dependencies to use the non-vulnerable pytest version 9.0.3.

Security Issues

This release fixes vulnerabilities by updating dependencies:

Dependency Vulnerability Affected Fixed in
cryptography CVE-2026-39892 46.0.6 46.0.7
pygments CVE-2026-4539 2.19.2 2.20.0
pytest CVE-2025-71176 8.4.2 9.0.3
  • #329: Increased allowed pytest range to >=7.0.0,<10" and relocked cryptography,
    pygments, and pytest

Dependency Updates

main

  • Updated dependency cryptography:46.0.6 to 46.0.7

dev

  • Updated dependency exasol-toolbox:6.1.1 to 6.4.0
  • Updated dependency pytest:8.4.2 to 9.0.3

2.2.0

30 Mar 09:45
599256b

Choose a tag to compare

2.2.0 - 2026-03-30

Summary

This update adds a method to create prepared statements. For more details, check out their example usage on the Examples page of the User Guide.

The poetry.lock was updated to handle vulnerable main & transitive dependencies. To ensure usage of secure packages, it is up to the user to similarly relock their dependencies.

Feature

  • #324: Added ExaConnection.create_prepared_statement

Refactoring

Dependency Updates

main

  • Updated dependency cryptography:46.0.5 to 46.0.6
  • Updated dependency orjson:3.11.5 to 3.11.7
  • Updated dependency ujson:5.11.0 to 5.12.0

dev

  • Updated dependency exasol-toolbox:6.0.0 to 6.1.1

2.1.0

10 Mar 08:21
e62f5a7

Choose a tag to compare

2.1.0 - 2026-03-10

Summary

This update improves error reporting for import_from_callback and export_to_callback (used internally for the import_from_* and export_to_* variants) by introducing a custom exception pattern. When data transfer fails, the library now captures and wraps exceptions from the main execution thread, the HTTP thread, and SQL thread. This ensures that concurrent failures are no longer obscured by whichever exception was caught first. Instead, the recorded exceptions are given with their tracebacks, making it easier to identify what went wrong.

Refactoring

  • #303: Updated to exasol-toolbox 5.0.0
  • #307: Updated to exasol-toolbox 5.1.1 and re-locked poetry.lock
  • #309: Re-locked poetry.lock to resolve CVE-2026-26007, which affected cryptography versions <= 46.0.4
  • #311: Updated to exasol-toolbox 6.0.0
  • #317: Added check to export_to_callback and import_from_callback to ensure that the provided callback is Callable; if not, an exception is raised.
  • #319: Improved error handling in the multithreaded export_to_callback so that all recorded exceptions are passed in ExaExportError
  • #313: Improved error handling in the multithreaded import_from_callback so that all recorded exceptions are passed in ExaImportError
  • #279: Modified documentation for exception changes in export_to_callback and import_from_callback

Dependency Updates

main

  • Updated dependency cryptography:46.0.3 to 46.0.5
  • Updated dependency orjson:3.11.4 to 3.11.5
  • Updated dependency polars:1.34.0 to 1.37.1
  • Updated dependency pyarrow:22.0.0 to 23.0.0

dev

  • Updated dependency exasol-toolbox:4.0.0 to 6.0.0
  • Updated dependency pandas-stubs:2.3.3.251219 to 2.3.3.260113

2.0.0

08 Jan 13:17
992f9ce

Choose a tag to compare

2.0.0 - 2026-01-08

This major release:

  • drops support for Python 3.9, which reached its end-of-life in 2025-10.
  • adds a py.typed file, so that type hints can be propagated from PyExasol
  • fixes how with_column_names in export_params behaves. Prior to this version,
    if with_column_names was passed in the export_params, then it was interpreted as
    True regardless of what value was paired with it. In this version, this has been
    altered so that the expected value must be a boolean. For further information
    on the current usage, see the export_params
    documentation.

Bugfix

  • #265: Improved usage of with_column_names in export_params from being a flag to being strictly boolean

Refactoring

  • #287: Removed unused imports (primarily in test files)
  • #289: Dropped support for Python 3.9
  • #294: Updated the exasol-integration-test-docker-environment to 5.0.0
  • #298: Switched rsa (deprecated) with cryptography, added py.typed file, and widened constraints for pyarrow
  • #117: Restricted versions for packaging, python-rapidjson, ujson, and orjson from without bounds to be reasonably bounded.

Internal

  • #283: Updated the exasol-toolbox to 3.0.0
  • #294: Updated the exasol-toolbox to 4.0.0

Dependency Updates

main

  • Updated dependency pyarrow:21.0.0 to 22.0.0
  • Updated dependency python-rapidjson:1.22 to 1.23
  • Removed dependency rsa:4.9.1

dev

  • Updated dependency exasol-integration-test-docker-environment:4.3.0 to 5.0.0
  • Updated dependency exasol-toolbox:1.12.0 to 4.0.0
  • Added dependency pandas-stubs:2.3.3.251219

1.3.0

17 Nov 15:02
9ea190c

Choose a tag to compare

1.3.0 - 2025-11-17

Feature

  • #281: Added check to export_to_parquet to verify directory settings

1.2.2

12 Nov 13:55
ad232eb

Choose a tag to compare

1.2.2 - 2025-11-12

Documentation

  • 279: Adapted documentation relating to export_to_parquet and HTTP transport methods:
    • Added example exceptions from using export_to_parquet when the default is not overridden and the specified destination directory is not empty
    • Clarified that the HTTP transport methods utilize three threads so users may see different exceptions based on timing

1.2.1

31 Oct 12:08
bde39ed

Choose a tag to compare

1.2.1 - 2025-10-31

Summary

This release fixes the export_to_* functions to properly handle delimit in the
generated EXPORT statement. Previously, this would have resulted in an exception being
tossed due to improper formatting.

Additionally, the export_to_parquet has been modified to handle new line characters.
Previously, new line characters would have resulted in an exception being tossed. With
this change, a slight degradation in performance has been noted, but with the current
setup, this is currently unavoidable.

Bugfix

  • #263: Fixed usage of delimit in export_to_* functions
  • #267: Fixed export_to_parquet to handle new lines & preserve order

Documentation

  • #260: Fixed examples for import_from_parquet to have balanced brackets

Internal

  • #271: Re-locked dependencies to resolve CVE-2025-8869 for transitive dependency pip

Dependency Updates

main

  • Updated dependency cryptography:45.0.7 to 46.0.3
  • Updated dependency orjson:3.11.2 to 3.11.4
  • Updated dependency pandas:2.3.1 to 2.3.3
  • Updated dependency polars:1.32.2 to 1.34.0
  • Updated dependency pyarrow:20.0.0 to 21.0.0
  • Updated dependency python-rapidjson:1.21 to 1.22
  • Updated dependency ujson:5.10.0 to 5.11.0

dev

  • Updated dependency exasol-integration-test-docker-environment:4.2.0 to 4.3.0
  • Updated dependency exasol-toolbox:1.9.0 to 1.12.0
  • Updated dependency pytest:8.4.1 to 8.4.2
  • Added dependency pytest-repeat:0.9.4
  • Updated dependency types-ujson:5.10.0.20250326 to 5.10.0.20250822

1.2.0

26 Sep 07:15
87d418a

Choose a tag to compare

1.2.0 - 2025-09-26

This release adds support to import from & export to local parquet file(s). For more details, check out their example usage on the Importing and Exporting Data page of the User Guide.

Features

  • #208: Added ExaConnection.import_from_parquet which can import data from local parquet file(s)
  • #234: Added ExaConnection.export_to_parquet which can export data to local parquet file(s)
  • #254: Added performance tests for http_transport export & import methods

Dependency Updates

main

  • Removed dependency numpy:1.26.4
  • Added dependency pyarrow:20.0.0

performance

  • Added dependency pytest-benchmark:5.1.0

1.1.1

11 Sep 07:57
789b544

Choose a tag to compare

1.1.1 - 2025-09-11

This hotfix fixes a bug with a missing dependency in the pyproject.toml.

Bugs

  • #245: Add dependency "cryptography"

Dependency Updates

main

  • Added dependency cryptography:45.0.7

1.1.0

05 Sep 13:47
b1013e3

Choose a tag to compare

1.1.0 - 2025-09-05

This release adds support for the reserved word "nocertcheck" as fingerprint value, which disables the certificate check when establishing a connection.
Besides the release fixes a bug for ImportQuery and ExportQuery.

Bugfix

  • #241: Switched checks for ImportQuery and ExportQuery to test more explicitly if None (instead of truthy assumptions).

Features

  • #235: Support NOCERTCHECK as fingerprint