baha-bouali commented on code in PR #69695: URL: https://github.com/apache/airflow/pull/69695#discussion_r3651405229
########## providers/exasol/docs/changelog.rst: ########## @@ -27,6 +27,26 @@ Changelog --------- +Breaking changes +~~~~~~~~~~~~~~~~ + +* ``Migrate exasol provider to pyexasol 2.x; remove the <2 cap (#69123)`` + + This provider now requires ``pyexasol>=2.0.0,<3``. pyexasol 2.0.0 ships a ``py.typed`` marker + (`pyexasol changelog <https://exasol.github.io/pyexasol/master/changes/changes_2.html>`__), which + surfaces several previously-hidden type mismatches in the Exasol hook: + + * ``ExasolHook.get_records()`` and ``ExasolHook.get_first()`` now only accept a single SQL string, + not a list of statements (pyexasol's underlying ``execute()`` never actually supported a list; use + ``ExasolHook.run()`` for executing multiple statements in sequence). + * ``parameters``/``query_params`` passed to ``get_records()``, ``get_first()``, ``run()``, and + ``get_df()``/``get_pandas_df()`` must be a ``dict``/``Mapping``. Positional-style parameters + (lists/tuples) were never actually supported by pyexasol at runtime and will now raise a clear + ``TypeError`` instead of failing deep inside pyexasol (or silently doing the wrong thing). + * If you pass ``export_params={"with_column_names": ...}`` to ``ExasolHook.export_to_file()`` or + ``ExasolToS3Operator``, note that pyexasol 2.0.0 fixed this option to be interpreted as a real + boolean; previously any value (including ``False``) was treated as ``True``. Review Comment: There are two things I can confirm with the changelog * `with_column_names` boolean fix: I can confirm that pyexasol's changelog has a dedicated bugfix (https://github.com/exasol/pyexasol/releases#release-2.2.1 - \# 265)). So any value used to get forced to be `True`. Now it should require a real Boolean * `py.typed` marker: Confirmed. In the Same Changelog batch above (# 298) pyexasol added it when swapping the deprecated `rsa` dependency for `cryptography`. I think that this is the actual mechanism not a breaking change. However, * `get_records()`/`get_first()` only accepting a single SQL string. I cannot confirm this one tho. No changelog says explicitly this changed in 2.x. However, it's consistent with every example in pyexasol's docs since they only show a single string. This means that's always the case. * Parameters should be `dict/Mapping`: Can't confirm either, but no changelog ref to point to. So, two claims are true, two are unverified assumptions. I suggest to drop the "*Breaking changes*" title since it is not a change to the provider's own interface and drop the two unverifiable bullets entirely. Keep only the two we can back: ``` This provider now requires ``pyexasol>=2.0.0,<3``. pyexasol 2.0.0 added a ``py.typed`` marker and fixed ``export_params={"with_column_names": ...}`` to require a real boolean (previously any value, including ``False``, was treated as ``True`` — pyexasol changelog, bugfix #265). ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
