apache / pinot

Apache Pinot - A realtime distributed OLAP datastore
https://pinot.apache.org/
Apache License 2.0
5.26k stars 1.23k forks source link

The aggregation functions EXPR_MIN/MAX do not seem to work. #13452

Open mayankshriv opened 2 weeks ago

mayankshriv commented 2 weeks ago

It seems that the EXPR_MIN/MAX functions do not work in both v1 and v2 query engines.

Running a simple query like below errors out, even though there is no alias in the query. On debugging, I see that the query never gets rewritten as ExprMinMaxRewriter is not hooked up. I could also not find any config where the rewriter could be configured.

SELECT
  EXPR_MAX(balance,block_number) 
FROM org_2dYiMRMfas142XRKQ3bJIqmN3V6_base_erc20_balance_changes_block_v2_edea23a753f94dceae4c2b6d3fff50bd
WHERE token_address = lower('0x4200000000000000000000000000000000000006')

Query execution error on: Server_pinot-server-5.pinot-server-headless.pinot.svc.cluster.local_8098 org.apache.pinot.spi.exception.BadQueryRequestException: Invalid aggregation function: exprmax(balance,block_number); Reason: Aggregation function: EXPRMAX is only supported in selection without alias.

cc: @jasperjiaguo @siddharthteotia @Jackie-Jiang

jasperjiaguo commented 2 weeks ago

We ae using this function in our production, and it needs some special configuration https://app.gitbook.com/o/-LtRX9NwSr7Ga7zA4piL/s/-LtH6nl58DdnZnelPdTc-887967055/configuration-reference/functions/arg_min-arg_max#prerequisite

dorlevi commented 2 weeks ago

@jasperjiaguo Screenshot 2024-06-21 at 3 35 43 PM

Jackie-Jiang commented 2 weeks ago

Here is the public accessible doc: https://docs.pinot.apache.org/configuration-reference/functions/arg_min-arg_max

siddharthteotia commented 1 week ago

@jasperjiaguo recently fixed a bug in this functionality that we had discovered from an internally deployed use case.

Jia - is this a different problem ?