[pgbr-geral] pgAdmin4 - Server Mode Apache - Conexão databases

2016-12-09 Thread Camilo

Bom dia!

A alguns dias resolvi instalar o pgAdmin4 (1.1) no modo servidor, 
rodando no apache2, para acostumar com a interface e começar a utilizar 
essa nova versão no trabalho. Utilizei as configurações indicadas na 
documentação (https://www.pgadmin.org/docs4/dev/server_deployment.html#).


Apesar da instalação ter dado certo me deparei com um problema: Sempre 
que o serviço do apache é iniciado o pgAdmin4 abre uma conexão com todos 
os databases de todas as conexões configuradas.


Utilizei a query: "select * from pg_stat_activity;" para visualizar 
essas conexões via psql. Todas as conexões estão como "idle", mas 
utilizam recursos do servidor.


Tenho uma situação, por exemplo, em que um servidor (PostgreSQL 9.2) na 
empresa tem uma série de databases com fragmentos de informações de 
bases de dados de clientes para simulação de falhas, implementações, 
etc, e quando configuro o pgAdmin4 para conectar nele e em algum momento 
reinicio o serviço do apache, chega a parar o servidor devido a 
quantidade de conexões.


Existe uma forma de configurar o pgAdmin4 para que ele não abrir essas 
conexões com os databases automaticamente como é no pgAdminIII?


Realizei uma busca na internet e não encontrei nada no momento, 
acompanho a algum tempo a lista mas também não consegui encontrar nada. 
É minha primeira vez solicitando ajuda por aqui, espero que eu tenha 
conseguido me expressar bem... desde já agradeço a comunidade :)


Att: Camilo Santos.

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

Re: [pgbr-geral] Enc: Como faz Select dentro do for loop?

2017-01-06 Thread Camilo

Em 06/01/2017 13:40, programador_desenvolve...@yahoo.com escreveu:


SELECT
 MIN(fatura.inicio) INTO inicio
  ,MAX(fatura.inicio) INTO termino
FROM fatura
WHERE lote = r.lote; -- Não funciona

Poderia postar o todo o corpo da função?

Talvez seja o local onde as variáveis estão declaradas, tente alterar o 
trecho de código para como está abaixo:


SELECT
MIN(fatura.inicio),
MAX(fatura.termino)
INTO
inicio, termino
FROM fatura
WHERE lote = rResult.lote;

Att: Camilo Santos
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Funções e seus tipos de parametros

2017-01-20 Thread Camilo

Em 20/01/2017 12:01, Ariel Alves escreveu:

Olá prezados,

Estou precisando listar todas as funções e os seus tipos de 
paramentos. Por exemplo,

function1(numeric,text)
function2(numeric,timestamp,text)
function3(bigint,text)

Não encontrei esta informação no catalogo.

Alguém sabe onde localizar isto?


Estou utilizando o PostgreSQL 9.6.1


Agradecido.

--

José Ariel Ferreira Alves
arielalves...@gmail.com 
ariel.al...@msn.com 


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

Você pode utilizar a pg_proc [1], segue um exemplo abaixo:

select
proname,
proargtypes::regtype[]::varchar[]
from
pg_proc
where
proname like 'fn_%';

[1] https://www.postgresql.org/docs/current/static/catalog-pg-proc.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] Fwd: Converter de JSON para RECORD

2017-03-25 Thread Camilo


Porem eu preciso receber tb dentro da estrutura de PEDIDO em JSON os 
itens deste pedido.
Neste caso como eu faria pra converter os itens que vem junto com o 
pedido em estrutura de tuplas.


Exemplo:

[
  {

 "id_pedido":589,"id_cliente":100,"data":"20/03/2017","obs":"TESTE JSON"

 {
"id_produto":1010,"qtde":10.5,"unitario":1.00,"total":10.50
 }
   }
]'


Poderia encaminhar um exemplo do arquivo da mesma forma que está 
recebendo da aplicação, ao menos esse que você postou parece estar com a 
estrutura incorreta. Fica mais fácil para testar e te ajudar.


Imagino que onde viriam os produtos deveria existir uma chave contendo 
um array de objetos.


Att: Camilo Santos
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Editar uma PL em tempo de execução

2017-03-25 Thread Camilo

Em 25/03/2017 07:28, lu moraes santos escreveu:
Ola saudações a comunidade. Eu queria saber como trazer a estrutura de 
um PL para que seja editada pela aplicação. Grato.



A função pg_get_functiondef(oid) deve te ajudar. [1]

[1] 
https://www.postgresql.org/docs/current/static/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE

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

Re: [pgbr-geral] substring - Pg 9.1

2017-04-07 Thread Camilo

Em 06/04/2017 22:28, Patrick B escreveu:
Em 7 de abril de 2017 12:36, Patrick B <mailto:patrickbake...@gmail.com>> escreveu:


Oi pessoal, tudo bem?

Eu tenho a coluna (seg_table.path_name character varying(255),
onde eu armazeno o caminho do arquivo (pdf ou jpg) no S3bucket.

Exemplo:

/{s3bucket}/filesuser/client/27801123/attachment/4510/main

/{s3bucket}/filesuser/client/27801123/attachment/4510/file


Eu preciso, num INNER JOIN, selecionar bem específico o 'main',
talvez algo assim?

...
FROM path_view n
INNER JOIN seg_table AS s ON s.path_name = substr(n.path_name,
char_pos '/file..' to get /filesuser/client/.../attachment/.../)
|| 'main'



Mas não estou conseguindo.. poderiam me ajudar com a string? Obrigado!
Patrick.



Melhorando a explicação... Os caminhos que informei...

/{s3bucket}/filesuser/client/27801123/attachment/4510/main

/{s3bucket}/filesuser/client/27801123/attachment/4510/file


... pode se tornar:


/{s3bucket}/filesuser/client/27801123/attachment/4510/main/111/small/photo.jpg


/{s3bucket}/filesuser/client/27801123/attachment/4510/file/111/medium/photo.jpg


onde...

27801123 = account_id
4510 = id
file | main = type
small | medium = variation
photo.jpg = filename


/{s3bucket}/filesuser/client/27801123/attachment/4510/main é o caminho 
root de 
/{s3bucket}/filesuser/client/27801123/attachment/4510/main/111/small/photo.jpg.


Mas eu preciso por numa where clause somente quando for = 'main'

exemplo

select REGEXP_REPLACE(path_name, '.*/', '') as col2 from
seg_table limit 10;


isso me retorna:

photo.jpg
main
file


Está funcionando.. eu consigo selecionar o main. Mas como vocês podem 
ver, não seleciono só o 'main'. Como acrescentar isso numa where 
clause? Como por exemplo:


WHERE REGEXP_REPLACE(path_name, '.*/', '')::text = 'main'


Obrigado!
Patrick.



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

Patrick,

Se você converter esse varchar em array usando a função 
string_to_array[1] acredito que ficará mais fácil para você manipular 
esses dados.


No exemplo abaixo eu usei o values somente para montar a sql, mas você 
pode utilizar o string_to_array diretamente no campo da tabela. Ex 
"select string_to_array(coluna, '/') from tabela;"


with paths as (
  select
string_to_array(column1,'/') as array_path
  from (
values
('/{s3bucket}/filesuser/client/27801123/attachment/4510/main/111/small/photo.jpg'),
('/{s3bucket}/filesuser/client/27801123/attachment/4510/file/111/medium/photo.jpg')
  ) as x
)
select
  array_path
from
  paths
where
  array_path[8]='main';

[1] 
https://www.postgresql.org/docs/current/static/functions-array.html#ARRAY-FUNCTIONS-TABLE


Att: Camilo Santos.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] substring - Pg 9.1

2017-04-10 Thread Camilo


Camilo, obrigado!

Eu não consigo mudar a query para ser CTE, por exemplo. No meu caso, 
posso incluir  a string_to_array num "CASE WHEN'? Para substituir o 
'WHERE'?


Se sim, poderia ajudar com a syntax ?

Obrigado! Patrick



Utilizando o with o código ficaria mais legível e também você só 
converteria as string para array uma vez. Mas você pode realizar a 
conversão diretamente no where, não sei se ficaria muito performático. 
Algo como:


where (string_to_array(path, '/'))[8] = 'main'

Ou utilizando a função split_part [1]:

where split_part(path, '/', 8) = 'main'

[1] 
https://www.postgresql.org/docs/9.1/static/functions-string.html#FUNCTIONS-STRING-OTHER


Att: Camilo Santos.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Inconsistencia na coleta de estatistica do PostgreSQL

2007-09-27 Thread Camilo Porto
 campos 'elapsed' de todas as seções de estatística do 
EXECUTOR (isto me dá, *em tese*, o tempo que o EXECUTOR foi utilizado durante o 
intervalo de tempo em que os comandos SQL foram executados).
 O Grande Problema é que a soma dos tempos 'elapsed' do EXECUTOR, algumas 
vezes, é MAIOR que o intervalo de tempo em que os comandos foram executados. Ou 
seja, acho que existe uma grande inconsistência na coleta do campo 'elapsed'. 
Em alguns testes que efetuei, chego ao seguinte resultado:
 
1. Deixo transações serem executadas durante 30 segundos (ou seja, dentro de 30 
segundos, várias transações foram completadas)
2. quando eu somo os tempos 'elapsed' das seções EXECUTOR dos Logs gerados 
dessas transações, já teve vezes de o tempo somar 2 minutos e 36 segundos
3. Esta discrepância fica muiitto maior quando realizo o teste com vários 
clientes (a partir de 10, por exemplo) executando transações de forma 
simultânea.

A princípio imaginei que fosse problema de conversão de unidades de medidas 
(segundo, minuto, milisegundo, etc..). Então vejamos a minha interpretação dos 
valores contidos
no campo 'elapsed' do Log do PostgreSQL: No exemplo acima, o campo 'elapsed' da 
seção do EXECUTOR possui o valor '0.022129'. Pelo que pude observar na função 
do PostgreSQL que gera esses valores
(ShowUsage(), disponivel em: 
http://doxygen.postgresql.org/postgres_8c.html#7f657058d4a936c22d076d31bf786828)
 a interpretação que dei ao valor é a seguinte:
o valor é dividido em duas partes: TEMPO_EM_SEGUNDO.TEMPO_EM_MICROSEGUNDO. Na 
minha soma, eu converto todos os intervalos de tempo para milisegundo. Então, o 
tempo do exemplo, em milisegundos, ficaria: (TEMPO_EM_SEGUNDO * 1000) + 
(TEMPO_EM_MICROSEGUNDOS / 1000), correto? Então o que há de errado? como pode o 
Executor passar muito mais tempo sendo executado do que os própios comandos que 
o utiliza? Alguem pode me explicar isso? Será algum Bug? Alguem sabe em 
detalhes como é feita a coleta de estatísticas do PostgreSQL? Agradeço a ajuda 
de voces!

[Camilo Porto]

_
Encontre o que procura com mais eficiência! Instale já a Barra de Ferramentas 
com Windows Desktop Search GRÁTIS!
http://desktop.msn.com.br/___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Inconsistencia na coleta de estatistica do PostgreSQL

2007-10-02 Thread Camilo Porto


[Camilo Porto]

Date: Mon, 1 Oct 2007 14:05:04 -0300
From: [EMAIL PROTECTED]
To: pgbr-geral@listas.postgresql.org.br
Subject: Re: [pgbr-geral] Inconsistencia na coleta de estatistica do
PostgreSQL

2007/9/27, Camilo Porto <[EMAIL PROTECTED]>:





A princípio imaginei que fosse problema de conversão de unidades de medidas 
(segundo, minuto, milisegundo, etc..). Então vejamos a minha interpretação dos 
valores contidos
no campo 'elapsed' do Log do PostgreSQL: No exemplo acima, o campo 'elapsed' da 
seção do EXECUTOR possui o valor '
0.022129'. Pelo que pude observar na função do PostgreSQL que gera esses valores
(ShowUsage(), disponivel em: 
http://doxygen.postgresql.org/postgres_8c.html#7f657058d4a936c22d076d31bf786828)
 a interpretação que dei ao valor é a seguinte:
o valor é dividido em duas partes: TEMPO_EM_SEGUNDO.TEMPO_EM_MICROSEGUNDO. Na 
minha soma, eu converto todos os intervalos de tempo para milisegundo. Então, o 
tempo do exemplo, em milisegundos, ficaria: (TEMPO_EM_SEGUNDO * 1000) + 
(TEMPO_EM_MICROSEGUNDOS / 1000), correto? 

 Aqui está seu erro. Não é TEMPO_EM_SEGUNDO.XXX mas sim 
"TEMPO_EM_MILISEGUNDOS". Olhe no trecho que atualiza o valor: 
03827 if (elapse_t.tv_usec < Save_t.tv_usec)

03828 {
03829 elapse_t.tv_sec--;
03830 elapse_t.tv_usec += 100;
03831 }   Ao decrementar um segundo, são somadas 
1.000.000 de unidades, ou seja, um milhão de milisegundos...

Mas 1 segundo = 1000 milisegundo. Então se ele soma 1 milhão, para que esta 
soma seja equivalente a 1 segundo, a unidade teria de ser 1 milhão de 
microsegundos, correto?

-- 
William Leite Araújo
Analista de Banco de Dados - QualiConsult

_
Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver 
offline. Conheça  o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Inconsistencia na coleta de estatistica do PostgreSQL

2007-10-03 Thread Camilo Porto


[Camilo Porto]

> Date: Mon, 1 Oct 2007 22:39:31 -0300
> From: [EMAIL PROTECTED]
> To: pgbr-geral@listas.postgresql.org.br
> Subject: Re: [pgbr-geral] Inconsistencia na coleta de estatistica do  
> PostgreSQL
> 
> Camilo Porto wrote:
> 
> > Para responder a minha pergunta inicial (Quanto tempo o PostgreSQL
> > gastou no EXECUTOR durante um determinado intervalo de tempo?) eu faço o
> > seguinte:
> > 1. Através dos TIMESTAMP dos comandos SQL eu determino o intervalo de
> > tempo em que os comandos foram executados (TIMESTAMP INICIAL - TIMESTAMP
> > FINAL)
> Por que? Uma consulta é executada exatamente após a outra? Se for, mesmo
> assim o PostgreSQL pode estar fazendo outra coisa que não seja iniciar a
>  próxima consulta. Para medidas mais apuradas sugiro que utilize o
> parâmetro 'log_min_duration_statement = 0' para ter o tempo "exato"
> utilizado na consulta.
A ideia é essa mesma. Durante um intervalo de tempo T, quanto tempo o EXECUTOR 
foi utilizado.. independente de ter sido executada uma consulta atras da outra 
ou se o PostgreSQL for fizer outra coisa após a consulta. O parâmetro 
log_min_duration_statement já está configurado com 0. Estou baixando a versao 
mais nova do PostgreSQL para ve se a inconsistência continua. Sugestões 
continuam sendo muito bem vindas.
> 
> Outra coisa, utilize uma versão mais nova do PostgreSQL; a 7.4 foi
> lançada a 4 anos atrás.
> 
> 
> -- 
>   Euler Taveira de Oliveira
>   http://www.timbira.com/
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

_
Receba as últimas notícias do Brasil e do mundo direto no seu Messenger com 
Alertas MSN! É GRÁTIS!
http://alertas.br.msn.com/___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral