Open
Description
Hi there,
while working on crate/crate-python#391, some backlog items have accumulated. I will gather them within this ticket.
Internals
We've identified a few shortcomings in the internal implementation of the CrateDB SQLAlchemy dialect. While it seems to work in general, those spots can well be improved, in order to better align with the internal API hooks of SQLAlchemy, and how the CrateDB dialect interacts with that.
- Migrate away from using the
before_execute
event.
Mike Bayer advised us to hook intoExecutionContext.pre_exec()
for rewritingUPDATE
statements instead of using any kinds of engine- or dialect-events, like our current implementation.
Discussions:
- Add support for SQLAlchemy 1.4 crate-python#391 (comment)
- Making the CrateDB dialect compatible with SQLAlchemy 1.4 sqlalchemy/sqlalchemy#5915 (reply in thread) - Investigate
CompileError: Unconsumed column names
Issue: SQLAlchemy: InvestigateCompileError: Unconsumed column names
#78 - SQLAlchemy 2: Type support for patch to
visit_update
#84 - Investigate whether SQLAlchemy's
MutableDict
implementation can be used for implementing CrateDB'sOBJECT
type, see SQLAlchemy: Use JSON type adapter for implementing CrateDB'sOBJECT
crate-python#561 (review).
More
- Improve code coverage and reduce code duplication of the
visit_update_14
method.
Reference: Add support for SQLAlchemy 1.4 crate-python#391 (review) - Support SQLAlchemy dialect with asyncpg #79
With kind regards,
Andreas.