Skip to content

v0.4.0 - Backend-agnostic QueryContext, ClickHouse reference backend

Latest

Choose a tag to compare

@danielhasan1 danielhasan1 released this 16 Aug 12:48
· 7 commits to dev since this release
841c8a7

Breaking change for anyone who wrote a custom Filter, Sorter, QueryStrategy, or
PaginationStrategy subclass. Not breaking for the plain README flow (GenericDao +
generic_filters + default strategies) — that continues to work unchanged. See CHANGELOG.md
for the full breakdown and migration table.

Highlights

  • Introduces QueryContext as the real seam behind Filter/Sorter/Paginator/QueryStrategy —
    SqlAlchemyQueryContext (default) and a new ClickHouseQueryContext/ClickHouseDao reference
    backend prove the abstraction genuinely generalizes beyond SQLAlchemy.
  • import fastapi_listing no longer requires SQLAlchemy to be installed.
  • Escape hatches for cases canonical filters shouldn't be forced to express: HavingMixin,
    order_by_raw(), add_raw_condition(), from_raw_sql() — all validated against a real
    ClickHouse server.
  • Bug fixes: grouped-count double-counting in ClickHouse, a ContextVar leak in
    middlewares.py, wrong 409422 status code for unregistered filter/sort fields.
  • Loud FastapiListingMigrationError instead of a generic traceback if you upgrade a custom
    subclass without migrating.

What's Changed

  • Make Filter/Sorter/Paginator/QueryStrategy backend-agnostic; add ClickHouse reference backend (0.4.0) by @danielhasan1 in #21

Full Changelog: v0.3.4...v0.4.0