Hypersonic DB (HSQLDB) で次のクエリを実行しています。
SELECT (CASE foo WHEN 'a' THEN 'bar' WHEN 'b' THEN 'biz' ....
ELSE 'fin' END ) FROM MyTable LIMIT 1
"WHEN" 句の数が約 1000 を超えるとStackOverflowError
、JDBC ドライバーによって Java がスローされますorg.hsqldb.jdbc.Util.sqlException()
。
ここに本当に奇妙な部分があります。CASE
たとえば、100 個の WHEN 句の後にELSE ( CASE foo WHEN ... ) END
. しかし、この書き直しでも、まったく同じ動作が得られます!
HSQLDBマニュアルには、1000の制限やその他の制限への言及はありません。ヘルプ!