[
https://issues.apache.org/jira/browse/PHOENIX-6823?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Istvan Toth updated PHOENIX-6823:
---------------------------------
Release Note: Fixed division by zero errors, and incorrect results when
using round(), ceiling(), floor() functions in the where clause on date/time
fields that are part of the primary key. (was: Fixed NullPointerExceptions,
and incorrect results when using round(), ceiling(), floor() functions in the
where clause on date/time fields that are part of the primary key.)
> calling Joda-based round() function on temporal PK field causes division by
> zero error
> --------------------------------------------------------------------------------------
>
> Key: PHOENIX-6823
> URL: https://issues.apache.org/jira/browse/PHOENIX-6823
> Project: Phoenix
> Issue Type: Bug
> Components: core
> Affects Versions: 5.2.0, 5.1.2
> Reporter: Istvan Toth
> Assignee: Istvan Toth
> Priority: Major
> Fix For: 5.2.0, 5.1.3
>
>
>
> {noformat}
> 0: jdbc:phoenix:> create table bubu (df date primary key);
> No rows affected (0.689 seconds)
> 0: jdbc:phoenix:> select * from bubu where round(df,'YEAR',1)=DATE
> '2022-01-01 00:00:00';
> java.lang.ArithmeticException: / by zero
> at
> org.apache.phoenix.expression.function.RoundDateExpression$1.getKeyRange(RoundDateExpression.java:272)
> ...{noformat}
> This is caused by getKeyRange not being updated when the Joda-based time
> units were added.
> Also, the keyrange pushdown logic is just wrong, even for the non-joda cases.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)