Problemas de cast na versão Pg8.4

PostgreSQL

16/08/2011

Galera,

Estou junto a um analista de minha empresa migrando o sistema da versão 8.1 para a versão 8.4 do postgre.
Ao iniciar os testes de compatibilidade, começamos a ter problemas com o cast, ja que na versão anterior era implicito.
Não consigo realizar operações do tipo:

SELECT 'valor = '::text||123::integer


Alguem saberia como posso resolver esse problema?

Desde já agradeço a ajuda.

Kim Tolentino

Kim Tolentino

Curtidas 0

Respostas

Anthony Accioly

Anthony Accioly

16/08/2011

Kim,

Teve um entusiasta que criou um script para ajudar com o cenário de migração.
http://petereisentraut.blogspot.com/2008/03/readding-implicit-casts-in-postgresql.html
No médio prazo porém, a solução é parar de depender desses casts implícitos. Use a função CAST ao invés disso. Exemplo:

SELECT CAST('valor = ' AS TEXT)||CAST(123 as INTEGER)


Veja que, nesse caso específico o resultado é o mesmo do que rodar simplesmente
SELECT  'valor = '||123

 Uma vez que há um CAST implícito para o tipo TEXT.

Dependendo do tamanho da sua aplicação, eu sou a favor de tratar as consultas / procedures ao invés de tentar o script workaround.

Abraços,
GOSTEI 0
POSTAR