You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2025/08/03 18:59:00 UTC

[jira] [Commented] (CALCITE-7123) Query doesn't work as expected when using COALESCE or CASE in the group by query

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

Julian Hyde commented on CALCITE-7123:
--------------------------------------

Do you have a minimal test case?

> Query doesn't work as expected when using COALESCE or CASE in the group by query
> --------------------------------------------------------------------------------
>
>                 Key: CALCITE-7123
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7123
>             Project: Calcite
>          Issue Type: Bug
>          Components: avatica
>    Affects Versions: 1.39.0
>            Reporter: Priyanka
>            Priority: Major
>
> Running the following query directly on the Druid UI returns the expected results:
> {code:java}
> SELECT
>                           FLOOR("__time" TO DAY)  AS "createtime.day", 
> COALESCE("parentName", "stockName") AS "unitName",
>                           COUNT(*) AS "count"
>                         FROM
>                           "druid"."events"
>                         WHERE  "customerName" = 'x' AND  "__time" >= TIMESTAMP '2025-05-31 22:00:00.000' AND  "__time" <= TIMESTAMP '2025-06-12 21:59:59.000'
>                             AND (FALSE = true  OR "fleetName" IN ('y'))
>                             AND (FALSE = false  OR "eventTemplateName" IN (null))
>                             AND (FALSE = false  OR "consistNumber" IN (null))
>                             AND (FALSE = false  OR ("parentName" IS NOT NULL AND "stockName" IN (null)))
>                             AND (FALSE = false  OR (COALESCE("parentName", "stockName") IN (null)))
>                             AND (FALSE = false  OR "locationName" IN (null))
>                             AND (FALSE = false  OR "eventCategory" IN (null))
>                             AND (FALSE = false OR "eventPriorityName" IN (null))
>                             AND (FALSE = false  OR null)
>                             AND (FALSE = false  OR "active" = null)
>                         GROUP BY FLOOR("__time" TO DAY) , COALESCE("parentName", "stockName") {code}
> But when it goes through Calcite, it returns the stockName always as the unitName, even if the parentName is available.
> Testing with CASE instead of COALESCE or using a CAST for the type also didn't have any effect with Calcite.



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