gortiz opened a new pull request, #14342:
URL: https://github.com/apache/pinot/pull/14342
This PR modifies AggregationPlanNode to improve performance when null
handling is enabled for the query but the involved columns do not contain nulls
for this specific segment.
For example, a query like:
```sql
set enableNullHandling=true;
set explainAskingServers=true;
explain plan for
select count(deviceOS) from userAttributes limit 10
```
Where `deviceOS` is nullable returned:
```
LogicalSort(fetch=[10])
PinotLogicalSortExchange(distribution=[hash], collation=[[]],
isSortOnSender=[false], isSortOnReceiver=[false])
PinotLogicalAggregate(group=[{}], agg#0=[COUNT($0)])
PinotLogicalExchange(distribution=[hash])
LeafStageCombineOperator(table=[userAttributes])
StreamingInstanceResponse
CombineAggregate
Aggregate(aggregations=[[count(deviceOS)]]) <-- see this
Project(columns=[[deviceOS]])
DocIdSet(maxDocs=[40000])
FilterMatchEntireSegment(numDocs=[10000])
```
While with this PR it returns:
```
LogicalSort(fetch=[10])
PinotLogicalSortExchange(distribution=[hash], collation=[[]],
isSortOnSender=[false], isSortOnReceiver=[false])
PinotLogicalAggregate(group=[{}], agg#0=[COUNT($0)])
PinotLogicalExchange(distribution=[hash])
LeafStageCombineOperator(table=[userAttributes])
StreamingInstanceResponse
CombineAggregate
FastFilteredCount <-- see this
FilterMatchEntireSegment(numDocs=[10000])
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]