intent: coalesced roll-ups on the same (entity, via) share one query - a member's where: is silently dropped
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
Research direction
Start by reading the coalesced roll-up generation path associated with #6187 and the where: handling added in #7542, then inspect EmployeeTimesheetProjectTimesheetRollupOnUpdate.java and its generated output. Reproduce with the two roll-ups in the issue and check whether each member's filter is applied or generation rejects differing filters with both roll-ups named; done means the filter cannot silently become a no-op.
Written by the indexing model from the issue text.
Description
14.88.0 (also unchanged in 14.90.0). Roll-ups that share (entity, via) are coalesced into ONE handler per event (#6187). That handler queries the child rows with ONE Criteria. A roll-up where: (#7542) therefore applies only if it is on the member the shared query is built from. Every other member's filter is silently dropped.
Reproduction (base-timesheets, generated on 14.88.0):
rollups:
- { name: timesheetHours, entity: EmployeeTimesheet, via: ProjectTimesheet, field: totalHours, op: sum, of: totalHours }
- { name: timesheetApprovedHours, entity: EmployeeTimesheet, via: ProjectTimesheet, field: approvedHours, op: sum, of: totalHours,
where: [{ field: Status, op: eq, value: APPROVED }] }
The .glue carries filter: [{op: eq, property: Status, value: 3}] on the ApprovedHours entries. The generated EmployeeTimesheetProjectTimesheetRollupOnUpdate.java, however, reads
rows = new EmployeeTimesheetRepository().findAll(Criteria.create().eq("ProjectTimesheet", entity.ProjectTimesheet));
and sums ApprovedHours over all rows, DRAFT included, so approvedHours == totalHours. Generation reports nothing: generate 200, guardrail and parity clean.
If the filtered member came first, the opposite would happen: the UNfiltered totals would silently become approved-only.
Expected, either of:
- each member of a coalesced group filters its own rows (one query per distinct filter, or filter in Java per member), or
- the parser refuses two roll-ups on the same
(entity, via)whosewhere:differ, naming both.
The second is the minimum, so that a declared filter never becomes a no-op.
Found while building budget-versus-actual for BusinessIntents/base-projects + base-timesheets. The module works around it with a separate via relation, so every member of that group carries the same filter.
- Dominant language
- Java
- Stars
- 278
- Forks
- 97
- Avg merge
- 17h 19m
- Merged PRs (30d)
- 261
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from eclipse-dirigible/dirigible
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
eclipse-dirigible/dirigible#7958 ·
Maintainers usually reply within 1 day
-
intent: a create-from without fromStatus answers 200 on a missing or unknown source id (no 400/404)Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
eclipse-dirigible/dirigible#7945 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
eclipse-dirigible/dirigible#7891 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
eclipse-dirigible/dirigible#6538 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
eclipse-dirigible/dirigible#4812 ·
Maintainers usually reply within 1 day
All issues in eclipse-dirigible/dirigible
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
2026 Error Report
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
triplea-game/triplea#15096 ·
Maintainers usually reply within 1 day
-
Implement JDBC Domain Enums (`SqlCategory`, `SqlExecutionStatus`, `SqlExecutionType`) in Core ModuleOpencore-module enhancement good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 87/100
sdlc-pro/spring-lens#531 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Low-Drag-MC/LDLib2#78 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Vakore/ZappierGames#184 ·