Em 30/08/2012 às 10:02 horas, [email protected] escreveu:
Olá pessoal!
 
Na versão do PostgreSQL 8.3.5 e acho que nas anteriores deve ser igual (não testei) a clausula DISTINCT faz Sort “ordena” o retorno do SELECT com base na primeira coluna, esta funcionalidade não esta escrita na documentação mas ordena, estou fazendo alguns testes na versão 9.1 e esse comportamento mudou, não é feito mais o Sort, essa mudança pode provocar alguns problemas em aplicações que utilizavam essa clausula sem passar ordenação.
Se alguém estiver fazendo migração da versão da base verifiquem para não ter problemas futuros.
 
Obs.: DISTINCT ON faz o Sort, e ele sim esta documentado.
 
 
 
Não há garantia de ordenação nem mesmo na versão 8.3.5 (aliás, vê se atualiza esse trem aí pra 8.3.20 porque tem bug a beça já corrigido). O fato de sair ordenado é mera coincidência. Um UPDATE já pode desfazer a ordenação.
 
Em 8.4 ou superiores existe uma funcionalidade nova chamada synchronize_seqscans que pode ser ligada para "imitar" o comportamento passado. Mas, mesmo assim, não há garantia.
 
Se você quer ordenar, use ORDER BY. Aplicações que "se quebram" por não fazerem as consultas direito, após a atualização do SGBD, na minha visão, estão quebradas desde o nascimento.
 
[]s

Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
 
 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a