ankitsultana opened a new issue, #16821:
URL: https://github.com/apache/pinot/issues/16821
It seems like we are no longer simplifying `IS NULL / IS NOT NULL`
predicates in the MSE optimizer anymore.
Testing with this query:
```
SET useMultistageEngine=true;
explain plan for select * from userAttributes
where deviceOS IS NULL
limit 10
```
With Pinot 1.3.0 Docker image, we get this plan, which is what I would
expect with the null settings in the Quickstart (no column level null handling
enabled)
```
Execution Plan
LogicalValues(tuples=[[]])
```
With latest Docker image, I am getting:
```
Execution Plan
LogicalSort(offset=[0], fetch=[10])
PinotLogicalSortExchange(distribution=[hash], collation=[[]],
isSortOnSender=[false], isSortOnReceiver=[false])
LogicalSort(fetch=[10])
LogicalProject(daysSinceFirstTrip=[$4], deviceOS=[$5],
totalTrips=[$6], userUUID=[$7])
LogicalFilter(condition=[IS NULL($5)])
PinotLogicalTableScan(table=[[default, userAttributes]])
```
I think this is a breaking change because if null vectors are enabled, the
nullability filter will be evaluated with latest Pinot but it wasn't getting
evaluated with Pinot 1.3.0
cc: @yashmayya
--
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]