Re: [pgbr-geral] Campo double precision
Em 30 de janeiro de 2012 08:45, Emanuel Araújo eac...@gmail.com escreveu: pg_dump -h pg84 db01 -Fc -b -v | pg_restore --disable-triggers -v -i -d db01_mig Parece que você fez tudo certinho. Existe um assunto conhecido, cujo link está em [1]. E parece que os valores do seu banco de dados caem nessa situação. Resumindo: os valores do seu banco de dados de origem realmente existem na tabela, mas o banco de dados de destino não o está aceitando porque os valores são inválidos para a função c que trata a entrada de dados. Note que as versões do gcc são diferentes entre os dois bancos e, provavelmente, as bibliotecas envolvidas na compilação do PostgreSQL também são. Resumindo, a versão mais antiga do gcc aceitou a entrada dos dados mas a nova não aceita. Acho que o único jeito de você resolver a situação rapidamente seria: - exportar para texto puro; - procurar os valores (usando grep ou sed) e ajustanto-os para o intervalo aceitável. Exemplo: egrep 'E31.' seudump.sql Veja se são muitas linhas a ajustar. [1] http://postgresql.1045698.n5.nabble.com/BUG-Denormal-float-values-break-backup-restore-td4475582.html []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Campo double precision
Note que as versões do gcc são diferentes entre os dois bancos e, provavelmente, as bibliotecas envolvidas na compilação do PostgreSQL também são. Resumindo, a versão mais antiga do gcc aceitou a entrada dos dados mas a nova não aceita. Entendi, no caso eu poderia atualizar as bibliotecas do gcc, glibc, etc, assim teria o resultado esperado... ? Caso eu atualize, teria que reinstalar o PostgreSQL CORRETO ? Faço a instalação via rpm. Exemplo: egrep 'E31.' seudump.sql Veja se são muitas linhas a ajustar. São vários bancos que estão nessa situação, e fica realmente complicado mudar todas as linhas manualmente. Posso guardar esses dados, deletar e depois recuperar, mas não será decisão minha isso. -- *Atenciosamente, Emanuel Araújo* http://eacshm.wordpress.com/ * * *Linux Certified LPIC-1* ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Campo double precision
Em 30/01/12, Emanuel Araújoeac...@gmail.com escreveu: Desconfio que o problema seja sua plataforma e não o PostgreSQL. Qual a saída de select version() de ambas as máquinas? Qual o comando utilizado para fazer a cópia no CentOS? O comando que estou fazendo é a partir de um host postgreSQL 91: pg_dump -h pg84 db01 -Fc -b -v | pg_rstore --disable-triggers -v -i -d db01_mig Cheguei a exportar com formato textplain e subir com psql mas o problema ainda persiste Saidas dos comandos SELECT version() ; versao 84 (dump) - CentOS release 5.4 (Final) -- PostgreSQL 8.4.4 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit versao 91 (restore) - Red Hat Enterprise Linux Server release 6.0 (Santiago) -- PostgreSQL 9.1.2 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.5 20110214 (Red Hat 4.4.5-6), 64-bit as duas máquinas são de plataforma 64bits (amd64) ? se uma delas for i386 pode ser esse o problema também... Sim, as duas são 64bits. Creio que exista algum bug pois o manual informa: Rounding might take place if the precision of an input number is too high. [1] o que, pelo que concluo, não deveria acarretar erro. Osvaldo [1] http://www.postgresql.org/docs/current/interactive/datatype-numeric.html#DATATYPE-FLOAT ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Campo double precision
On 30-01-2012 07:44, Emanuel Araújo wrote: O comando que estou fazendo é a partir de um host postgreSQL 91: pg_dump -h pg84 db01 -Fc -b -v | pg_rstore --disable-triggers -v -i -d db01_mig Tente fazer a cópia utilizando o pg_dump da 8.4 ao invés da 9.1. -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Campo double precision
2012/1/28 Euler Taveira de Oliveira eu...@timbira.com: On 28-01-2012 09:23, Emanuel Araújo wrote: So: CentOS (dump) - Redhat (restore) Desconfio que o problema seja sua plataforma e não o PostgreSQL. Qual a saída de select version() de ambas as máquinas? Qual o comando utilizado para fazer a cópia no CentOS? -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento as duas máquinas são de plataforma 64bits (amd64) ? se uma delas for i386 pode ser esse o problema também... []s -- Vinícius Abrahão Bazana Schmidt Desenvolvimento Dextra Sistemas www.dextra.com.br +55 19 3256-6722 Ramal 246 Este email é confidencial. Mais informações em: This message is confidential. More information at: www.dextra.com.br/confidencial.htm -- vi[nnix]™ aka: Vinícius Abrahão Bazana Schmidt vischmidt.wordpress.com twitter.com/vischmidt ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Campo double precision
Srs, Estou fazendo uma migração de uma base de dados 84 para 91 e tenho em uma de minhas tabelas campos double precision que recebem pontos geográficos, o problema é que ao fazer o restore ocorre o seguinte problema: pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 9457; 0 336213242 TABLE DATA cgpd postgres pg_restore: [archiver (db)] COPY failed for table cgpd: ERROR: -6.7166471789178305e-310 is out of range for type double precision CONTEXT: COPY cgpd, line 1, column d_latitude: -6.7166471789178305e-310 pg_restore: [archiver (db)] Error from TOC entry 9266; 0 178321074 TABLE DATA cgps postgres pg_restore: [archiver (db)] COPY failed for table cgps: ERROR: 9.7391168714266534e-317 is out of range for type double precision CONTEXT: COPY cgps, line 349, column d_velocidade: 9.7391168714266534e-317 pg_restore: [archiver (db)] Error from TOC entry 9458; 0 336213254 TABLE DATA recv_cgpd postgres pg_restore: [archiver (db)] COPY failed for table recv_cgpd: ERROR: -6.7166471789178305e-310 is out of range for type double precision CONTEXT: COPY recv_cgpd, line 1, column d_latitude: -6.7166471789178305e-310 pg_restore: [archiver (db)] Error from TOC entry 9297; 0 178321361 TABLE DATA recv_cgps postgres pg_restore: [archiver (db)] COPY failed for table recv_cgps: ERROR: 9.7391168714266534e-317 is out of range for type double precision CONTEXT: COPY recv_cgps, line 1600, column d_velocidade: 9.7391168714266534e-317 WARNING: errors ignored on restore: 4 Ja tentei setar set extra_float_digits to 3 mas o problema persiste. Alguém tem algum ideia ? So: CentOS (dump) - Redhat (restore) Agradeço. -- *Atenciosamente, Emanuel Araújo* http://eacshm.wordpress.com/ * * *Linux Certified LPIC-1* ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Campo double precision
On 28-01-2012 09:23, Emanuel Araújo wrote: So: CentOS (dump) - Redhat (restore) Desconfio que o problema seja sua plataforma e não o PostgreSQL. Qual a saída de select version() de ambas as máquinas? Qual o comando utilizado para fazer a cópia no CentOS? -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral