fix(balance): SQL aggregate misuse in getAccountsPeriodAnchor (MIN in subquery WHERE) #175
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#175
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Au premier chargement de
/balance, SQLite remonte:error returned from database: (code: 1) misuse of aggregate function MIN().src/services/balance.service.ts:982-1014(getAccountsPeriodAnchor) utiliseMIN(s.snapshot_date)dans le WHERE d'une sous-requete scalaire (ligne 1006). SQLite refuse l'aggregate hors GROUP BY/HAVING.Approche (decidee 2026-04-30)
Window function ROW_NUMBER OVER PARTITION:
SQLite >= 3.25 requis (OK chez nous).
Fichiers concernes
src/services/balance.service.ts(lignes 982-1014) - reecriture de la requete via window functionsrc/services/balance.service.test.ts- test de regressionCHANGELOG.md+CHANGELOG.fr.md- section FixedDepends on
(rien)
Criteres d'acceptation
getAccountsPeriodAnchorutiliseROW_NUMBER() OVER (PARTITION BY account_id ORDER BY snapshot_date ASC)et filtreWHERE rn = 1getAccountsPeriodAnchor returns earliest snapshot per account within rangereproduit le scenario (>= 2 snapshots/compte, fenetrefrom/to, fenetre vide) et passe/balancecharge sans erreur SQLite quand >= 1 snapshot existenpm test+npm run build+cargo checkverts[Unreleased]->Fixed(FR + EN)Decisions prises ce soir
Spec source
spec-plan-bilan-anomalies-174.md