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]

Reply via email to