Grzegorz Żur created DERBY-6365:
-----------------------------------

             Summary: Incorrect evaluation of logical expressions in CASE
                 Key: DERBY-6365
                 URL: https://issues.apache.org/jira/browse/DERBY-6365
             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)

Reply via email to