Postgres documentation states:
"A CASE expression does not evaluate any subexpressions that are not needed to determine the result."
select case when 0 = 0 then 1 < 2
when 0 = 2 then 2000 = ('2017.7')::bigint
end;
select case when 0 = 0 then 1 < 2
when 0 = 2 then 2000 = ('2017.7'||'')::bigint
end;
select case when (array[1,2])[1] =1 then 1 < 2
when (array[1,2])[1] = 2 then 2000 = ('2017.7'||'')::bigint
end;