ObjectColumnSelector / NullableAggregatorFactory loophole
- Dominant language
- Java
- Stars
- 14.1k
- Forks
- 3.8k
- Avg merge
- 2d 58m
- Merged PRs (30d)
- 233
Description
1) `BaseObjectColumnValueSelector` shouldn't extend `BaseNullableColumnValueSelector`
2) Therefore, `NullableAggregatorFactory` shouldn't be parametrized with `BaseObjectColumnValueSelector`. But it's done in `StringLastAggregatorFactory` and `StringFirstAggregatorFactory`.
Therefore, reliance of those aggregator factories on `NullableAggregatorFactory` is moot, because `isNull()` of the supported selectors always returns `false`.
@nishantmonu51
Contributor guide
Research direction
Start by locating BaseObjectColumnValueSelector, BaseNullableColumnValueSelector, NullableAggregatorFactory, StringLastAggregatorFactory, and StringFirstAggregatorFactory. Trace the selector types and null-handling assumptions, then inspect related aggregation tests if present. Done means the inheritance and generic relationships no longer imply nullable selectors where isNull() always returns false, with tests covering the corrected behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100