当前位置: 代码迷 >> 其他数据库 >> sqlite查询语句,堆栈益出,parser stack overflow解决方法
  详细解决方案

sqlite查询语句,堆栈益出,parser stack overflow解决方法

热度:1386   发布时间:2013-02-26 00:00:00.0
sqlite查询语句,堆栈益出,parser stack overflow
为什么sqlite里面语法完全正常的查询语句执行会报错说堆栈溢出呢?更奇怪的是查询语句的where条件只能小于30层,多一点就溢出了,这是为什么呢?哪位大侠知道不?。。。跪求解释。。

这是我写的一个测试语句:
select 1 from c_vip where 1==1 and (1=1 and (1=1 and ( 1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and (1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and(1=1 and (1=1 and(1=1 and(1=1 and(1==1)))))))))))))))))))))))))))))))


去掉一层之后就查询正常。。。郁闷啊!!!
急。。急。。求解释,有木有!!!

------解决方案--------------------------------------------------------
不需要解释,你看一下SQLITE的源代码即可。处理算式的时候每个()都会被PUSH栈。估计SQLITE的开发者也根本没想到会这么多层()吧
  相关解决方案