On 19-07-2012 20:45, Vinicius Santos wrote:
> Osvaldo. Eu fiz um ALTER TABLE sem a cláusula USING. Pois converti de um
> NUMERIC( 18, 2 ) para um de NUMERIC( 14, 4 ). Todos os testes estão nos
> emails anteriores.
>
> Pois bem, agora em casa, estou fazendo uns testes também. Criei uma nova
> tabela com o tipo NUMERIC( 14, 4 ). E...vualá, o problema não ocorre mais.
>
> O problema simplesmente desapareceu, eu apaguei a tabela e a criei de
> novo...Por enquanto, já fiz vários testes e nada de o problema reaparecer.
>
> Eu não sei o porque disso, talvez o Flávio saiba, pois ele questinou
> como "pergunta de ouro" e realmente, isso é a fonte do problema.

Sim. Eu perguntei porque fiz uma pesquisa nos fóruns da hackers e mais 
pessoas tiveram esse problema na conversão automática.

Desculpe não ter respondido antes, eu estava em deslocamento.

> Mas eu ainda questiono, mesmo após fazer a alteração da tabela, e
> tal...Porque será que acontece isso? Alguma coisa aconteceu na hora da
> conversão.

É a explicação do Oswaldo. Você mudou a precisão de 18 para 14 
algarismos significativos e o PostgreSQL teve de fazer a conta. Na hora 
de fazer a conta acontece a dízima.

> Eu ainda não tenho conhecimento da estrutura interna do PostgreSQL, mas
> logo logo, quero começar a estudar, quem sabe daqui uns 2 ou 3 anos eu
> consiga responder este tipo de questão.

É uma trilha legal a seguir :)
Uma pena que o Euler não participou dessa discussão. Ele seria capaz de 
te dizer em qual arquivo e linha acontece isso.

Dá uma pesquisada na pgsql-hackers se você souber inglês. Lá tem alguns 
trechos de código e patches sugeridos sobre o assunto.

[]s

Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a