It seems to me a bug with a simple case and a subquery:
Example:
--works fine (searched case with a subquery)
SELECT
CASE
WHEN (SELECT 'A' FROM RDB$DATABASE) = 'A' THEN
'Y'
WHEN (SELECT 'A' FROM RDB$DATABASE) = 'B' THEN
'B'
ELSE
'N'
END
FROM RDB$DATABASE
--works fine (simple case without a subquery)
SELECT
CASE 'A'
WHEN 'A' THEN
'Y'
WHEN 'B' THEN
'N'
ELSE
'U'
END
FROM RDB$DATABASE
--don't work (simple case with a subquery)
SELECT
CASE (SELECT 'A' FROM RDB$DATABASE)
WHEN 'A' THEN
'Y'
WHEN 'B' THEN
'N'
ELSE
'U'
END
FROM RDB$DATABASE
/*
Invalid token.
invalid request BLR at offset 110.
context already in use (BLR error).
*/
Description
It seems to me a bug with a simple case and a subquery:
Example:
--works fine (searched case with a subquery)
SELECT
CASE
WHEN (SELECT 'A' FROM RDB$DATABASE) = 'A' THEN
'Y'
WHEN (SELECT 'A' FROM RDB$DATABASE) = 'B' THEN
'B'
ELSE
'N'
END
FROM RDB$DATABASE
--works fine (simple case without a subquery)
SELECT
CASE 'A'
WHEN 'A' THEN
'Y'
WHEN 'B' THEN
'N'
ELSE
'U'
END
FROM RDB$DATABASE
--don't work (simple case with a subquery)
SELECT
CASE (SELECT 'A' FROM RDB$DATABASE)
WHEN 'A' THEN
'Y'
WHEN 'B' THEN
'N'
ELSE
'U'
END
FROM RDB$DATABASE
/*
Invalid token.
invalid request BLR at offset 110.
context already in use (BLR error).
*/
Thanks