【发布时间】:2009-01-12 22:11:14
【问题描述】:
我正在 Hypersonic DB (HSQLDB) 中运行以下查询:
SELECT (CASE foo WHEN 'a' THEN 'bar' WHEN 'b' THEN 'biz' ....
ELSE 'fin' END ) FROM MyTable LIMIT 1
当“WHEN”子句的数量超过大约 1000 个时,我在 org.hsqldb.jdbc.Util.sqlException() 中得到一个由 JDBC 驱动程序抛出的 Java StackOverflowError。
这是真正奇怪的部分:我尝试将我的 CASE 声明分解为例如100 个 WHEN 子句后跟 ELSE ( CASE foo WHEN ... ) END。但即使进行了这种重写,我也得到了完全相同的行为!
我在 HSQLDB 手册中没有看到任何对 1000 或其他限制的引用。救命!
【问题讨论】:
标签: sql hsqldb stack-overflow