SQLAlchemy 1.x and 2.x compatibility: Use explicit transactions, remove sqlalchemy version constraint #1908
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #1785 and #1906 and #1786
It turns out that the UDF registration only works correctly in sqlalchemy 2.0 if you use
begin
, which starts a transaction explicitly. otherwise subsequent function registrations can't always 'see' previous ones.fetchall()
no longer works in sqlalchemy 2.0.0 see **here but luckily .mappings().all() seems to work fineI have checked, and the following work:
The only combination that doesn't is:
AttributeError: 'Engine' object has no attribute 'cursor'
But that's fine because #1906 (comment)