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

Priyanka edited comment on CALCITE-7123 at 10/15/25 6:06 PM:
-------------------------------------------------------------

[~mbudiu] Using 
{code:java}
COALESCE("parentName", "stockName"){code}
and
{code:java}
CASE WHEN "parentName" IS NOT NULL THEN "parentName" ELSE "stockName" END{code}
were both giving the same incorrect results. Only after adding the empty string 
check, it worked.
{code:java}
CASE
  WHEN "parentName" IS NOT NULL AND "parentName" <> '' THEN "parentName"  ELSE 
"stockName" END{code}


was (Author: JIRAUSER310634):
[~mbudiu] Using 
COALESCE("parentName", "stockName")
and
CASE WHEN "parentName" IS NOT NULL THEN "parentName" ELSE "stockName" END
were both giving the same incorrect results. Only after adding the empty string 
check, it worked.
CASE
  WHEN "parentName" IS NOT NULL AND "parentName" <> '' THEN "parentName"  ELSE 
"stockName"

> 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
>         Attachments: image-2025-08-03-21-12-40-517.png, 
> image-2025-08-03-21-13-52-179.png, image-2025-08-03-21-18-10-506.png, 
> image-2025-08-14-11-56-16-650.png, image-2025-10-15-10-09-28-638.png, 
> image-2025-10-15-10-09-55-877.png, image-2025-10-15-10-11-07-510.png, 
> image-2025-10-15-10-11-22-457.png
>
>
> 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)

Reply via email to