[
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)