[ 
https://issues.apache.org/jira/browse/CALCITE-7124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18012200#comment-18012200
 ] 

Julian Hyde commented on CALCITE-7124:
--------------------------------------

I agree, we should generate FILTER(WHERE) if the target dialect supports it. 
The "agg(CASE)" trick doesn't work for all aggregate functions.

> JdbcAggregateRule should push aggregate functions FILTER clauses to 
> underlying SQL via JDBC adapter
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-7124
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7124
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: xiong duan
>            Priority: Major
>
> In SqlDialect, the supportsAggregateFunctionFilter function determine whether 
> this dialect supports the use of FILTER clauses for aggregate functions.
> And In SqlImplementor, Calcite convert `SUM(x) FILTER(WHERE b)  ==>  SUM(CASE 
> WHEN b THEN x END)` if the dialect does't support it.
> So In JdbcAggregateRule, we should push it down, then implement the same 
> semantics using JdbcDialect.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to