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
