Summary
questdb-connect needs updates to fully support SQLAlchemy 2.0 and Apache Superset v5. While PR #16 added initial SA 2.0 compatibility, several gaps remain. Two open PRs (#33, #34) address parts of this but additional work is needed.
Open PRs to merge
SQLAlchemy 2.0 fixes
Packaging / pyproject.toml
Superset v5 compatibility
Backward compatibility notes
- SQLAlchemy 1.4 + 2.0 dual support is feasible — SA 1.4 was designed as a bridge to 2.0.
import_dbapi() can coexist with dbapi(), future param can be conditionally passed, and text() works in both versions.
- Superset <5 + v5 dual support is impractical — method signatures changed in positional-breaking ways (
select_star() removed schema param, execute() added database param). Using *args/**kwargs is fragile. Recommend a clean version boundary: v1.x for Superset <5, v2.x for Superset v5+.
Suggested versioning
| questdb-connect |
SQLAlchemy |
Superset |
| v1.1.x (current) |
1.4 + partial 2.0 |
3.x / 4.0 |
| v1.2.x |
1.4 + full 2.0 |
3.x / 4.0 (no Superset breaking changes) |
| v2.0.0 |
2.0+ (drop 1.4) |
v5+ |
Related issues
Summary
questdb-connectneeds updates to fully support SQLAlchemy 2.0 and Apache Superset v5. While PR #16 added initial SA 2.0 compatibility, several gaps remain. Two open PRs (#33, #34) address parts of this but additional work is needed.Open PRs to merge
import_dbapi()classmethod (fixes SADeprecationWarning - Implement an import_dbapi() #9, SQLAlchemy SADeprecationWarning #31). Trivial, backward-compatible.SQLAlchemy 2.0 fixes
future=parameter fromcreate_engine()andcreate_superset_engine()helpers indialect.py. This param is removed in SA 2.0 (always "future" mode). Can be conditionally passed for 1.4 compat via version check.implicit_returning=parameter from engine helpers — deprecated in SA 2.0.text()constructs, as SA 2.0 no longer accepts bare strings inexecute().supports_statement_cache = True— currentlyFalse, which disables SA 2.0's statement caching and hurts performance. Safe to enable if compiled output is deterministic (likely is).dialect.pycomment.Packaging / pyproject.toml
dependencies = [], meaningsqlalchemyandpsycopg2-binaryare not listed. Users must guess what to install.SQLAlchemy>=1.4, <2, so SA 2.0 is never actually tested in CI.Superset v5 compatibility
select_star()andexecute()signatures.Backward compatibility notes
import_dbapi()can coexist withdbapi(),futureparam can be conditionally passed, andtext()works in both versions.select_star()removedschemaparam,execute()addeddatabaseparam). Using*args/**kwargsis fragile. Recommend a clean version boundary: v1.x for Superset <5, v2.x for Superset v5+.Suggested versioning
Related issues