apache / apache/druid

ObjectColumnSelector / NullableAggregatorFactory loophole

Open
#6,471 1 comment 0 reactions 0 assignees View on GitHub
Area - Null Handling Bug stale
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.