Grzegorz Żur created DERBY-6363:
-----------------------------------
Summary: Incorrect evaluation of logical expressions in CASE
Key: DERBY-6363
URL: https://issues.apache.org/jira/browse/DERBY-6363
Project: Derby
Issue Type: Bug
Components: SQL
Affects Versions: 10.10.1.1, 10.8.3.0, 10.4.1.3
Reporter: Grzegorz Żur
Logical expressions with AND and OR operators inside WHEN inside CASE expression nested in
SELECT part of statement are wrongly evaluated.
Evaluation results depends on position of OR subexpression. If OR is placed on left side of
AND it is evaluated incorrectly.
Following code shows the error.
create table t ( a int, b char );
insert into t values (1, 'a');
insert into t values (2, 'b');
insert into t values (3, 'a');
insert into t values (4, 'b');
insert into t values (5, 'a');
insert into t values (6, 'b');
select
a,
b,
case
when (( b = 'a' or b = 'b' ) and a < 4) then 'x'
else '-'
end,
case
when (a < 4 and ( b = 'a' or b = 'b' )) then 'y'
else '-'
end
from t;
Actual result:
1 a x y
2 b - y
3 a x y
4 b - -
5 a - -
6 b - -
Expected result
1 a x y
2 b x y
3 a x y
4 b - -
5 a - -
6 b - -
--
This message was sent by Atlassian JIRA
(v6.1#6144)
|