Re: [pgbr-geral] Campo double precision

2012-01-30 Por tôpico Flavio Henrique Araque Gurgel
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

2012-01-30 Por tôpico Emanuel Araújo

 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

2012-01-30 Por tôpico Osvaldo Kussama
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

2012-01-30 Por tôpico Euler Taveira de Oliveira
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-01-29 Por tôpico Vinicius Abrahao
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

2012-01-28 Por tôpico Emanuel Araújo
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

2012-01-28 Por tôpico Euler Taveira de Oliveira
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