Boa tarde pessoal,
Estou utilizando a versão 1.7.2 do HSQLDB (não pode ser atualizada) e ao fazer uma consulta em determinada tabela:
SELECT * FROM minha_tabela
Estou recebendo a exceção:
S1000 General error java.lang.IndexOutOfBoundsException / Error Code: 40 / State: S1000
Já pesquisei pelo State S1000 e pode estar relacionado a varias coisas.
O error code 40 é “GENERAL ERROR”.
Por isso por esses códigos não consegui achar nenhuma solução para o problema.
Sei que essa tabela tem muitas linhas e minha duvida é:
O HSQLDB tem algum limite de linhas para consulta?
Utilizando SELECT TOP consegui chegar ao seguinte valor:
SELECT TOP 25616 * FROM minha_tabela
Valeu!
Normalmente o IndexOutOfBoundsException é lançado quando você tenta acessar uma posição que não existe em um array e não por que esse array ultrapassou o limite máximo.
Javadoc do mesmo.
[quote=drsmachado]Normalmente o IndexOutOfBoundsException é lançado quando você tenta acessar uma posição que não existe em um array e não por que esse array ultrapassou o limite máximo.
Javadoc do mesmo.[/quote]
Certo,
Será então que o HSQLDB quando eu utilizo * na consulta está tentando acessar uma linha que não existe?
Se sim, obviamente é um erro que pode ter sido ocasionado por qual motivo?
Obrigado!
Estranho que quando utilizo o SELECT TOP, como informei funciona:
SELECT TOP 10 codigo FROM minha_tabela
Agora se pego um desses 10 códigos e faço o seguinte:
SELECT * FROM minha_tabela WHERE codigo = 1
Tanto assim como especificando a coluna “codigo” gera a mesma exceção!