yashmayya commented on PR #13711:
URL: https://github.com/apache/pinot/pull/13711#issuecomment-2258219043

   There's a bug in `PostAggregationHandler` that is causing the query `SELECT 
AirlineID, CASE WHEN Sum(ArrDelay) < 0 THEN 0 WHEN SUM(ArrDelay) > 0 THEN 
SUM(ArrDelay) END AS SumArrDelay FROM mytable GROUP BY AirlineID` to fail in 
`testHardcodedQueries` with the following error:
   
   ```
   java.lang.IllegalArgumentException: Unsupported function: less_than with 
argument types: [DOUBLE, STRING]
        at 
org.apache.pinot.core.query.postaggregation.PostAggregationFunction.<init>(PostAggregationFunction.java:45)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.PostAggregationHandler$PostAggregationValueExtractor.<init>(PostAggregationHandler.java:164)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.PostAggregationHandler.getValueExtractor(PostAggregationHandler.java:136)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.PostAggregationHandler$PostAggregationValueExtractor.<init>(PostAggregationHandler.java:160)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.PostAggregationHandler.getValueExtractor(PostAggregationHandler.java:136)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.PostAggregationHandler.<init>(PostAggregationHandler.java:77)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.GroupByDataTableReducer.processSingleFinalResult(GroupByDataTableReducer.java:427)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.GroupByDataTableReducer.reduceAndSetResults(GroupByDataTableReducer.java:121)
 ~[classes/:?]
        at 
org.apache.pinot.core.query.reduce.BrokerReduceService.reduceOnDataTable(BrokerReduceService.java:155)
 ~[classes/:?]
        at 
org.apache.pinot.broker.requesthandler.SingleConnectionBrokerRequestHandler.processBrokerRequest(SingleConnectionBrokerRequestHandler.java:144)
 ~[classes/:?]
        at 
org.apache.pinot.broker.requesthandler.BaseSingleStageBrokerRequestHandler.handleRequest(BaseSingleStageBrokerRequestHandler.java:733)
 ~[classes/:?]
        at 
org.apache.pinot.broker.requesthandler.BaseBrokerRequestHandler.handleRequest(BaseBrokerRequestHandler.java:133)
 ~[classes/:?]
        at 
org.apache.pinot.broker.requesthandler.BrokerRequestHandlerDelegate.handleRequest(BrokerRequestHandlerDelegate.java:96)
 ~[classes/:?]
        at 
org.apache.pinot.broker.api.resources.PinotClientRequest.executeSqlQuery(PinotClientRequest.java:321)
 ~[classes/:?]
   ```
   
   This is because all literals are being parsed into string literals here - 
https://github.com/apache/pinot/blob/835949b64529b8e5c0bb49474cdec2e17c9050f7/pinot-core/src/main/java/org/apache/pinot/core/query/reduce/PostAggregationHandler.java#L111
   
   and this wasn't taken into account when 
https://github.com/apache/pinot/pull/13573 updated `PostAggregationFunction` to 
use argument type based function lookup instead of argument count based 
function lookup. Since this is a v1 engine entity, I've updated it to go back 
to argument type count based function lookup for now, until the literal 
handling is updated either in  https://github.com/apache/pinot/pull/13673 or in 
a separate followup PR.


-- 
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: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to