Sua instrução preparada converte
full_address
em text
(tipo de texto interno do Postgres), enquanto parece que sua tabela foi criada com um citext
tipo de texto (não diferencia maiúsculas de minúsculas) (ou você não tem um índice em full_address::text
). Talvez tente criar um índice em full_address::text
e veja se a sua declaração preparada vai pegá-la. Outra opção é usar um
text
digite para o full_address
coluna e, em seguida, crie um índice funcional em lower(full_address)
-- a palatabilidade dessa opção depende de quais são seus requisitos. Acho que parte do problema é que o JDBC não sabe sobre o
citext
digite so a menos que você consiga que o JDBC envie seu endereço para o banco de dados como um citext
tipo, ele será interpretado pelo planejador de consulta como text
, assim como seu setString()
método provavelmente faz. Curiosamente, eu deparei com um problema semelhante recentemente
Divulgação:trabalho para o EnterpriseDB (EDB)