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