Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Vinicius A. Santos
Euler Taveira de Oliveira escreveu:
 Não entendi... O que tem o tipo? Qual o driver está retornando isso? 
 Não me
 lembro disso ter sido alterado da 8.3 para 8.4. A informação de tamanho do
 tipo fica no catálogo (indiretamente -- format_type()).
Eu tenho o seguinte select:

SELECT
 (select usuario from usuarios where chave=(select autorizadopor from 
pedidocompra where pedido=e.pedidocompra)) as quemautorizoucompra
FROM
 entradas e
WHERE
 e.tipoentrada='0' and e.dataoperacao = current_date - 3

Executando esta consulta na 8.4, o campo QuemAutorizouCompra, retorna 
varchar(20), que é o tipo do campo usuario da tabela de usuários, 
porém a mesma consulta executando na 8.3, me retorna apenas varchar, sem 
a limitação de 20.

Estou observando isto pelo pgAdmin, não sei se é possível fazer o psql 
mostrar o tipo da coluna como faz o pgAdmin, se for possível eu posto o 
resultado, queria apenas entender o que está acontecendo.

-- 
Vinicius A. Santos
www.msisolucoes.com.br

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


[pgbr-geral] Mudança de partição postgresql

2009-07-30 Por tôpico Daniel
Pessoal,

Uso o ubuntu server LTS 8.04 64 bits e tenho o postgre 8.3 rodando nele. Criei 
uma partição chamada /db para ficar os bancos de dados, mas o postgre foi 
instalado na /root e ta armazenando lá. O problema é que a partição /root é 
pequena e o banco está acabando com o espaço. Como faço para alterar o local 
aonde ficam armazenados meus bancos sem ter problema com meus sistemas?

att,

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


Re: [pgbr-geral] Mudança de partição postgresql

2009-07-30 Por tôpico Roberto Mello
2009/7/30 Daniel daniel.frutu...@ig.com.br

  Pessoal,

 Uso o ubuntu server LTS 8.04 64 bits e tenho o postgre 8.3 rodando nele.
 Criei uma partição chamada /db para ficar os bancos de dados, mas o postgre
 foi instalado na /root e ta armazenando lá. O problema é que a partição
 /root é pequena e o banco está acabando com o espaço. Como faço para alterar
 o local aonde ficam armazenados meus bancos sem ter problema com meus
 sistemas?


1) Desligue o PostgreSQL

2) Mova a pasta do postgresql para o local desejado

3) Altere o arquivo de configuração para que o PG procure pela pasta no novo
local. Se estiveres usando o PostgreSQL dos pacotes do Ubuntu/Debian, o
arquivo de configuração estará em /etc/postgresql/8.3/main/postgresql.conf
(veja a diretriz data_directory)

4) Reinicie o PostgreSQL

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


Re: [pgbr-geral] Mudança de partição postgresql

2009-07-30 Por tôpico Joares Luis Dalorsoleta
Leve em consideração que para manter as permissoes e a segurança da pasta
antiga utilize para copiar a base o comando

# cp -a /pasta_atual_banco /pasta_nova_banco

pode alterar o postgres.conf como o ilustre amigo Roberto relatou ou alterar
a linha de comando que faz a incialização do banco
a inicialização do banco é gerada pelo comando postmaster pode ser utilizado
o parametro -D

-D DATADIR  database directory
como em postmaster -D /meu_banco_novo

esse é um exemplo simples

att

Joares Luis Dalorsoleta

2009/7/30 Roberto Mello roberto.me...@gmail.com

 2009/7/30 Daniel daniel.frutu...@ig.com.br

  Pessoal,

 Uso o ubuntu server LTS 8.04 64 bits e tenho o postgre 8.3 rodando nele.
 Criei uma partição chamada /db para ficar os bancos de dados, mas o postgre
 foi instalado na /root e ta armazenando lá. O problema é que a partição
 /root é pequena e o banco está acabando com o espaço. Como faço para alterar
 o local aonde ficam armazenados meus bancos sem ter problema com meus
 sistemas?


 1) Desligue o PostgreSQL

 2) Mova a pasta do postgresql para o local desejado

 3) Altere o arquivo de configuração para que o PG procure pela pasta no
 novo local. Se estiveres usando o PostgreSQL dos pacotes do Ubuntu/Debian, o
 arquivo de configuração estará em /etc/postgresql/8.3/main/postgresql.conf
 (veja a diretriz data_directory)

 4) Reinicie o PostgreSQL

 Roberto

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




-- 
Esta mensagem, incluindo seus anexos, pode conter informações privilegiadas
e/ou de caráter confidencial, não podendo ser retransmitida sem autorização
do remetente.
Se você não e o destinatário ou pessoa autorizada a recebê-la, informamos
que o seu uso, divulgação, copia ou arquivamento são proibidos. Portanto, se
você recebeu esta mensagem por engano, por favor, nos informe respondendo
imediatamente a este e-mail e em seguida apague-a.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Valores de configuração de Perfo rmance

2009-07-30 Por tôpico Tiago Adami
Bem... com certeza eu devo ter sido motivo de piada para a maioria do
pessoal da lista, que provavelmente é DBA e têm sob sua responsabilidade
poucas instâncias de bancos de dados com terabytes de tamanho. Mesmo assim,
preciso adaptar as configurações de performance para nossos clientes, pois
preciso usar ao máximo o que os servidores deles podem oferecer.

Eu utilizo estas configurações como base:

*shared_buffers:*
entre 15% e 25% da memória RAM disponível (25% somente a partir de 2 GB de
RAM);

*temp_buffers:*
8 MB para menos de 2 GB de RAM, acima disso 16 MB;

*work_mem:*
4 MB até 512 MB de RAM; acima de 512 MB e até 2 GB uso 8 MB; acima disso 16
MB;

*maintenance_work_mem:*
sempre 50% da memória RAM disponível.

*fsync:*
sempre on - não podemos confiar nos discos dos clientes;

*synchonous_commit:*
on - idem

*full_page_writes:*
on - idem

*checkpoint_segments:
*4 para máquinas com discos pequenos e lentos (até 7200 RPM). Se o cliente
possui RAID, colocamos 16 segmentos.

*effective_cache_size:*
50% da memória RAM disponível.

* Estes valores foram definidos após testes com diversas bases de clientes,
a mais ou menos 2 anos com a versão 8.0 do PostgreSQL.

Eu entendo que deveria ser feito uma análise de performance individual para
cada cliente, mas administrar mais de 200 bases de dados é complicado, ainda
mais levando em consideração a falta de hardware de alguns. Nos clientes que
dispõe de um servidor dedicado estas análises são feitas e as configurações
são personalizadas.

Agora, gostaria de uma validação da comunidade para saber se não estou
colocando valores muito fora da realidade. E também saber se existe alguma
outra opção que possa impactar na performance para estes hardwares
singelos.

NOTA: nosso ERP é bem dinâmico, rodando em clientes pequenos (de 1 a 4
clientes simultâneos) até clientes de médio porte (com mais de 60 clientes
simultâneos). Portanto a escolha de outro SGBD está fora de questão - como
já foi sugerido em outros fóruns.

-- 
Tiago J. Adami
Dois Vizinhos - Paraná - Brasil


2009/7/29 Tiago Adami adam...@gmail.com

 A muito tempo atrás eu troquei uns e-mails com um expert em PostgreSQL que
 se não me engano trabalhava em uma empresa chamada Varlena ou algo assim -
 infelizmente perdi o e-mail e não posso dar mais detalhes. Naquele tempo a
 versão atual era a 7.4, e ele me passou valores em percentuais para as
 principais configurações de performance do banco em situações onde o
 hardware não é muito parrudo. Funcionou bem, mas vejo que hoje existem
 muitas novas opções de performance que podem ser adotadas em hardwares de
 servidores modestos.

 Pois bem, trabalho para uma empresa que desenvolve um sistema ERP escrito
 em Visual Foxpro 9 e o banco é unicamente PostgreSQL (atualmente versão
 8.2). Temos mais de 200 clientes por todo o Brasil, com bases de dados que
 variam de 10 Mb até 500 Mb (baseados no tamanho do backup realizado com as
 opções -F c -Z 9 do pg_dump).

 Como atendemos clientes pequenos e médios, alguns clientes possuem máquinas
 de servidor que não passam de um Celeron 800 com 512 MB de RAM (máquinas com
 o sistema standalone). Entretanto, alguns clientes maiores possuem
 servidores Xeon Quad-Core com 4 Gb de RAM com RAID 0+1 ou 5.

 Baseado nesta faixa de hardware, o que vocês poderiam me recomendar em
 configurações para aumentar a performance utilizando a versão 8.2 ou
 superior do PostgreSQL?


 --
 Tiago J. Adami
 Dois Vizinhos - Paraná - Brasil


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


Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Fabrízio de Royes Mello
2009/7/30 Vinicius A. Santos vinic...@msisolucoes.com.br

 SELECT
  (select usuario from usuarios where chave=(select autorizadopor from
 pedidocompra where pedido=e.pedidocompra)) as quemautorizoucompra
 FROM
  entradas e
 WHERE
  e.tipoentrada='0' and e.dataoperacao = current_date - 3

 Executando esta consulta na 8.4, o campo QuemAutorizouCompra, retorna
 varchar(20), que é o tipo do campo usuario da tabela de usuários,
 porém a mesma consulta executando na 8.3, me retorna apenas varchar, sem
 a limitação de 20.

 corte


Caro Vinicius,


Observe os testes abaixo no 8.2, 8.3 e 8.4:

postgresql-8.2

postg...@bdteste=# create table foo(codigo integer, nome varchar(40));
CREATE TABLE
postg...@bdteste=#
postg...@bdteste=# \d foo
 Table public.foo
 Column | Type  | Modifiers
+---+---
 codigo | integer   |
 nome   | character varying(40) |

postg...@bdteste=#
postg...@bdteste=# create temp table w_foo as
bdteste-#   select (select nome from foo where codigo = 1) as nome1,
bdteste-#  (select nome from foo where codigo = 2) as nome2;
SELECT
postg...@bdteste=#
postg...@bdteste=# \d w_foo
Table pg_temp_1.w_foo
 Column |   Type| Modifiers
+---+---
 nome1  | character varying |
 nome2  | character varying |

postg...@bdteste=#
postg...@bdteste=# select version();

version
--
 PostgreSQL 8.2.13 on i686-pc-linux-gnu, compiled by GCC cc (Ubuntu
4.3.3-5ubuntu4) 4.3.3
(1 row)

/postgresql-8.2


postgresql-8.3

postg...@bdteste=# create table foo(codigo integer, nome varchar(40));
CREATE TABLE
postg...@bdteste=#
postg...@bdteste=# \d foo
  Tabela public.foo
 Coluna | Tipo  | Modificadores
+---+---
 codigo | integer   |
 nome   | character varying(40) |

postg...@bdteste=#
postg...@bdteste=# create temp table w_foo as
bdteste-#   select (select nome from foo where codigo = 1) as nome1,
bdteste-#  (select nome from foo where codigo = 2) as nome2;
SELECT
postg...@bdteste=#
postg...@bdteste=# \d w_foo
Tabela pg_temp_1.w_foo
 Coluna | Tipo  | Modificadores
+---+---
 nome1  | character varying(40) |
 nome2  | character varying(40) |

postg...@bdteste=#
postg...@bdteste=# select version();

version
---
 PostgreSQL 8.3.7 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Ubuntu
4.3.3-5ubuntu4) 4.3.3
(1 registro)

/postgresql-8.3


postgresql-8.4

bdteste=# create table foo(codigo integer, nome varchar(40));
CREATE TABLE
bdteste=#
bdteste=# \d foo
 Table public.foo
 Column | Type  | Modifiers
+---+---
 codigo | integer   |
 nome   | character varying(40) |

bdteste=#
bdteste=# create temp table w_foo as
bdteste-#   select (select nome from foo where codigo = 1) as nome1,
bdteste-#  (select nome from foo where codigo = 2) as nome2;
SELECT
bdteste=#
bdteste=# \d w_foo
  Table pg_temp_1.w_foo
 Column | Type  | Modifiers
+---+---
 nome1  | character varying(40) |
 nome2  | character varying(40) |

bdteste=#
bdteste=# select version();

version
--
 PostgreSQL 8.4.0 on i686-pc-linux-gnu, compiled by GCC gcc (Ubuntu
4.3.3-5ubuntu4) 4.3.3, 32-bit
(1 row)

/postgresql-8.4


Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou
com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho.



-- 
Fabrízio de Royes Mello
 Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Parse

2009-07-30 Por tôpico Kauí Aires Oliveira
Bom Dia Osvaldo...

Exatamente é o que estamos conjurando ser a aplicação, pois tem outra
aplicação que não utiliza a Zend como frame work e faz todo esse
procedimento e não está acontecendo isso... Suspeito que seja algum
parâmetro ativo algo do gênero... Mas é exatamente isso é uma consulta que é
executada N vezes...

Mas até agora o problema persiste :(

2009/7/29 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/7/29 Kauí Aires Oliveira kauiai...@gmail.com:
  Olá Dickson
 
  Não usamos ORM vem da zend direto a aplicação... o erro é porque qualquer
  query que seja executada faz o seguinte
  preparete query - execute query - dealocate preparetequery
  E quando o sistema tenta passar alguma coisa ele faz o parse e o
 dealocate
  da assinatura do preparete...
 


 Se eu entendi corretamente o problema está em sua aplicação.
 A vantagem de usar o PREPARE é que o PostgreSQL analisa, reescreve e
 planeja uma única vez e cada EXECUTE apenas executa com os parâmetros
 recebidos. Só tem sentido se um determinado modelo de query vai ser
 executado múltiplas vezes, não faz sentido usar este procedimento *a
 cada query*.

 Osvaldo
 ___
 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


[pgbr-geral] NOT NULL

2009-07-30 Por tôpico sergio santos
Pessoal,

eu consigo colocar uma restrição em um campo de uma tabela para ser NOT
NULL.
No entanto eu não consigo, por exemplo, colocar uma restrição para um campo
do tipo character varying(30) não receber vazio.

O que tô querendo dizer é que NULL e vazio é diferente. E o que estou
querendo saber é como colocar uma restrição no banco de dados para ele não
receber valor vazio.

abraços

-- 
Sérgio Antônio dos Santos
Bacharel em Sistemas de Informação
(31) 8573-7004
http://serginhosant.wordpress.com/
http://www.rccvicosa.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Parse

2009-07-30 Por tôpico Charly Frankl
Kaui, bom dia...

Pelo que você escreveu:
preparete query - execute query - dealocate preparetequery

Bem, isso ao meu ver não faz sentido... você está indicando ao banco que
realize o parse toda vez que a consulta seja realizada com o dealocate. Se a
consulta é utilizada repetidas vezes dentro da seção aberta, não precisa
remove-la do plano de consultas (dealocate), pois vai perder todo o
benefício que o prepare te dá.

Espero ter ajudado.

Att,


-- 
Charly Frankl
http://javadevilopers.blogspot.com/
charlyfra...@gmail.com
Linux user #391083




2009/7/30 Kauí Aires Oliveira kauiai...@gmail.com

 Bom Dia Osvaldo...

 Exatamente é o que estamos conjurando ser a aplicação, pois tem outra
 aplicação que não utiliza a Zend como frame work e faz todo esse
 procedimento e não está acontecendo isso... Suspeito que seja algum
 parâmetro ativo algo do gênero... Mas é exatamente isso é uma consulta que é
 executada N vezes...

 Mas até agora o problema persiste :(

 2009/7/29 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/7/29 Kauí Aires Oliveira kauiai...@gmail.com:
  Olá Dickson
 
  Não usamos ORM vem da zend direto a aplicação... o erro é porque
 qualquer
  query que seja executada faz o seguinte
  preparete query - execute query - dealocate preparetequery
  E quando o sistema tenta passar alguma coisa ele faz o parse e o
 dealocate
  da assinatura do preparete...
 


 Se eu entendi corretamente o problema está em sua aplicação.
 A vantagem de usar o PREPARE é que o PostgreSQL analisa, reescreve e
 planeja uma única vez e cada EXECUTE apenas executa com os parâmetros
 recebidos. Só tem sentido se um determinado modelo de query vai ser
 executado múltiplas vezes, não faz sentido usar este procedimento *a
 cada query*.

 Osvaldo
 ___
 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


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


Re: [pgbr-geral] Parse

2009-07-30 Por tôpico Dickson S. Guedes
Em Wed, 29 Jul 2009 19:03:23 -0300, Kauí Aires Oliveira  
kauiai...@gmail.com escreveu:
 Olá Dickson

 Não usamos ORM vem da zend direto a aplicação... o erro é porque qualquer
 query que seja executada faz o seguintepreparete query - execute query -
 dealocate preparetequery

É exatamente o que um Hibernate faz na grande maioria da totalidade das  
vezes. Conforme o Osvaldo falou em outro e-mail, olhe para aplicação.  
Afinal em praticamente 90% dos casos o problema está lá. :)

Um abraço e mantenha-nos informados...
-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://guedesoft.net - http://www.postgresql.org.br
http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] NOT NULL

2009-07-30 Por tôpico Tiago Adami
ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_constraint CHECK (
nome_do_campo  '' )

2009/7/30 sergio santos sergio.serginhos...@gmail.com

 Pessoal,

 eu consigo colocar uma restrição em um campo de uma tabela para ser NOT
 NULL.
 No entanto eu não consigo, por exemplo, colocar uma restrição para um campo
 do tipo character varying(30) não receber vazio.

 O que tô querendo dizer é que NULL e vazio é diferente. E o que estou
 querendo saber é como colocar uma restrição no banco de dados para ele não
 receber valor vazio.

 abraços

 --
 Sérgio Antônio dos Santos
 Bacharel em Sistemas de Informação
 (31) 8573-7004
 http://serginhosant.wordpress.com/
 http://www.rccvicosa.com

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




-- 
Tiago J. Adami
Dois Vizinhos - Paraná - Brasil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] NOT NULL

2009-07-30 Por tôpico Charly Frankl
Sergio, bom dia...

Basta utilizar uma trigger.

Att,



-- 
Charly Frankl
http://javadevilopers.blogspot.com/
charlyfra...@gmail.com
Linux user #391083



2009/7/30 sergio santos sergio.serginhos...@gmail.com

 Pessoal,

 eu consigo colocar uma restrição em um campo de uma tabela para ser NOT
 NULL.
 No entanto eu não consigo, por exemplo, colocar uma restrição para um campo
 do tipo character varying(30) não receber vazio.

 O que tô querendo dizer é que NULL e vazio é diferente. E o que estou
 querendo saber é como colocar uma restrição no banco de dados para ele não
 receber valor vazio.

 abraços

 --
 Sérgio Antônio dos Santos
 Bacharel em Sistemas de Informação
 (31) 8573-7004
 http://serginhosant.wordpress.com/
 http://www.rccvicosa.com

 ___
 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] NOT NULL

2009-07-30 Por tôpico Dickson S. Guedes
 2009/7/30 sergio santos sergio.serginhos...@gmail.com
 O que tô querendo dizer é que NULL e vazio é diferente. E o que estou
 querendo saber é como colocar uma restrição no banco de dados para ele  
 não
 receber valor vazio.

Em Thu, 30 Jul 2009 10:28:57 -0300, Tiago Adami adam...@gmail.com  
escreveu:
 ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_constraint CHECK (
 nome_do_campo  '' )

Apenas fazendo um adendo pode ser necessário usar o TRIM() para que o  
usuário não insira 'espaços' por exemplo.

[]s
-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://guedesoft.net - http://www.postgresql.org.br
http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] NOT NULL

2009-07-30 Por tôpico sergio santos
Seguinte pessoal,

usando o phpPgAdmin 4.2.1 (PHP 5.2.0-8+etch15) eu fui em:
Restrição e escolhi a opção Adicona checagem Adicona mesmo... rs

e coloquei a restrição usando TRIM

abraços e muito obrigado


2009/7/30 Dickson S. Guedes lis...@guedesoft.net

  2009/7/30 sergio santos sergio.serginhos...@gmail.com
  O que tô querendo dizer é que NULL e vazio é diferente. E o que estou
  querendo saber é como colocar uma restrição no banco de dados para ele
  não
  receber valor vazio.

 Em Thu, 30 Jul 2009 10:28:57 -0300, Tiago Adami adam...@gmail.com
 escreveu:
  ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_constraint CHECK (
  nome_do_campo  '' )

 Apenas fazendo um adendo pode ser necessário usar o TRIM() para que o
 usuário não insira 'espaços' por exemplo.

 []s
 --
 Dickson S. Guedes
 mail/xmpp: gue...@guedesoft.net - skype: guediz
 http://guedesoft.net - http://www.postgresql.org.br
 http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Sérgio Antônio dos Santos
Bacharel em Sistemas de Informação
(31) 8573-7004
http://serginhosant.wordpress.com/
http://www.rccvicosa.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Dúvida em Grant

2009-07-30 Por tôpico Paulo Mendes
Olá, estou com duas dúvidas.

Gostaria primeiramente de saber se é possível dar um grant via command line,
a segunda é saber se a seguinte linha

GRANT ALL ON SCHEMA public TO public;

garante acesso à todos os usuários do banco de dados ao determinado schema,
eu não consegui compreender direito essa linha.

Grato desde já !

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


Re: [pgbr-geral] Dúvida em Grant

2009-07-30 Por tôpico Fabrízio de Royes Mello
2009/7/30 Paulo Mendes paulo.mende...@gmail.com

 Olá, estou com duas dúvidas.

 Gostaria primeiramente de saber se é possível dar um grant via command
 line, a segunda é saber se a seguinte linha

 GRANT ALL ON SCHEMA public TO public;

 garante acesso à todos os usuários do banco de dados ao determinado schema,
 eu não consegui compreender direito essa linha.


Conforme a documentação oficial [1]:

The key word PUBLIC indicates that the privileges are to be granted to all
roles, including those that might be created later. PUBLIC can be thought of
as an implicitly defined group that always includes all roles. Any
particular role will have the sum of privileges granted directly to it,
privileges granted to any role it is presently a member of, and privileges
granted to PUBLIC.

[1] http://www.postgresql.org/docs/8.4/interactive/sql-grant.html

-- 
Fabrízio de Royes Mello
 Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Valores de configuração de Perfo rmance

2009-07-30 Por tôpico Euler Taveira de Oliveira
Tiago Adami escreveu:

*Não* existe número mágico para sintonia de SGBD. Você precisa entender os
parâmetros e conhecer a sua aplicação para adaptar as configurações do
PostgreSQL de acordo com isso.

Sugiro que leia um material em [1] [2] e [3].

 Agora, gostaria de uma validação da comunidade para saber se não estou
 colocando valores muito fora da realidade. E também saber se existe
 alguma outra opção que possa impactar na performance para estes
 hardwares singelos.
 
É difícil saber se está fora sem conhecer a sua aplicação.

 NOTA: nosso ERP é bem dinâmico, rodando em clientes pequenos (de 1 a 4
 clientes simultâneos) até clientes de médio porte (com mais de 60
 clientes simultâneos). Portanto a escolha de outro SGBD está fora de
 questão - como já foi sugerido em outros fóruns.
 
Outro SGBD? Acho que ninguém aqui da lista faria isso. ;) A não ser que você
tenha dezenas de milhares de usuários e centenas de milhões de transações por
dia. ;)

Uma última dica, é homologar e planejar a migração para 8.4. A cada versão
temos melhorado a performance e criado mecanismos para entendermos porque o
PostgreSQL não está entregando uma performance boa.

[1] http://wiki.postgresql.org/wiki/Performance_Optimization
[2] http://www.postgresql.org.br/eventos/pgconbr
[3] http://www.timbira.com/presentations/pgday_df_2009/perf_pg.pdf


-- 
  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


Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Vinicius A. Santos

 Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou
 com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho.

Estranho, eu realizei o teste agora, apenas com a 8.3. Eu fiz uma visão com
o select que eu postei, então fiz o teste no psql com \d nesta visão.
O psql retornou o tipo character varying(20).
Porém o pgAdmin e a aplicação(em Delphi), o reconhecem como character
varying, na mesma base 8.3.

Já resolvemos o problema com o cast, mas queria entender o que houve. 

-- 
View this message in context: 
http://www.nabble.com/Sub-Select-tp24724124p24742292.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.

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


Re: [pgbr-geral] Dúvida em Grant

2009-07-30 Por tôpico Osvaldo Kussama
2009/7/30 Paulo Mendes paulo.mende...@gmail.com:
 Olá, estou com duas dúvidas.

 Gostaria primeiramente de saber se é possível dar um grant via command line,
 a segunda é saber se a seguinte linha

 GRANT ALL ON SCHEMA public TO public;

 garante acesso à todos os usuários do banco de dados ao determinado schema,
 eu não consegui compreender direito essa linha.



O GRANT é um comando SQL [1]. Ele deve ser utilizado a partir de
qualquer cliente, por ex., o psql [2].

Quanto a segunda dúvida, são dois significados diferentes para public:
O primeiro public se refere ao schema. Ele é o schema padrão utilizado
quando não é especificado qualquer schema. Por ex. são equivalentes
public.sua_tabela e sua_tabela. [3]
O segundo public se refere a uma palavra-chave que significa todas as
roles, tanto as existentes quanto as que vierem a ser criadas. [1]

Osvaldo

[1] http://www.postgresql.org/docs/current/interactive/sql-grant.html
[2] http://www.postgresql.org/docs/current/interactive/app-psql.html
[3] 
http://www.postgresql.org/docs/current/interactive/ddl-schemas.html#DDL-SCHEMAS-PUBLIC
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Tiago Adami
Olá, Vinícius.

O seu subselect contém a clásula UNION? Fiz um teste aqui com um banco de
dados interno no 8.3:

  SELECT chamado.titulo FROM chamado UNION SELECT '';

E o resultado no pgAdmin 3 foi character varying. Se eu remover o conteúdo
do union e trazer somente os registros da tabela:

  SELECT chamado.titulo FROM chamado;

Aparece character varying (1000). Não será este o seu problema?


-- 
Tiago J. Adami


2009/7/30 Vinicius A. Santos vinic...@msisolucoes.com.br


  Pela demonstração acima pode-se notar que no 8.2 a tabela temporária
 ficou
  com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho.

 Estranho, eu realizei o teste agora, apenas com a 8.3. Eu fiz uma visão com
 o select que eu postei, então fiz o teste no psql com \d nesta visão.
 O psql retornou o tipo character varying(20).
 Porém o pgAdmin e a aplicação(em Delphi), o reconhecem como character
 varying, na mesma base 8.3.

 Já resolvemos o problema com o cast, mas queria entender o que houve.

 --
 View this message in context:
 http://www.nabble.com/Sub-Select-tp24724124p24742292.html
 Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.

 ___
 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] Dúvida em Grant

2009-07-30 Por tôpico Paulo Mendes
Era exatamente isso que eu queria saber Osvaldo ! Muito Obrigado pela ajuda
!
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Euler Taveira de Oliveira
Vinicius A. Santos escreveu:
 Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou
 com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho.
 
 Estranho, eu realizei o teste agora, apenas com a 8.3. Eu fiz uma visão com
 o select que eu postei, então fiz o teste no psql com \d nesta visão.
 O psql retornou o tipo character varying(20).
 Porém o pgAdmin e a aplicação(em Delphi), o reconhecem como character
 varying, na mesma base 8.3.
 
 Já resolvemos o problema com o cast, mas queria entender o que houve. 
 
Eu não entendi porque o tipo importa mas isso é um problema da aplicação (seja
ela o PGAdmin ou Delphi) pois o PostgreSQL é capaz de retornar o tipo com o
respectivo tamanho (se for o caso). Veja:

template1=# select version();
version

---
 PostgreSQL 8.0.21 on i686-pc-linux-gnu, compiled by GCC i686-pc-linux-gnu-gcc
(GCC) 4.1.2 (Gentoo 4.1.2 p1.1)
(1 registro)

template1=# create table foo (a integer, b varchar(30), c char(10),
template1(# d numeric(5,2));
CREATE TABLE
template1=# \! cat /tmp/x
SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod)
FROM pg_catalog.pg_attribute a
WHERE
  a.attrelid = 'foo'::regclass AND
  a.attnum  0 AND
  NOT a.attisdropped
ORDER BY a.attnum

template1=# \i /tmp/x
 attname |  format_type
-+---
 a   | integer
 b   | character varying(30)
 c   | character(10)
 d   | numeric(5,2)
(4 registros)


-- 
  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


Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Vinicius A. Santos

Aparece character varying (1000). Não será este o seu problema?

Não, o meu select não tem UNION, segue o select:

SELECT
 (select usuario from usuarios where chave=(select autorizadopor from
pedidocompra where pedido=e.pedidocompra)) as quemautorizoucompra
FROM
 entradas e
WHERE
 e.tipoentrada='0' and e.dataoperacao = current_date - 3 
-- 
View this message in context: 
http://www.nabble.com/Sub-Select-tp24724124p24742835.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.

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


Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Vinicius A. Santos
Euler Taveira de Oliveira escreveu:
 Eu não entendi porque o tipo importa mas isso é um problema da 
 aplicação (seja
 ela o PGAdmin ou Delphi) pois o PostgreSQL é capaz de retornar o tipo com o
 respectivo tamanho (se for o caso). Veja:
Na verdade não importa muito(a não ser pelo trabalho de fazer o cast, e 
fazer as adequações no Delphi).
Eu usei o psql diretamente no servidor(Fedora), para fazer a consulta. 
Porém se eu conectar pelo meu terminal WinXP, através do pgAdmin, 
acontece isso, não sei se pode ser a libpq(ou outra DLL), o fato de os 2 
aplicativos não conseguirem retornar corretamente.

-- 
Vinicius A. Santos
www.msisolucoes.com.br

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


[pgbr-geral] duvidas apache.commons.pool

2009-07-30 Por tôpico jorge sanfelice
Prezados,
Em verificacoes de rotina de um determinado server de banco de dados
vi o seguinte:

duração: 0.028 ms  ligação S_1: BEGIN
duration: 0.017 ms  executar S_1: BEGIN
duração: 0.897 ms  análise de unnamed:  SELECT  veioid,veiplaca
FROM veiculo  INNER JOIN login_veiculo ON logvveioid = veioid  WHERE
logvlogoid = 6
duração: 0.137 ms  ligação unnamed:  SELECT  veioid,veiplaca  FROM
veiculo  INNER JOIN login_veiculo ON logvveioid = veioid  WHERE
logvlogoid = 6
duration: 0.182 ms  executar unnamed:  SELECT  veioid,veiplaca  FROM
veiculo  INNER JOIN login_veiculo ON logvveioid = veioid  WHERE
logvlogoid = 6
duração: 0.037 ms  ligação S_2: ROLLBACK
duration: 0.041 ms  executar S_2: ROLLBACK

E nao entendi porque estava fazendo isso, ai perguntei e descobri que
estavam usando pool de conexoes nesse server e que isso era referente
ao pool.

A duvida é se isso pode gerar algum problema de performance
futuramente? Digo isso, porque hoje nesse server a demanda esta baixa
porque ainda esta em testes, mais daqui um mes ira substituir outro
programa de producao.

Resumindo isso que o pool de conexoes faz, pode prejudicar a
performance ou pode me trazer problemas futuros ou nao preciso
esquentar a cabeça que isso é normal?

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


[pgbr-geral] Dúvida com Permissões.

2009-07-30 Por tôpico Paulo Mendes
Olá Lista.

Acabei de perguntar a respeito dos Grants, e consgui entender, mas estou
confuso com uma coisa.

Eu tenho dois schemas no bem banco de dados, historic e public.

pra cada tabela do schema public existe uma correspondente no schema
historic. Em cada tabela do schema public existe um gatilho que
aciona uma função no schema historic que executa uma operação na tabela
correspondente.

Como deve funcionar o grant para que qualquer usuário conectado no banco
consiga executar as funções que estão no schema historic ??

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


Re: [pgbr-geral] Sub-Select

2009-07-30 Por tôpico Euler Taveira de Oliveira
Vinicius A. Santos escreveu:
 Euler Taveira de Oliveira escreveu:
 Eu não entendi porque o tipo importa mas isso é um problema da 
 aplicação (seja
 ela o PGAdmin ou Delphi) pois o PostgreSQL é capaz de retornar o tipo com o
 respectivo tamanho (se for o caso). Veja:
 Na verdade não importa muito(a não ser pelo trabalho de fazer o cast, e 
 fazer as adequações no Delphi).
'Cast' para que? (Desculpe, eu não entendi ainda...)

 Eu usei o psql diretamente no servidor(Fedora), para fazer a consulta. 
 Porém se eu conectar pelo meu terminal WinXP, através do pgAdmin, 
 acontece isso, não sei se pode ser a libpq(ou outra DLL), o fato de os 2 
 aplicativos não conseguirem retornar corretamente.
 
Como eu disse acima, o problema é da aplicação (PGAdmin ou driver utilizado no
Delphi); a libpq *não* tem nada a ver com isso.


-- 
  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


Re: [pgbr-geral] Valores de configuração de Perfo rmance

2009-07-30 Por tôpico Tiago Adami
Obrigado, Euler.

Justamente, o que eu precisava era de uma indicação confiável para bons
materiais para entender estes parâmetros. A aplicação não executa rotinas
muito pesadas, apenas quando há atualização de versão ou é necessário
reprocessar algum tipo de registro (como registros fiscais ou contábeis).

A propósito, não consigo me lembrar direito se existe um aplicativo ou
add-on para o pgAdmin que realize métricas para calcular o valor das
configurações de acordo com o hardware da máquina e o perfil de uso do SGBD
(OLAP, OLTP, desenvolvimento, etc). Alguém tem conhecimento de uma
ferramenta que chegue próximo a isso?

De antemão, vou ler estas documentações com a devida atenção. Mais uma vez,
obrigado.

-- 
Tiago J. Adami
Dois Vizinhos - Paraná - Brasil


2009/7/30 Euler Taveira de Oliveira eu...@timbira.com

 Tiago Adami escreveu:

 *Não* existe número mágico para sintonia de SGBD. Você precisa entender os
 parâmetros e conhecer a sua aplicação para adaptar as configurações do
 PostgreSQL de acordo com isso.

 Sugiro que leia um material em [1] [2] e [3].

  Agora, gostaria de uma validação da comunidade para saber se não estou
  colocando valores muito fora da realidade. E também saber se existe
  alguma outra opção que possa impactar na performance para estes
  hardwares singelos.
 
 É difícil saber se está fora sem conhecer a sua aplicação.

  NOTA: nosso ERP é bem dinâmico, rodando em clientes pequenos (de 1 a 4
  clientes simultâneos) até clientes de médio porte (com mais de 60
  clientes simultâneos). Portanto a escolha de outro SGBD está fora de
  questão - como já foi sugerido em outros fóruns.
 
 Outro SGBD? Acho que ninguém aqui da lista faria isso. ;) A não ser que
 você
 tenha dezenas de milhares de usuários e centenas de milhões de transações
 por
 dia. ;)

 Uma última dica, é homologar e planejar a migração para 8.4. A cada versão
 temos melhorado a performance e criado mecanismos para entendermos porque o
 PostgreSQL não está entregando uma performance boa.

 [1] http://wiki.postgresql.org/wiki/Performance_Optimization
 [2] http://www.postgresql.org.br/eventos/pgconbr
 [3] http://www.timbira.com/presentations/pgday_df_2009/perf_pg.pdf


 --
  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

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


Re: [pgbr-geral] Valores de configuração de Perfor mance

2009-07-30 Por tôpico Marcelo Costa
Olá

2009/7/30 Tiago Adami adam...@gmail.com

 Obrigado, Euler.

 Justamente, o que eu precisava era de uma indicação confiável para bons
 materiais para entender estes parâmetros. A aplicação não executa rotinas
 muito pesadas, apenas quando há atualização de versão ou é necessário
 reprocessar algum tipo de registro (como registros fiscais ou contábeis).

 A propósito, não consigo me lembrar direito se existe um aplicativo ou
 add-on para o pgAdmin que realize métricas para calcular o valor das
 configurações de acordo com o hardware da máquina e o perfil de uso do SGBD
 (OLAP, OLTP, desenvolvimento, etc). Alguém tem conhecimento de uma
 ferramenta que chegue próximo a isso?


Como o Euler frisou, não existe um número mágico, estude a literatura que
foi indicada minuciosamente, e também como sugestão, comece a trabalhar na
migração para a versão 8.4. Há a cada versão, melhorias significativas que
ajudam no ganho de performance com o banco de dados.

Nenhuma aplicação vai te dar o que você precisa mastigadinho como uma
receita de bolo, você deverá fazer várias análises e aplicar o que
considerar adequado ao seu produto.


-- 
Marcelo Costa
www.marcelocosta.net
-
“Os muito poderosos e os muito estúpidos possuem uma coisa em comum. Ao
invés de alterarem as suas visões para se ajustarem aos fatos do mundo, eles
alteram os fatos para ajustá-los às suas visões.”,

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


Re: [pgbr-geral] Valores de configuração de Perfo rmance

2009-07-30 Por tôpico Euler Taveira de Oliveira
Tiago Adami escreveu:
 A propósito, não consigo me lembrar direito se existe um aplicativo ou
 add-on para o pgAdmin que realize métricas para calcular o valor das
 configurações de acordo com o hardware da máquina e o perfil de uso do
 SGBD (OLAP, OLTP, desenvolvimento, etc). Alguém tem conhecimento de uma
 ferramenta que chegue próximo a isso?
 
pgtune [1]. Vale ressaltar que ela *não* faz nenhum tipo de análise dos seus
dados e muito menos das estatísticas do seu banco de dados. A idéia dele é
justamente montar um postgresql.conf inicial.


[1] http://pgfoundry.org/projects/pgtune/


-- 
  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


[pgbr-geral] Ajuda select

2009-07-30 Por tôpico fabio . ebner
Pessoal.. preciso do seguinte:

eu tenho uma tabela de selos, que vai de 0 ate x.. alguns selos podem estar 
danificados.. entao eu faco o seguinte select SELECT * FROM tb_selo WHERE 
ic_selo_danificado  = fase;

perfeito.. porem nesse caso ele me traz um selo por linha.. exemplo:
0
1
2
3
 ** o 4 esta danificado logo nao retorna
5
6
7
8
9
10
11
12


porem eu queria q no meu select retornasse algo assim

0..3
5..12

entenderam?? que ele agrupasse do primeiro ate aonde tiver o prox..

existe alguma coisa facil para fazer isso ou tenho q fazer um function??


valkeu




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


[pgbr-geral] Como mover /var/lib/postgres para nova par tição

2009-07-30 Por tôpico Welington R. Braga
Salve todos,

Tenho um servidor postgres rodando virtualizado em uma domu pelo Xen, mas
quando esta domu foi criada eu criei uma partição / com apenas 10GB que é o
tamanho padrão adotado por aqui. Atualmente minha base está ocupando quase
toda esta partição e estou a beira de um colapso no servidor por falta de
espaço.

Como o server é virtualizado minha intenção é criar um novo disco virtual
com o dimensionamento adequado e após copiar o conteúdo de /var/lib/postgres
montar o novo volume sobre este diretório.

Minha preocupação é exatamente quanto a esta cópia dos dados. Posso
simplesmente parar o postgres e fazer uma cópia deste diretório com o
comando cp, ou há alguma surpresa a mais que devo esperar?


[]s
-- 
Welington Rodrigues Braga
--
Web: http://www.welrbraga.eti.br
MSN: welrbraga[*]msn·com
Gtalk: welrbraga[*]gmail·com
Yahoo / Skype:  welrbraga
PGP Key: 0x6C7654EB
Linux User #253605

Em tudo somos atribulados, porém não angustiados; perplexos, porém não
desanimados; perseguidos, porém não desamparados; abatidos, porém não
destruídos; - 2Co 4:8,9
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Resposta Automática de Ausência

2009-07-30 Por tôpico renatojsm824
Dear friend:
       Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store.
(such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。
 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB    Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG    Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB    Member Price: 165 EUR     Please to visit our homepage:w w w . modernflagship.c  o  m。
Kind Regards___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda select

2009-07-30 Por tôpico Osvaldo Kussama
2009/7/30 fabio.ebner fabio.eb...@dnasolution.com.br:
 Pessoal.. preciso do seguinte:

 eu tenho uma tabela de selos, que vai de 0 ate x.. alguns selos podem estar 
 danificados.. entao eu faco o seguinte select SELECT * FROM tb_selo WHERE 
 ic_selo_danificado  = fase;

 perfeito.. porem nesse caso ele me traz um selo por linha.. exemplo:
 0
 1
 2
 3
  ** o 4 esta danificado logo nao retorna
 5
 6
 7
 8
 9
 10
 11
 12


 porem eu queria q no meu select retornasse algo assim

 0..3
 5..12

 entenderam?? que ele agrupasse do primeiro ate aonde tiver o prox..

 existe alguma coisa facil para fazer isso ou tenho q fazer um function??



Modifiquei um pouco os dados para testar as condições de contorno. Tente:

bdteste=# CREATE TEMP TABLE tb_selo(
bdteste(#   num  int  PRIMARY KEY,
bdteste(#   danificado boolean);
NOTA:  CREATE TABLE / PRIMARY KEY criará índice implícito
tb_selo_pkey na tabela tb_selo
CREATE TABLE
bdteste=#
bdteste=# INSERT INTO tb_selo VALUES
(0,FALSE),(1,TRUE),(2,FALSE),(3,FALSE),(4,TRUE),(5,FALSE),(6,FALSE),(7,FALSE),(8,FALSE),(9,FALSE),(10,FALSE),(11,FALSE),(12,FALSE),(13,TRUE),(14,FALSE);
INSERT 0 15
bdteste=#
bdteste=# SELECT * FROM tb_selo;
 num | danificado
-+
   0 | f
   1 | t
   2 | f
   3 | f
   4 | t
   5 | f
   6 | f
   7 | f
   8 | f
   9 | f
  10 | f
  11 | f
  12 | f
  13 | t
  14 | f
(15 registros)

bdteste=# SELECT t1.num AS incio, t2.num AS fim
bdteste-#   FROM tb_selo t1 INNER JOIN tb_selo t2
bdteste-#   ON (t1.num = t2.num)
bdteste-#  WHERE NOT EXISTS (SELECT * FROM tb_selo t3
bdteste(# WHERE (t3.num BETWEEN t1.num AND t2.num
AND t3.danificado = TRUE)
bdteste(#OR (t3.num = t2.num + 1 AND
t3.danificado = FALSE)
bdteste(#OR (t3.num = t1.num - 1 AND
t3.danificado = FALSE));
 incio | fim
---+-
 0 |   0
 2 |   3
 5 |  12
14 |  14
(4 registros)

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


[pgbr-geral] Resposta Automática de Ausência

2009-07-30 Por tôpico renatojsm824
Dear friend:
       Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store.
(such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。
 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB    Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG    Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB    Member Price: 165 EUR     Please to visit our homepage:w w w . modernflagship.c  o  m。
Kind Regards___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda em SQL 2

2009-07-30 Por tôpico Tiago Adami
Seguindo o raciocínio do nobre colega Fábio Ebner, tenho um problema que não
consegui resolver de forma que não degrade a performance...

Tenho uma tabela com 11 milhões de registros. Existe um campo que é um
contador numérico, e é uma AK da tabela (contador de transação). Pois bem...
eu gostaria de um SELECT que retornasse apenas os números que não estão
nesta tabela em um intervalo de 1 a 11.000.000 (que é o total de registros).
Se eu delimitasse o máximo até 10, seria assim:
[Registros na tabela]
1
2
   3 -- não existe
4
5
6
8
   7 -- não existe
9
10
(...)

Até 10, os números que o select deveria retornar são:
[Registros que não estão na tabela]
3
7

Hoje eu uso um trigger que alimenta uma tabela auxiliar cada vez que um
registro é eliminado. Isto é rápido, mas gostaria de saber se existe uma
forma de criar uma função ou algo parecido que não use trigger e não seja
muito demorado (considerando 11 milhões de registros).

Desculpem a impertinência, mas alguém tem alguma sugestão melhor?

-- 
Tiago J. Adami
Dois Vizinhos - Paraná - Brasil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Resposta Automática de Ausência

2009-07-30 Por tôpico renatojsm824
Dear friend:
       Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store.
(such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。
 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB    Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG    Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB    Member Price: 165 EUR     Please to visit our homepage:w w w . modernflagship.c  o  m。
Kind Regards___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ajuda em SQL 2

2009-07-30 Por tôpico Osvaldo Kussama
2009/7/30 Tiago Adami adam...@gmail.com:
 Seguindo o raciocínio do nobre colega Fábio Ebner, tenho um problema que não
 consegui resolver de forma que não degrade a performance...

 Tenho uma tabela com 11 milhões de registros. Existe um campo que é um
 contador numérico, e é uma AK da tabela (contador de transação). Pois bem...
 eu gostaria de um SELECT que retornasse apenas os números que não estão
 nesta tabela em um intervalo de 1 a 11.000.000 (que é o total de registros).
 Se eu delimitasse o máximo até 10, seria assim:
 [Registros na tabela]
 1
 2
    3 -- não existe
 4
 5
 6
 8
    7 -- não existe
 9
 10
 (...)

 Até 10, os números que o select deveria retornar são:
 [Registros que não estão na tabela]
 3
 7

 Hoje eu uso um trigger que alimenta uma tabela auxiliar cada vez que um
 registro é eliminado. Isto é rápido, mas gostaria de saber se existe uma
 forma de criar uma função ou algo parecido que não use trigger e não seja
 muito demorado (considerando 11 milhões de registros).

 Desculpem a impertinência, mas alguém tem alguma sugestão melhor?



bdteste=# CREATE TEMP TABLE foo(num int);
CREATE TABLE
bdteste=# INSERT INTO foo VALUES (1),(2),(4),(5),(6),(8),(9),(10);
INSERT 0 8

bdteste=# SELECT x FROM (SELECT generate_series(1,10)) AS f(x) LEFT
OUTER JOIN foo ON (f.x = num) WHERE num IS NULL;
 x
---
 3
 7
(2 registros)

ou ainda:

bdteste=# SELECT generate_series(1,10) EXCEPT SELECT num FROM foo;
 generate_series
-
   3
   7
(2 registros)

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


[pgbr-geral] Calculo de horas na query de auditoria

2009-07-30 Por tôpico emerson hermann
Ola Lista!

Tenho que auditar uma base de dados, e estou com o seguinte problema:

Como fazer uma query para  o calculo (diferença entre entrada e saida
do usuario)   data e hora de entrada e de saida do usuario no sistema
conforme modelagem abaixo?

Desenvolver uma Store Procedure seria a melhor solucao ?

Segue estrutura exemplo da base de dados, abaixo:

-- Versao do PostgreSQL
SELECT VERSION();
 PostgreSQL 8.3.0 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2

-- Estrutura da Tabela

tb_log_acessos  
id_acesso   integer not null default
nextval('tb_log_acessos_id_acesso_seq'::regclass)
fk_usuario  integer 
login   character varying(77)   not null
fk_cliente  integer 
datatimestamp without time zone default now()
tipocharacter(1)

Índices:
tb_log_acessos_pkey PRIMARY KEY, btree (id_acesso)
Restrições de verificação:
define_entrada_saida CHECK (tipo = ANY (ARRAY['E'::bpchar, 'S'::bpchar]))
Restrições de chave estrangeira:
tb_log_acessos_fk_cliente_fkey FOREIGN KEY (fk_cliente)
REFERENCES tb_clientes(id_cliente) ON DELETE RESTRICT
tb_log_acessos_fk_usuario_fkey FOREIGN KEY (fk_usuario)
REFERENCES tb_usuarios(id_usuario) ON DELETE SET NULL

-- listagem dos dados
SELECT *
   FROM tb_log_acessos;

id_acesso | fk_usuario | login | fk_cliente | data | tipo
10312   1   bug 1   01/06/2007 03:29:28  E
10315   1   bug 1   01/06/2007 03:31:32  S
74929   1   bug 1   01/10/2007 02:59:02  E
74930   1   bug 1   01/10/2007 02:59:35  S
40171   1   bug 1   02/08/2007 10:44:37  E
40172   1   bug 1   02/08/2007 10:48:09  S
24340   1   bug 1   03/07/2007 03:30:01  E
24344   1   bug 1   03/07/2007 03:32:44  S
24345   1   bug 1   03/07/2007 03:33:06  E

Cordialmente,

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


[pgbr-geral] Resposta Automática de Ausência

2009-07-30 Por tôpico renatojsm824
Dear friend:
       Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store.
(such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。
 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB    Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG    Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB    Member Price: 165 EUR     Please to visit our homepage:w w w . modernflagship.c  o  m。
Kind Regards___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Calculo de horas na query de auditoria

2009-07-30 Por tôpico Osvaldo Kussama
2009/7/30 emerson hermann emersonherm...@gmail.com:
 Ola Lista!

 Tenho que auditar uma base de dados, e estou com o seguinte problema:

 Como fazer uma query para  o calculo (diferença entre entrada e saida
 do usuario)   data e hora de entrada e de saida do usuario no sistema
 conforme modelagem abaixo?

 Desenvolver uma Store Procedure seria a melhor solucao ?

 Segue estrutura exemplo da base de dados, abaixo:

 -- Versao do PostgreSQL
 SELECT VERSION();
  PostgreSQL 8.3.0 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2

 -- Estrutura da Tabela

 tb_log_acessos
 id_acesso       integer                 not null default
 nextval('tb_log_acessos_id_acesso_seq'::regclass)
 fk_usuario      integer
 login   character varying(77)   not null
 fk_cliente      integer
 data    timestamp without time zone     default now()
 tipo    character(1)

 Índices:
    tb_log_acessos_pkey PRIMARY KEY, btree (id_acesso)
 Restrições de verificação:
    define_entrada_saida CHECK (tipo = ANY (ARRAY['E'::bpchar, 'S'::bpchar]))
 Restrições de chave estrangeira:
    tb_log_acessos_fk_cliente_fkey FOREIGN KEY (fk_cliente)
 REFERENCES tb_clientes(id_cliente) ON DELETE RESTRICT
    tb_log_acessos_fk_usuario_fkey FOREIGN KEY (fk_usuario)
 REFERENCES tb_usuarios(id_usuario) ON DELETE SET NULL

 -- listagem dos dados
 SELECT *
   FROM tb_log_acessos;

 id_acesso | fk_usuario | login | fk_cliente | data | tipo
 10312   1       bug     1       01/06/2007 03:29:28      E
 10315   1       bug     1       01/06/2007 03:31:32      S
 74929   1       bug     1       01/10/2007 02:59:02      E
 74930   1       bug     1       01/10/2007 02:59:35      S
 40171   1       bug     1       02/08/2007 10:44:37      E
 40172   1       bug     1       02/08/2007 10:48:09      S
 24340   1       bug     1       03/07/2007 03:30:01      E
 24344   1       bug     1       03/07/2007 03:32:44      S
 24345   1       bug     1       03/07/2007 03:33:06      E



Talvez algo do tipo:
SELECT *,age(la2.data,la1.data)
  FROM tb_log_acessos la1 JOIN tb_log_acessos la2
   ON (la1.fk_usuario = la2.fk_usuario)
 WHERE la1.tipo = 'E' AND la2.tipo = 'S'
   AND la1.data = (SELECT max(la3.data) FROM tb_log_acessos la3
WHERE la3.data  la2.data AND la3.tipo = 'E');

Pelos dados apresentados não foi possível depreender quais atributos
usar no critério da junção.

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


[pgbr-geral] Resposta Automática de Ausência

2009-07-30 Por tôpico renatojsm824
Dear friend:
       Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store.
(such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。
 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB    Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG    Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB    Member Price: 165 EUR     Please to visit our homepage:w w w . modernflagship.c  o  m。
Kind Regards___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Oracle com postgre

2009-07-30 Por tôpico Osvaldo Kussama
2009/7/30 menkauren menkau...@gmail.com:
 Boa noite.
 Alguem sabe como conectar o Postgre no Oracle, quero que os dados de algumas
 tabelas no oracle possam ser vistos e atualizados dentro do postgre, como se
 fosse uma tabela dinamica, tem como fazer isso??



DBI-Link.
http://pgfoundry.org/projects/dbi-link/

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