crate / crate/cratedb-toolkit

Remove jessiql dependency and replace with SQLAlchemy 2.x

Open
#852 1 comment 0 reactions 0 assignees View on GitHub
dependencies
Dominant language
Python
Stars
10
Forks
5
Avg merge
7d 5h
Merged PRs (30d)
7

Description

## Problem
- The `pymongo` optional extra depends on `jessiql==1.0.0rc1`, which is archived and no longer maintained.
- Requires sqlalchemy<2, blocking to support SQLAlchemy 2.x
- Blocks Python 3.13+ support

## Current usage
jessiql is used exclusively in `cratedb_toolkit/adapter/pymongo/reactor.py` to translate MongoDB-style query parameters into SQLAlchemy ORM queries.

## Proposed solution
- Replace jessiql with a hand-rolled SQLAlchemy 2.x Core query builder

## Notes
https://github.com/kolypto/py-jessiql

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading cratedb_toolkit/adapter/pymongo/reactor.py and tracing its exclusive jessiql usage for MongoDB-style query parameters. Check the pymongo optional extra and the existing SQLAlchemy query behavior, then verify that the replacement uses SQLAlchemy 2.x, removes the archived dependency, and preserves query translation while allowing Python 3.13 support.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, sqlalchemy
Domain
backend, databases
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.