Commit Graph

4 Commits

Author SHA1 Message Date
Colin Maudry a7662a8561 feat(query): sort_model_to_sql + sérialisation AST (#41)
Ajoute sort_model_to_sql (adapte le sortModel AG Grid vers sort_by_to_sql
existant) et ast_to_dict/ast_from_dict pour le round-trip JSON de l'AST,
nécessaire aux vues sauvegardées.
2026-07-10 07:57:41 +02:00
Colin Maudry 33ea1205cf feat(query): filtermodel_to_ast (filterModel AG Grid -> AST) (#41) 2026-07-10 07:53:46 +02:00
Colin Maudry 979874760d fix(query): range sur colonnes non-numériques + blank/notBlank sur numérique/date (#41)
- `range` était ignoré silencieusement (TRUE, pas de filtre) sur les
  colonnes texte/date car seul `_numeric_to_sql` le gérait. Ajout du
  cas `range` dans la branche texte/date (BETWEEN, CAST VARCHAR pour
  les dates, comme les autres opérateurs de comparaison).
- `blank`/`notBlank` comparaient toujours à `''`, ce qui fait planter
  DuckDB (Conversion Error) sur les colonnes numériques/date. Le
  check est déplacé après le calcul de is_numeric/col_is_date : ces
  types utilisent IS [NOT] NULL sans comparaison à chaîne vide.
2026-07-10 07:49:43 +02:00
Colin Maudry 68f615370f feat(query): AST de filtre + compilateur ast_to_sql (#41)
Ajoute une représentation canonique du filtre sous forme d'AST booléen
(Condition/And/Or/Not) et son compilateur vers SQL DuckDB paramétré
(ast_to_sql). Réutilise tokenize_text_filter pour les feuilles texte.

Fondation pour la migration /tableau vers dash-ag-grid : cet AST sera
alimenté par le filterModel d'AG Grid (tâche suivante) et, plus tard,
par un champ de requête booléenne libre (#97).
2026-07-10 07:44:30 +02:00