Re: [pgbr-geral] Arredondamento em campo double precision

2013-09-27 Por tôpico Osvaldo Kussama
Em 27/09/13, Giovani Rodrigues escreveu:
> *"bom dia..*
> *tente utilizar:*
> *
> *
> *select (campo)::numeric(15,2) from table"*
>
> Desta forma funcionou! Obrigado!
>
>
> *"SELECT ROUND(column_name,decimals) FROM table_name;"*
>
> O ROUND não funcionou. Retornou a seguinte mensagem de erro:
>
> [ERRO:  função round(double precision, integer) não existe
> LINE 1:  SELECT id_insumo, codnofor, ROUND(valor,2), unidade, nf, da...
>   ^
> HINT:  Nenhuma função corresponde com o nome e os tipos de argumentos
> informados. Você precisa adicionar conversões de tipo explícitas.
>
> ** Error **
>
> ERRO: função round(double precision, integer) não existe
> SQL state: 42883
> Hint: Nenhuma função corresponde com o nome e os tipos de argumentos
> informados. Você precisa adicionar conversões de tipo explícitas.
> Character: 30]
>


Não tem muito sentido você arredondar um campo double precision para
uma casa decimal já que esta representação é inerentemente imprecisa.
Por isso o PostgreSQL prevê as funções [1]:
round(dp or numeric)(same as input) round to nearest integer
round(42.4) 42
e
round(v numeric, s int) numeric round to s decimal places
round(42.4382, 2)   42.44

com arredondamento para casa decimal apenas para um campo numeric.

Osvaldo
[1] http://www.postgresql.org/docs/current/interactive/functions-math.html
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Arredondamento em campo double precision

2013-09-27 Por tôpico Giovani Rodrigues
*"bom dia..*
*tente utilizar:*
*
*
*select (campo)::numeric(15,2) from table"*

Desta forma funcionou! Obrigado!


*"SELECT ROUND(column_name,decimals) FROM table_name;"*

O ROUND não funcionou. Retornou a seguinte mensagem de erro:

[ERRO:  função round(double precision, integer) não existe
LINE 1:  SELECT id_insumo, codnofor, ROUND(valor,2), unidade, nf, da...
  ^
HINT:  Nenhuma função corresponde com o nome e os tipos de argumentos
informados. Você precisa adicionar conversões de tipo explícitas.

** Error **

ERRO: função round(double precision, integer) não existe
SQL state: 42883
Hint: Nenhuma função corresponde com o nome e os tipos de argumentos
informados. Você precisa adicionar conversões de tipo explícitas.
Character: 30]


-- 
Giovani Rodrigues
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Arredondamento em campo double precision

2013-09-27 Por tôpico Kaui Aires Oliveira
Em 27 de setembro de 2013 11:27, Giovani Rodrigues
escreveu:

> É possível fazer um arredondamento em um campo double precision quando eu
> fizer um select?
>
> Ex: 0,0801 arredondado para 0,08
>

SELECT ROUND(column_name,decimals) FROM table_name;



>
> --
> Giovani Rodrigues
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Arredondamento em campo double precision

2013-09-27 Por tôpico Douglas Fabiano Specht
Em 27 de setembro de 2013 11:27, Giovani Rodrigues
escreveu:

> É possível fazer um arredondamento em um campo double precision quando eu
> fizer um select?
>
> Ex: 0,0801 arredondado para 0,08
>
> --
> Giovani Rodrigues
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

bom dia..
tente utilizar:

select (campo)::numeric(15,2) from table
-- 

Douglas Fabiano Specht
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Arredondamento em campo double precision

2013-09-27 Por tôpico Giovani Rodrigues
É possível fazer um arredondamento em um campo double precision quando eu
fizer um select?

Ex: 0,0801 arredondado para 0,08

-- 
Giovani Rodrigues
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PANIC: right sibling's left-link doesn't match

2013-09-27 Por tôpico Jean Pereira

On 09/26/2013 07:57 PM, Matheus de Oliveira wrote:




2013/9/26 Adriano Espinoza de Oliveira >


Boa tarde pessoal.


Boa noite... =D


Hje de manhã tivemos "too many clients" no banco, eu não esta na
empresa, e o adm de redes foi lá e derrubou um monte de conexões
do postgres que ele achou q eram antigas...


Bom, a alguns anos atrás, fiz isso também, se não me engano também era 
na versão 8.x (não lembro exato porque faz tempo, talvez seja a 7.x).


Derrubou como? Se foi um "kill -9" é bom dar um "kill -9  `pidof 
cara_que_fez_isso`"... =P



Estou brincando viu, vamos lá ...

O banco ficou inacessível, ele fez um restart do banco, que não
subiu. Teve que apagar o PID na unha e depois o banco subiu...


Ok. Normal...


Depois disso, quando cheguei, notei que o banco estava se
derrubando e subindo sozinho, exibindo essas mensagens:

* 2013-09-26 12:09:25 BRT [18539]: [1-1] db=,user= LOG:  server
process (PID 23040) was terminated by signal 6*
* 2013-09-26 12:09:25 BRT [18539]: [2-1] db=,user= LOG:
 terminating any other active server processes*
*10.11.0.2 2013-09-26 12:09:25 BRT [23043]: [3-1]
db=cimed,user=postgres WARNING:  terminating connection because of
crash of another server process*
*(...)*


E tive um problema muito parecido... como falei, não consigo precisar, 
faz muito tempo...
A solução que eu tive foi que achei um script em um post falando do 
problema e que o mesmo resolveria isso, olhei o script e rodei o mesmo. 
resolveu o meu problema.


Como um velho conhecido meu fala, o kill é o ultimo do ultimo caso. Já 
que você deve ter conexões reservadas ao postgres, e o mesmo consegue 
matar conexão por dentro do banco.


Mais não é o caso agora... vou tentar achar aqui a situação que tive e a 
solução exata, se eu achar eu posto.


Essas mensagens querem dizer que  um dos backends do PostgreSQL 
terminou e os demais pararam também pelo fato deste poder ter 
corrompido a memória compartilhada.




Quando subia, esse era o log:

*(...)*

e sempre precedido dessas msg´s ( note que tive varias ocorrencias
dela)

*10.11.0.2 2013-09-26 12:09:24 BRT [23040]: [3-1]
db=cimed,user=postgres PANIC:  right sibling's left-link doesn't
match*
*(...)*
*10.11.0.2 2013-09-26 15:05:46 BRT [3063]: [15-1]
db=cimed,user=postgres PANIC:  right sibling's left-link doesn't
match*
*
*


Ok. Aqui parece que temos o problema: algum(ns) índice(s) corrompido(s)...


*além da informação de roll back das transações: *
*
10.11.0.2 2013-09-26 17:25:11 BRT [11831]: [4-1]
db=nutracom,user=visao DETAIL:  The postmaster has commanded this
server process to roll back the current transaction and exit,
because another server process exited abnormally and possibly
corrupted shared memory.
(...)

*

Normal...


Pesquisando, vi que poderia ser corrupção de indices...

Derrubei o banco, limitei o acesso dos usuários, e executei o
reindex de todas as tabelas em lote, com script.


Como? Reindexou TODAS as bases?

Durante esse processo, tive o mesmo problema duas vezes, qdo o
indice chegou numa determinada tabela, ao invés de executar o
script em lote, fiz tabela a tabela, e passou do ponto que dava erro.

O reindex de todas as tabelas terminou, e subi o banco novamente...

Duas horas depois, a mesma coisa com o aumento do acesso:
*10.11.0.2 2013-09-26 17:10:37 BRT [11516]: [1-1]
db=cimed,user=postgres PANIC:  right sibling's left-link doesn't
match*
*10.11.0.2 2013-09-26 17:25:10 BRT [13163]: [1-1]
db=cimed,user=postgres PANIC:  right sibling's left-link doesn't
match*
*
*
*Inclusive essa mensagem me preocupou e não tenho idéia do que
pode ser:*
*
10.35.0.2 2013-09-26 18:01:28 BRT [16124]: [1-1]
db=nutracom,user=postgres WARNING:  could not remove relation
1663/105809227/572937579: Arquivo ou diretório não encontrado
10.35.0.2 2013-09-26 18:01:28 BRT [16124]: [2-1]
db=nutracom,user=postgres WARNING:  could not remove relation
1663/105809227/572937581: Arquivo ou diretório não encontrado
10.35.0.2 2013-09-26 18:01:28 BRT [16124]: [3-1]
db=nutracom,user=postgres WARNING:  could not remove relation
1663/105809227/572937583: Arquivo ou diretório não encontrado
10.35.0.2 2013-09-26 18:01:28 BRT [16124]: [4-1]
db=nutracom,user=postgres WARNING:  could not remove relation
1663/105809227/572937585: Arquivo ou diretório não encontrado
10.35.0.2 2013-09-26 18:01:28 BRT [16124]: [5-1]
db=nutracom,user=postgres WARNING:  could not remove relation
1663/105809227/572937586: Arquivo ou diretório não encontrado
10.35.0.2 2013-09-26 18:01:28 BRT [16124]: [6-1]
db=nutracom,user=postgres WARNING:  could not remove relation
1663/105809227/572937588: Arquivo ou diretório não encontrado
10.35.0.2 2013-09-26 18:01:28 BRT [16124