[pgbr-geral] Canal #postgresql-br no IRC do Freenode

2007-12-10 Por tôpico Alexsander Rosa
Vi um slide, lá no PG Con, divulgando as listas e o canal de IRC.
O slide do IRC passou muito rápido, nem deu pra ver direito...
Se não me engano, havia um erro de digitação: estava irc.freenodeS.net !
O correto é irc.freenode.net (sem S) e os canais são:

#postgresql (em inglês)
#postgresql-br (em português)

Eu uso o nick rednaxel e costumo freqüentar os dois canais.

-- 
Atenciosamente,

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


Re: [pgbr-geral] FISL 9.0 - Inscrições quase enc erradas

2007-12-11 Por tôpico Alexsander Rosa
Fui convencido por nosso amigo David Fetter a enviar uma proposta falando
sobre o sistema de replicação de emergência que desenvolvi, sobre o qual
conversamos. Ele funciona via linha discada e via GPRS (celular), para
aqueles momentos não tão raros onde a rede cai e os dados precisam fluir
(mesmo com algum delay).

O mecanismo é o seguinte: o programa tem duas fases, envio e recebimento.
Primeiro ele pega um conjunto de comandos a ser replicados de A para B
(chamado de pacote), compacta e gera um md5. Os dois arquivos (.gz e .md5)
são enviados via FTP para um servidor web, numa conta com acesso apenas a
uma pasta. Os pacotes são numerados seqüencialmente. Na segunda fase, ele
busca via HTTP num servidor web (pode ser o mesmo) o próximo pacote de B
para A; se ele conseguir baixar e o md5 estiver OK, ele aplica os comandos
gerados por B no servidor A.

As vantagens desse sistema são que ele não requer VPN (nem sempre
disponível) nem qualquer configuração especial de rotas, pode ser ativado em
poucos minutos e maximiza o uso da banda estreita. Em geral se configura no
cron um intervalo de 5 minutos entre os pacotes.

Em 11/12/07, Fernando Ike [EMAIL PROTECTED] escreveu:

 Salve galera,

Desculpem o cross-posting, vocês entenderam o porque. Ainda estou
 escrevendo sobre o que foi evento na minha opinião mas acho que está
 ficando grande. Como nosso entusiasmo permanece, essa semana é a última
 semana para
 inscrever palestras para o FISL 9.0[1], como também o evento
 comunitário[2] no FISL.

O evento comunitário é um momento especial do FISL que os Grupo de
 Usuários podem debater, discutir, fazer festa de caça aos bugs, etc.
 Enfim atividades do grupo de usuários durante o evento. Normalmente no
 Grupo de Usuários Debian Brasil nós fazemos uma plenária com as
 novidades do projeto, balanço de atividades e como organizar melhor o
 grupo de discussão. Isso é importante e no FISL 8.0 (2007) também
 fizemos isso e foi muito bom, ao menos na minha avaliação. :)

Neste ano (2007) tivemos um estande patrocinado por empresas que
 ajudam o pg-br e creio que teremos para o FISL 9.0 mas essa parte
 precisamos começar a organizar desde já.

O prazo final para enviar uma proposta de palestra é dia 15 de
 dezembro como também do evento comunitário. Convido todos que enviaram
 palestra para o pgcon-br também enviem proposta de palestra para o
 FISL e quem tem vontade de falar algo sobre PostgreSQL faça, encaminhe
 uma proposta para o FISL e avise na lista pgbr-dev que eu coloco no wiki
 do pgbr. Assim ninguém terá que aturar-me no palco falando besteiras de
 tuning em PostgreSQL no palco. =)


 Referências:
 1 - http://www.softwarelivre.org/news/10292
 2 - http://www.softwarelivre.org/news/10477


 meus dois centavos,
 --
 Fernando Ike
 http://www.midstorm.org/~fike/weblog
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

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


Re: [pgbr-geral] 25gb de imagem, isso presta?

2007-12-14 Por tôpico Alexsander Rosa
Conforme comentei no PG Con, eu armazeno apenas o PATH. Na verdade são
imagens de produtos e nem sequer há um campo pra PATH em cada imagem, mas
sim por servidor; o nome das imagens sempre é o código adicionado à extensão
.jpg e o sistema monta o PATH sozinho. Por exemplo, no servidor PG em
10.10.0.2 o campo PATH é imagens, o servidor de imagens é 10.10.0.4. O
PATH da imagem do produto 1234 fica http://10.10.0.4/imagens/1234.jpg; com
tudo em minúsculas.

Isso permite que o servidor das imagens seja independente do servidor do BD.
Além disso, outras pessoas (pessoal do marketing, compras, etc) podem
colocar as imagens no diretório correspondente (do Apache) de forma
transparente para o DBA. Na hora de exibir uma imagem, se o arquivo não for
encontrado no servidor web é exibida a mensagem Sem imagem.

Em 14/12/07, Roberto Baselio Lopes [EMAIL PROTECTED] escreveu:

 Em 14/12/07, Leandro Damascena [EMAIL PROTECTED]
 escreveu:
 
  Paulo Saimon Ramos escreveu:
   sim, vai dar certo se sua itenção é destruir tua rede, micro e banco
   de dados.
   Que pergunta mais estúpida.
  
  ACHO que para o bem geral podemos discordar de pensamentos/idéias do
  próximo de uma forma mais produtiva (... educada ...)  e manter o foco
  na solução/dúvida/idéia... :-D
 
  Leandro Damascena.
  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
 

 Leandro, como ja dito anteriormente, eu recomendo salvar o caminho do
 arquivo no banco, geralmente salvar arquivos costuma se desencorajado pela
 maioria dos DBA's, mas é claro que sempre há exceções. Num ambiente Cliente
 windows e servidor Linux por exemplo, não tenho idéia se isso é possivel.

 --
 Roberto Baselio Lopes
 e-mail / Google Talk: [EMAIL PROTECTED]
 msn: [EMAIL PROTECTED]
 Curriculo: http://www2.curriculum.com.br/ucn/rbaselio
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] 25gb de imagem, isso presta?

2007-12-14 Por tôpico Alexsander Rosa
O legal da modelagem que usei é que no BD tudo são strings e o usuário e/ou
o sysadmin podem colocar o conteúdo que quiserem nos campos, seja na forma
de IP, seja na forma de um dns alias... para o DBA e para o programador isso
tudo é transparente. :-)

Em 14/12/07, Leandro DUTRA [EMAIL PROTECTED] escreveu:

 2007/12/14, Alexsander Rosa [EMAIL PROTECTED]:
  Por exemplo, no servidor PG em
  10.10.0.2 o campo PATH é imagens, o servidor de imagens é 10.10.0.4.
 O
  PATH da imagem do produto 1234 fica 
  http://10.10.0.4/imagens/1234.jpg; com tudo em minúsculas.

 Nota aos incautos: o uso de IP pode causar danos à saúde.

 A recomendação é nunca usar endereços IP, mas um apelido DNS
 designando um serviço, apontando para o nome do hospedeiro.

 --
 +55 (11) 5685 2219   xmpp:[EMAIL PROTECTED]
 +55 (11) 9406 7191  Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300  ICQ/AIM: aim:GoIM?screenname=61287803
 MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] 25gb de imagem, isso presta?

2007-12-15 Por tôpico Alexsander Rosa
Eu entendi perfeitamente a colocação do Leandro... o que eu falei é que o
meu campo é texto e o usuário e/ou sysadmin que decidiram colocar o número
IP ao invés de um DNS alias. Não fui EU quem colocou IP nem seria EU que
poderia evitar isso, a menos que fizesse algum tipo de parsing na string
informada. Posso, claro, SUGERIR que eles corrijam isso criando um DNS alias
e mostrando em que parte da GUI isso é configurado na aplicação.

Em 15/12/07, Leandro Damascena [EMAIL PROTECTED] escreveu:

 Alexsander Rosa escreveu:
  O legal da modelagem que usei é que no BD tudo são strings e o usuário
  e/ou o sysadmin podem colocar o conteúdo que quiserem nos campos, seja
  na forma de IP, seja na forma de um dns alias... para o DBA e para o
  programador isso tudo é transparente. :-)
 
 Mas o que o Leandro Dutra pediu cuidado não foi com a modelagem e sim
 pelo fato de você colocar IP no PATH e não nome (DNS), amanhã a máquina
 que mora esses arquivos precisar trocar o IP e lá vai você correr
 atrás para dar UPDATE nesses registros para garantir o funcionamento da
 aplicação... Problema esse que você poderia ter evitado criando uma
 entrada no DNS ou uma tabelinha de alias para IP-NOME...

 E te falar, já vi isso acontecer e foi um desespero para atualizar todos
 os registros e não comprometer a aplicação...

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Planos de Hospedagem com PostgreSQL

2007-12-15 Por tôpico Alexsander Rosa
Eu uso a Tehospedo há anos, eles têm PostgreSQL 8.1.x:
http://www.tehospedo.com.br

PS: Se contratar, diz que eu indiquei ... :-)

Em 15/12/07, Sergio Medeiros Santi [EMAIL PROTECTED] escreveu:

  Pessoal:

 Fiquei preocupado! A alguns dias estou procurando por hopedagens que
 incluam o Postgres. Olhei a Locaweb, a Dialhost e a IGempresas. Sabem qual é
 o problema?  A Locaweb ainda não consegui descobrir e as outras duas,
 pasmem, oferecem a moderníssima 7.4. Bem não é de admirar que muitas só
 ofereçam PHP 4.

 Alguém pode me sugerir algum outro? Devo preferir os brasileiros ou isto
 não é relevante?

 Abraços,

  Sergio Medeiros Santi



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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] check foreign key

2007-12-18 Por tôpico Alexsander Rosa
Pode-se postergar a checagem de chaves:
http://www.postgresql.org/docs/current/static/sql-set-constraints.html

BEGIN;

SET CONSTRAINTS ALL DEFERRED;

INSERT INTO  ...
...

COMMIT;


Mas isso não *desliga* a checagem, apenas posterga (deixa para o final).
Quando o COMMIT for executado as constraints serão todas checadas. Há casos
raros onde dois registros em duas tabelas diferentes se referenciam
mutuamente com chaves estrangeiras não-nulas -- não me perguntem, mas já vi
isso :-). Nesse caso, um INSERT em uma requer um INSERT na outra mas ambos
falham por causa das chaves estrangeiras. Com esse comando pode-se fazer os
dois INSERTS numa transação. Para permitir futuramente que se use o comando
acima, as constraints em questão precisam ser declaradas como DEFERRABLE
(ver documentação).

Não sei se isso resolve o problema do Junior Prado...

Em 18/12/07, Euler Taveira de Oliveira [EMAIL PROTECTED] escreveu:

 junior Prado wrote:

  Como desligar e ligar a checagem de chaves estrangeiras?
 
  check foreign key = 0; //está certo?
 
 Não existe tal comando no PostgreSQL. Para desabilitar verificação de
 chaves estrangeira somente removendo-as e depois recriando-as.
 Certifique-se que não manipulará os dados entre estas duas etapas pois
 você poderá não conseguir recriar as chaves estrangeiras.

 ALTER TABLE foo DROP CONSTRAINT bar_col_fkey;


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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Alexsander Rosa
Disclaimer: Eu sei que muita gente odeia mapeamentos e geradores de código.
:-)

Normalmente se fala em Mapeamento Objeto-Relacional, que a grosso modo
consiste em pegar um modelo O-O (modelado talvez em UML) e gerar um modelo
E-R. A modelagem é feita pensando em objetos e quem modela a camada de
persistência que se vire depois pra encaixar tudo numa DDL.

A idéia é fazer o caminho inverso: fazer o modelo de dados PRIMEIRO e depois
gerar um conjunto de classes. Cada tabela vira uma classe, cada tupla vira
uma instância, cada coluna vira uma propriedade. O objetivo é facilitar a
vida do programador para algumas tarefas simples e repetitivas: carregar um
objeto por sua(s) PK e depois atualizar ou deletar este objeto, por exemplo.
Os SELECT mais complexos continuam sendo feitos em SQL, as VIEWs continuam
sendo usadas normalmente. Não seria uma O-O de verdade, mas apenas um
wrapper para simplificar as tarefas.

O grande problema das camadas de persistência é que nunca se sabe a
qualidade do SQL gerado e é relativamente fácil para o programador usar
alguma classe de forma a gerar SQL ruim (ou mesmo péssimo). No entanto, a
maioria dos SQL usados pelas telas de cadastro em uma aplicação comercial
são simples. Nesses casos, um SELECT campos FROM cliente WHERE codigo =
1234 pode ser gerado automaticamente de maneira eficiente. Da mesma forma,
um UPDATE cliente SET nome = 'Zeca' WHERE codigo = 1234 ou um DELETE FROM
cliente WHERE codigo = 1234 podem ser gerados automaticamente sem
problemas.

Escrevi em 2003 uma OPF e um Gerador de Código que faz exatamente isso para
Delphi e FPC. Até agora, as vantagens têm superado as desvantagens com
folga... :-) O programador não perde tempo com os SQL triviais (que acabam
sendo em grande volume), podendo dedicar mais atenção aos códigos SQL e
PL/pgSQL realmente importantes, mais diretamente relacionados com as regras
do negócio.

-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Mapeamento Relacional-Objeto

2007-12-19 Por tôpico Alexsander Rosa
O meu caso é o mesmo do Evandro, com algumas diferenças. A empresa de
software é minha, o software pertence à nossa empresa, mas temos um contrato
com o cliente piloto que restringe um pouco a liberação do código. Eles
exigiram uma cláusula que nos proíbe de fornecer o software para
concorrentes deles, e isso impede o uso de uma licença open source (pois um
concorrente poderia baixar o código). No entanto nos próximos meses temos
uma renovação contratual e vou separar restrição apenas para a aplicação,
liberando o Framework de persistência.

Em 19/12/07, Leandro DUTRA [EMAIL PROTECTED] escreveu:

 2007/12/19, Alexsander Rosa [EMAIL PROTECTED]:
  Escrevi em 2003 uma OPF e um Gerador de Código que faz exatamente isso
 para
  Delphi e FPC. Até agora, as vantagens têm superado as desvantagens com
  folga... :-) O programador não perde tempo com os SQL triviais (que
 acabam
  sendo em grande volume), podendo dedicar mais atenção aos códigos SQL e
  PL/pgSQL realmente importantes, mais diretamente relacionados com as
 regras
  do negócio.

 Que tal botar no pgFoundry, SourceForge, Savannah ou coisa assim?

 --
 +55 (11) 5685 2219   xmpp:[EMAIL PROTECTED]
 +55 (11) 9406 7191  Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300  ICQ/AIM: aim:GoIM?screenname=61287803
 MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ALTER TABLE

2007-12-20 Por tôpico Alexsander Rosa
Está dizendo que a coluna is_motor_id não existe na tabela t_veiculo.

2007/12/20, Geion Correia [EMAIL PROTECTED]:

 Caros,

 Eu preciso adicionar uma chave estrangeira (is_motor_id) a uma
 tabela (t_veiculo) só que estou tendo dificuldade:

 ALTER TABLE t_veiculo ADD CONSTRAINT fk_is_motor_id
 FOREIGN KEY (is_motor_id) REFERENCES t_veiculo(t_motor) MATCH FULL;

 ERROR: column is_motor_id referenced in foreign key constraint does not
 exist


 O que estou fazendo de errado?


 Obrigado.




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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retornar erros em Portugues

2007-12-21 Por tôpico Alexsander Rosa
Veja no final do postgresql.conf onde configurar isso.

Em 21/12/07, Saulo [EMAIL PROTECTED] escreveu:

  Bom dia pessoal. O PG tem suporte para retornar erros  para o usuário de
 consultas, autenticação, etc em português?

 Se não, alguém poderia me dar uma dica de como vc´s fazem?

 Obrigado

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Replicação Multi-Master Assíncr ona

2007-12-27 Por tôpico Alexsander Rosa
Estava conversando no IRC [1] com o DiogoB sobre Replicação Multi-Master
Assíncrona, mais especificamente sobre o replicador que escrevi para uso com
linha discada em casos de queda da banda larga -- o mesmo sobre o qual
submeti uma palestra ao FISL 9. O código ainda não é aberto, por motivos
contratuais, mas espero mudar isso em um ou dois meses. Achei que seria
interessante colocar aqui um trecho do log de um dia em que a ADSL de uma
das filiais [2] caiu (e ficou desligada por alguns dias). Eis o log:

Wed Dec 12 09:00:01 2007 [21242]: /--- INICIANDO rnx_synchro2 v2.0.028 ...
Wed Dec 12 09:00:01 2007 [21242]: ENVIANDO   5: pacote 1579 com 258
comandos (37747841 a 37748098)
Wed Dec 12 09:00:02 2007 [21242]: ENVIANDO   5: Transferencia de
P001-005-001579.sql.gz para ftp.servidor.com deu OK
Wed Dec 12 09:00:02 2007 [21242]: Finalizado com 0 erros (59.00 KB/s).
Proximo comando: 37748099
Wed Dec 12 09:00:02 2007 [21242]: BUSCANDO   5: pacote P005-001-000763
de http://www.servidor.com/pacotes/
Wed Dec 12 09:00:02 2007 [21242]: BUSCANDO   5: iniciando processamento...
Wed Dec 12 09:00:02 2007 [21242]: BUSCANDO   5: carregando pacote
P005-001-000763.sql com 170 comandos (1687715 a 1687886)
Wed Dec 12 09:00:05 2007 [21242]: BUSCANDO   5: pacote P005-001-000763
processado com 0 erros.
Wed Dec 12 09:00:05 2007 [21242]: BUSCANDO   5: pacote P005-001-000763
gravado no BD local.
Wed Dec 12 09:00:05 2007 [21242]: \--- FINALIZANDO

Neste log, a loja código 1 é a matriz e a código 5 é a loja cuja ADSL caiu.
O sistema primeiro montou um pacote 001-005 (matriz - filial) com 258
comandos (que foram gerados no intervalo entre dois pacotes sucessivos),
gerou um arquivo SQL e depois fez um gzip e um md5. A seguir ele verificou
se havia pacotes pendentes vindos da filial, e baixou o pacote 005-001 (com
170 comandos). Depois de baixar o pacote, o sistema compara o md5 e
processa o pacote, gravando os comandos no BD da matriz.

[1] irc://chat.freenode.net/postgresql-br
[2] Filial do cliente onde o replicador está instalado.

-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Problemas com campo char

2008-01-07 Por tôpico Alexsander Rosa
Eu já tive problemas com NOT NULL e DEFAULT juntos. O NOT NULL não aceita
NULL, mas o DEFAULT coloca um valor quando o campo é NULL -- no fim, eu
tenho usado o DEFAULT sem NOT NULL, até porque faz mais sentido.

Em 07/01/08, Pierre Sandora [EMAIL PROTECTED] escreveu:

 Ela passaria para 'S' através da aplicação, quando uma rotina de leitura
 de log tivesse analisado o registro. Eu pensei no inicio que fosse um
 problema de lógica na aplicação, só que este 'S' misterioso aparece em
 INSERTs feitos através do PgAdmin também. E sobre este DEFAULT, eu
 inicialmente omitia o campo para usar o valor default, depois que este
 problema começou daí passei a usar explicitamente o 'N', mas não funcionou.

 On Jan 7, 2008 4:34 PM, José Mello Júnior [EMAIL PROTECTED]
 wrote:

  Experimenta colocar o INSERT assim:
 
 INSERT INTO agd.clcaulg (nr_cau,nr_prospecto,dt_inicio
  ,dt_final,id_ativo,id_retificado,id_cancelado,nr_cltxtcau,preco,id_sacado,nr_usado)
  VALUES ( OLD.nr_cau,OLD.nr_prospecto,OLD.dt_inicio,
  OLD.dt_final,OLD.id_ativo,OLD.id_retificado,
  OLD.id_cancelado,OLD.nr_cltxtcau,OLD.preco,OLD.id_sacado,DEFAULT);
 
  Muito embora da forma como estava não deveria aparecer outra informação
  que não aquela que comandou a gravação. QUando esta informação passaria para
  a situação 'S' ?
 
  --
  José de Mello Júnior
  41.9957-2007
  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
 
 


 --
 Pierre Sandora
 Cel.: (11) 8596-4670
 MSN: [EMAIL PROTECTED]
 E-mail: [EMAIL PROTECTED]
 Site: http://www.pierresandora.eti.br/

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] [OT] Função de DBA

2008-01-25 Por tôpico Alexsander Rosa
É muito antiga, mesmo. Ainda no final dos anos 80 eu briguei com um monte de
gente por causa dela, até arrumei confusão da SBC porque disse que a
profissão só seria regulamentada quando os dirigentes da época (formados em
diversas áreas, nenhum da Computação) se aposentassem ou morressem.

Faltava massa crítica na época, éramos um punhado de alunos mais um punhado
de graduados. Existe toda uma filosofia da SBC por trás, um exemplo é o
texto da justificativa da defesa do PL 1561 (que inviabiliza a
regulamentação):

http://homepages.dcc.ufmg.br/~bigonha/Sbc/pl1561-justifica.html

Escrevi em 2005 um texto criticando esse PL:
http://alexrosa.blogspot.com/2005/08/crtica-ao-pl-156103.html

Em 25/01/08, Benedito A. Cruz [EMAIL PROTECTED] escreveu:





 Essa regulamentação da profissão de informata é uma briga antiga.
 Não aconteceu porque a SBC nunca se interessou pela regulamentação e,
 quando se interessou, foi contra.
 Houve propostas de regulamentação anos atrás e foram bombardeadas pela
 SBC.
 Como a SBC é formada principalmente por acadêmicos, ele não têm esse
 tipo de problema que nós enfrentamos com o CREA e o CFA e, portanto, não
 estão nem aí.


 Bene


 [EMAIL PROTECTED] wrote:
  Em tempo: embora tenha graduação e mestrado em informática, já fui
  notificado pelo CREA que não posso fazer qualquer serviço de
 configuração
  de redes sem a contratação de um engenheiro em eletrônica.
 
  Tenho a notificação escaneada e leio ela novamente cada vez que surge
 esse
  assunto de regularização da profissão.
 
  Desculpem o OFF-TOPIC.
 
  []s
  Claudimir Zavalik
 
 
  Então que o CRA brigue com o CREA que também anda se achando muito para
  cima
  da área de TI, graças a cursos vagabundos chamados Engenharia da
  Computação que pipocaram de uma hora para outra pelo país.
 
  2008/1/24, Roberto Mello [EMAIL PROTECTED]:
 
  2008/1/24 Jean [EMAIL PROTECTED]:
 
  Ela ta cuidando desses negocios de RH, mais blz entaum nao tem nada
 
  haver né
 
  !!!
  to me segurando pra nao dar uma risadinha 
  valew obrigado 
 
  Cuidado, ela pode estar certa. Um tempo atras eu lembro que o CRA
  estava tentando fazer com que toda pessoa que trabalha com informatica
  caisse sobre a alcada do CRA. Isso causaria que uma empresa de
  informatica nao poderia se qualificar para usar o SIMPLES para
  impostos.
 
  E' mais um exemplo da burocracia que impera no Brasil, onde o CRA nao
  esta' buscando beneficio nenhum para seus supostos membros, e onde o
  governo obriga as pessoas e empresas a pagarem por algo mesmo quando
  eles nao tem beneficio nenhum. Deveriam deixar o mercado decidir, ao
  inves de freiar a economia dessa maneira.
 
  -Roberto
  ___
  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
 


 --
 --

 Benedito A. Cruz
 Centro de Referência em Informação Ambiental - CRIA
 email [EMAIL PROTECTED]
 fone 55 19 3288 0466


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





-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] [OT] Função de DBA

2008-01-25 Por tôpico Alexsander Rosa
Podemos ir mais longe: TODOS os Conselhos deveriam ser extintos. Eles não
passam de máfias que fazem Reserva de Mercado à força (como os mafiosos que
cobram por proteção), servem apenas para proteger os membros da famiglia
e não prestam nenhum serviço à Sociedade.

2008/1/25, Roberto Mello [EMAIL PROTECTED]:

 2008/1/25 Marcos Fabrício Corso [EMAIL PROTECTED]:
  eu sou totalmente a favor da regulamentação da profissão
  é duro vc ter que falar pra um cliente que teu sistema ou site é melhor
 do
  que o de um pia de 12 anos

 Aqui nos EUA nao existe regulamentacao da profissao de informatica, e
 pelo que eu vejo a industria de tecnologia de informacao vai muito
 bem, obrigado. Tem pia' de 12 anos que e' mais talentoso que gente de
 40, apesar de serem raros. Sem querer me enquadrar na categoria de
 mais talentoso, mas eu escrevi programas para informatizacao de
 clinicas medicas quando eu tinha 9 anos, em BASIC no TK-2000 com 128
 KiB de memoria e drive externo de 5 1/4. Se eu tivesse sido proibido
 de faze-lo, provavelmente nao teria continuado a estudar informatica.

 Eu contrato gente para empresa que trabalho, e nao e' incomum uma
 pessoa que nao tenha formacao academica ser a mais qualificada,
 dependendo da area, apesar de preferirmos pessoal com formacao
 academica.

 Se a minha empresa (sou acionista) fosse obrigada por uma lei qualquer
 a contratar pessoal que fosse regulamentado por um conselho
 burocrata qualquer, eu teria que despedir 75% dos meus programadores,
 e provavelmente teria que fechar as portas, ou o meu custo subiria
 muito.

 A industria de tecnologia do Brasil precisa de estimulo. Precisa
 crescer para criar mais empregos, mais empreendores, mais inovacao. Os
 profissionais precisam se qualificar para competir no mercado global.
 Regulamentacao nao vai ajudar em nenhuma dessas metas.

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] [OT] Função de DBA

2008-01-25 Por tôpico Alexsander Rosa
Os sindicatos não precisam ser extintos, mas precisam ser modificados. Não
deve haver monopólio territorial e a adesão deve ser 100% voluntária. Os
sindicatos precisam voltar a ser o que deveriam ser, associações livres de
empregados que negociam em grupo com os empregadores em busca de melhores
contratos. A legislação atual dá poder demais aos sindicatos.

Em 25/01/08, Pablo Sánchez [EMAIL PROTECTED] escreveu:

 Então, que se extingam também os sindicatos.

 Em 25/01/08, Alexsander Rosa [EMAIL PROTECTED] escreveu:
 
  Podemos ir mais longe: TODOS os Conselhos deveriam ser extintos. Eles
  não passam de máfias que fazem Reserva de Mercado à força (como os mafiosos
  que cobram por proteção), servem apenas para proteger os membros da
  famiglia e não prestam nenhum serviço à Sociedade.
 
  2008/1/25, Roberto Mello [EMAIL PROTECTED]:
  
   2008/1/25 Marcos Fabrício Corso [EMAIL PROTECTED]:
eu sou totalmente a favor da regulamentação da profissão
é duro vc ter que falar pra um cliente que teu sistema ou site é
   melhor do
que o de um pia de 12 anos
  
   Aqui nos EUA nao existe regulamentacao da profissao de informatica, e
   pelo que eu vejo a industria de tecnologia de informacao vai muito
   bem, obrigado. Tem pia' de 12 anos que e' mais talentoso que gente de
   40, apesar de serem raros. Sem querer me enquadrar na categoria de
   mais talentoso, mas eu escrevi programas para informatizacao de
   clinicas medicas quando eu tinha 9 anos, em BASIC no TK-2000 com 128
   KiB de memoria e drive externo de 5 1/4. Se eu tivesse sido proibido
   de faze-lo, provavelmente nao teria continuado a estudar informatica.
  
   Eu contrato gente para empresa que trabalho, e nao e' incomum uma
   pessoa que nao tenha formacao academica ser a mais qualificada,
   dependendo da area, apesar de preferirmos pessoal com formacao
   academica.
  
   Se a minha empresa (sou acionista) fosse obrigada por uma lei qualquer
   a contratar pessoal que fosse regulamentado por um conselho
   burocrata qualquer, eu teria que despedir 75% dos meus programadores,
   e provavelmente teria que fechar as portas, ou o meu custo subiria
   muito.
  
   A industria de tecnologia do Brasil precisa de estimulo. Precisa
   crescer para criar mais empregos, mais empreendores, mais inovacao. Os
   profissionais precisam se qualificar para competir no mercado global.
   Regulamentacao nao vai ajudar em nenhuma dessas metas.
  
   -Roberto
   ___
   pgbr-geral mailing list
   pgbr-geral@listas.postgresql.org.br
   https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  
 
 
 
  --
  Atenciosamente,
 
  Alexsander da Rosa
  Linux User #113925
 
  ___
  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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] como obter caminho completo dos bin ários do pg

2008-01-31 Por tôpico Alexsander Rosa
PS: pode fazer também assim:
select name, setting, extra_desc from pg_settings ;

2008/1/31, Alexsander Rosa [EMAIL PROTECTED]:

 no psql:
 # SHOW all ;

 Vê se alguma coisa te ajuda.

 2008/1/31, Fernando de Oliveira [EMAIL PROTECTED]:
 
   Pessoal,
 
  Preciso saber o local onde estão os binários do postgresql (Windows).
 
  Meu objetivo é executar o pg_dump.
 
  Tem alguma forma de conseguir isso via função ou consultando as tabelas
  de sistema?
 
  []s
  Fernando
 
 
  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
 
 


 --
 Atenciosamente,

 Alexsander da Rosa
 Linux User #113925




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] como obter caminho completo dos bin ários do pg

2008-01-31 Por tôpico Alexsander Rosa
no psql:
# SHOW all ;

Vê se alguma coisa te ajuda.

2008/1/31, Fernando de Oliveira [EMAIL PROTECTED]:

  Pessoal,

 Preciso saber o local onde estão os binários do postgresql (Windows).

 Meu objetivo é executar o pg_dump.

 Tem alguma forma de conseguir isso via função ou consultando as tabelas de
 sistema?

 []s
 Fernando


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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] OFF TOPIC - Ferramenta de desenvolvimento

2008-02-07 Por tôpico Alexsander Rosa
Volta e meia estou editando código C no vi.
Emacs sucks! Vi rulez!

2008/2/7, Antonio Nascimento [EMAIL PROTECTED]:

 Não sou fã da MS, contudo para programar em C++ até hoje não encontrei
 nada melhor que o Visual Studio.

 Antonio Nascimento

 2008/2/7 Pedro B. Alves [EMAIL PROTECTED]:

  Qual seria a melhor IDE para programação em C++?
  ___
  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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] OFF TOPIC - Ferramenta de desenvolvimento

2008-02-07 Por tôpico Alexsander Rosa
Eu também sou do RS. Estou desenvolvendo para o coletor de dados MC-3090 da
Symbol (que usa Microsoft(R) Windows™ CE 5.0 Professional) usando C, ncurses e
libpq. O coletor é um complemento do nosso ERP, para uso em depósitos
(warehouse). Ele tem wireless e leitor laser de código de barras.

Em 07/02/08, Pedro B. Alves [EMAIL PROTECTED] escreveu:



 2008/2/7, Pablo Sánchez [EMAIL PROTECTED]:
 
  Então acho que o que vc vai precisar mesmo é de C++,e não C#.



 C++ foi minha primeira opnião... mas como eu não sei programar em C++ e
 não estou conseguindo nenhum curso aqui no meu estado, então estou tentando
 outras alternativas... sou do RS..



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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] conectar via libpq em c++ windows ( dev-cpp )

2008-02-11 Por tôpico Alexsander Rosa
Eis meu compila_win.bat:

=== início
@ECHO OFF
SET PGINC=C:\Arquivos de programas\PostgreSQL\8.2\include
SET PGLIB=C:\Arquivos de programas\PostgreSQL\8.2\lib

SET CINC=C:\Dev-Cpp\include
SET CLIB=C:\Dev-Cpp\lib

SET CURLINC=C:\RNGE\Synchro\libcurl-7.16.0\include
SET CURLLIB=C:\RNGE\Synchro\libcurl-7.16.0\lib

DEL rnx_synchro2.pid

@ECHO ON
gcc -Wall rnx_synchro2.c md5.c -I%CINC% -I%PGINC% -I%CURLINC% -L%CLIB%
-L%PGLIB% -L%CURLLIB% -lcurl -lpq -o rnx_synchro2.exe
=== fim

Em 11/02/08, Fernando de Oliveira [EMAIL PROTECTED] escreveu:

 Pessoal,
 Estou tentando conectar ao Pg via libpq no windows xp utilizando o
 Dev-cpp,
 porém estou obtendo os seguintes erros ( Log do compilador ):


 --
 Executando  make...
 mingw32-make.exe -f C:\Dev-Cpp\Projetos\testes\Makefile.win all
 g++.exe Objects/MingW/main.o -o
 Output\MingW\Teste.exe -LC:/Dev-Cpp/Lib -LC:/Arquivos de
 programas/PostgreSQL/8.3/lib

 Objects/MingW/main.o:main.cpp:(.text+0xd): undefined reference to
 `PQfinish'
 Objects/MingW/main.o:main.cpp:(.text+0x69): undefined reference to
 `PQconnectdb'
 Objects/MingW/main.o:main.cpp:(.text+0x77): undefined reference to
 `PQstatus'
 Objects/MingW/main.o:main.cpp:(.text+0x86): undefined reference to
 `PQerrorMessage'
 Objects/MingW/main.o:main.cpp:(.text+0xc0): undefined reference to
 `PQexec'
 Objects/MingW/main.o:main.cpp:(.text+0xce): undefined reference to
 `PQresultStatus'
 Objects/MingW/main.o:main.cpp:(.text+0xde): undefined reference to
 `PQerrorMessage'
 Objects/MingW/main.o:main.cpp:(.text+0x105): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x11b): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x12e): undefined reference to
 `PQexec'

 Objects/MingW/main.o:main.cpp:(.text+0x13c): undefined reference to
 `PQresultStatus'
 Objects/MingW/main.o:main.cpp:(.text+0x14c): undefined reference to
 `PQerrorMessage'
 Objects/MingW/main.o:main.cpp:(.text+0x173): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x189): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x19c): undefined reference to
 `PQexec'
 Objects/MingW/main.o:main.cpp:(.text+0x1aa): undefined reference to
 `PQresultStatus'
 Objects/MingW/main.o:main.cpp:(.text+0x1ba): undefined reference to
 `PQerrorMessage'
 Objects/MingW/main.o:main.cpp:(.text+0x1e1): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x1f7): undefined reference to
 `PQnfields'
 Objects/MingW/main.o:main.cpp:(.text+0x21b): undefined reference to
 `PQfname'
 Objects/MingW/main.o:main.cpp:(.text+0x250): undefined reference to
 `PQntuples'
 Objects/MingW/main.o:main.cpp:(.text+0x27d): undefined reference to
 `PQgetvalue'
 Objects/MingW/main.o:main.cpp:(.text+0x2b2): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x2c5): undefined reference to
 `PQexec'
 Objects/MingW/main.o:main.cpp:(.text+0x2d3): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x2e6): undefined reference to
 `PQexec'

 Objects/MingW/main.o:main.cpp:(.text+0x2f4): undefined reference to
 `PQclear'
 Objects/MingW/main.o:main.cpp:(.text+0x2ff): undefined reference to
 `PQfinish'
 collect2: ld returned 1 exit status

 mingw32-make.exe: *** [Output/MingW/Teste.exe] Error 1

 Execução terminada

 


 Ja pesquisei no google, mas não consegui resolver o problema.
 Aparentemente
 é problema de linkagem, já tentei passar os parâmetros mas não deu certo..

 Alguém pode me ajudar?

 []s
 Fernando de Oliveira

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] conectar via libpq em c++ windows ( dev-cpp )

2008-02-11 Por tôpico Alexsander Rosa
Confira no C:\Arquivos de programas\PostgreSQL\8.3\lib se existe o arquivo 
libpq.a.
Fiz um teste aqui: renomeei o meu libpq.a e deu o mesmo erro que você
teve.

2008/2/11, Fernando de Oliveira [EMAIL PROTECTED]:

  Erro retornado retirando -lcurl


 
 C:\Dev-Cpp\Projetos\testesC:\Dev-Cpp\bin\gcc -Wall 
 main.cpp-IC:\Dev-Cpp\inclu
 de -IC:\Arquivos de programas\PostgreSQL\8.3\include -LC:\Dev-Cpp\lib
 -LC:
 \Arquivos de programas\PostgreSQL\8.3\lib  -lpq -o teste.exe
 C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe:
 cannot f
 ind -lpq
 collect2: ld returned 1 exit status

 

 muito agradecido pela ajuda.

 []s
 Fernando de Oliveira

 - Original Message -
 *From:* Alexsander Rosa [EMAIL PROTECTED]
 *To:* Comunidade PostgreSQL Brasileirapgbr-geral@listas.postgresql.org.br
 *Sent:* Monday, February 11, 2008 3:02 PM
 *Subject:* Re: [pgbr-geral] conectar via libpq em c++ windows ( dev-cpp )

 Você precisa tirar a LIBCURL (que eu estou usando e você não).
 Remova o -lcurl da linha do gcc.

 Em 11/02/08, Fernando de Oliveira [EMAIL PROTECTED] escreveu:
 
   Eis meu compila.bat adaptado pelo bat do Alexsander:
 
   inicio 
  @ECHO OFF
  SET PGINC=C:\Arquivos de programas\PostgreSQL\8.3\include
  SET PGLIB=C:\Arquivos de programas\PostgreSQL\8.3\lib
 
  SET CINC=C:\Dev-Cpp\include
  SET CLIB=C:\Dev-Cpp\lib
  SET GCCDIR=C:\Dev-Cpp\bin\
 
 
  @ECHO ON
  %GCCDIR%gcc -Wall main.cpp -I%CINC% -I%PGINC% -L%CLIB% -L%PGLIB%  -lcurl
  -lpq -o teste.exe
  fim 
 
  Erro retornado:
 
 
  --
  C:\Dev-Cpp\Projetos\testesC:\Dev-Cpp\bin\gcc -Wall 
  main.cpp-IC:\Dev-Cpp\inclu
  de -IC:\Arquivos de programas\PostgreSQL\8.3\include
  -LC:\Dev-Cpp\lib -LC:
  \Arquivos de programas\PostgreSQL\8.3\lib  -lcurl -lpq -o teste.exe
 
  C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe:
  cannot f
  ind -lcurl
  collect2: ld returned 1 exit status
 
  ---
 
  []s
  Fernando de Oliveira
 
   - Original Message -
  *From:* Alexsander Rosa [EMAIL PROTECTED]
  *To:* Comunidade PostgreSQL Brasileirapgbr-geral@listas.postgresql.org.br
  *Sent:* Monday, February 11, 2008 1:44 PM
  *Subject:* Re: [pgbr-geral] conectar via libpq em c++ windows ( dev-cpp
  )
 
  Eis meu compila_win.bat:
 
  === início
  @ECHO OFF
  SET PGINC=C:\Arquivos de programas\PostgreSQL\8.2\include
  SET PGLIB=C:\Arquivos de programas\PostgreSQL\8.2\lib
 
  SET CINC=C:\Dev-Cpp\include
  SET CLIB=C:\Dev-Cpp\lib
 
  SET CURLINC=C:\RNGE\Synchro\libcurl-7.16.0\include
  SET CURLLIB=C:\RNGE\Synchro\libcurl-7.16.0\lib
 
  DEL rnx_synchro2.pid
 
  @ECHO ON
  gcc -Wall rnx_synchro2.c md5.c -I%CINC% -I%PGINC% -I%CURLINC% -L%CLIB%
  -L%PGLIB% -L%CURLLIB% -lcurl -lpq -o rnx_synchro2.exe
  === fim
 
  Em 11/02/08, Fernando de Oliveira [EMAIL PROTECTED] escreveu:
  
   Pessoal,
   Estou tentando conectar ao Pg via libpq no windows xp utilizando o
   Dev-cpp,
   porém estou obtendo os seguintes erros ( Log do compilador ):
  
  
   --
   Executando  make.
   mingw32-make.exe -f C:\Dev-Cpp\Projetos\testes\Makefile.win all
   g++.exe Objects/MingW/main.o -o
   Output\MingW\Teste.exe -LC:/Dev-Cpp/Lib -LC:/Arquivos de
   programas/PostgreSQL/8.3/lib
  
   Objects/MingW/main.o:main.cpp:(.text+0xd): undefined reference to
   `PQfinish'
   Objects/MingW/main.o:main.cpp:(.text+0x69): undefined reference to
   `PQconnectdb'
   Objects/MingW/main.o:main.cpp:(.text+0x77): undefined reference to
   `PQstatus'
   Objects/MingW/main.o:main.cpp:(.text+0x86): undefined reference to
   `PQerrorMessage'
   Objects/MingW/main.o:main.cpp:(.text+0xc0): undefined reference to
   `PQexec'
   Objects/MingW/main.o:main.cpp:(.text+0xce): undefined reference to
   `PQresultStatus'
   Objects/MingW/main.o:main.cpp:(.text+0xde): undefined reference to
   `PQerrorMessage'
   Objects/MingW/main.o:main.cpp:(.text+0x105): undefined reference to
   `PQclear'
   Objects/MingW/main.o:main.cpp:(.text+0x11b): undefined reference to
   `PQclear'
   Objects/MingW/main.o:main.cpp:(.text+0x12e): undefined reference to
   `PQexec'
  
   Objects/MingW/main.o:main.cpp:(.text+0x13c): undefined reference

Re: [pgbr-geral] Canal #postgresql-br

2008-02-14 Por tôpico Alexsander Rosa
Estou dentro!

Em 14/02/08, Roberto Mello [EMAIL PROTECTED] escreveu:

 Pessoal,

 Eu tenho ficado no #postgresql-br por uns tempos agora, e quase nunca
 tem ninguem por la'. IRC e' uma excelente maneira de trocar ideias, e
 ter um intercambio de discussoes muito mais dinamico que a lista de
 discussao.

 Os pouco que aparecem por la' fazem uma pergunta, esperam 3 minutos, e
 quando nao receberam resposta ainda vao-se embora. Nao entendem que se
 esperarem mais um pouco a resposta pode aparecer.

 Gostaria de convidar mais membros da lista a entrarem e *ficarem* no
 canal #postgresql-br na freenode. Sugiro usar um cliente que possa
 ficar conectado o tempo inteiro, como o irssi dentro de uma sessao do
 screen, ou usar o bip para ficar sempre conectado e acompanhar todas
 as discussoes.

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Database ocupando muito espaço no H D

2008-02-14 Por tôpico Alexsander Rosa
Pra ver o tamanho do BD
select pg_size_pretty(pg_database_size('nome-da-base'));

Pra ver o tamanho de uma tabela
select pg_size_pretty(pg_relation_size('nome-da-tabela'));


Em 14/02/08, Hikari [EMAIL PROTECTED] escreveu:

 Eu estou com uma situação estranha aqui, talvez alguém saiba como
 resolver.

 Eu rodo o Postgres 8.2.4 no Windows, ele tem 2 databases sendo 1 pra
 testes bem pequeno e outro q quando faço backup o arquivo fica
 com 200KB.

 Acontece q o diretório \data tava ocupando 20.7GB!! Ele já tinha mais de 1
 ano, quando eu reinstalei o Postgres eu só mandei ele
 usar esse diretório. Há uns meses, pesquisando sobre isso que eu fui
 descobrir o VACUUM, só q ele não ajudou muito. Então eu fiz
 backup, reinstalei o Postgres completo e restaurei o backup, daí o \data
 ficou com uns 60MB...

 E agora tá acontecendo de novo, ele tá com 2.24GB já... eu rodo o VACUUM e
 nada do espaço diminuir.

 Vcs sabem oq pode estar causando isso e se tem alguma outra alternativa
 além de desinstalar e reinstalar?




 ---
 Hikari
 http://hikarinet.info

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] conectar via libpq em c++ windows ( dev-cpp )

2008-02-18 Por tôpico Alexsander Rosa
Experimenta copiar pro diretório do exe. Ele vai pedir, sim, várias outras
DLL que acompanham, como libeay32.dll, ssleay32.dll e krb5_32.dll. No total
são umas 5 ou 6, não lembro ao certo. Vai copiando à medida em que ele vai
pedindo pra testar.

2008/2/18, Fernando de Oliveira [EMAIL PROTECTED]:

  Consegui compilar o programa,
 entretanto na hora de executar, ele fala que não foi possível encontrar 
 libpq.dll, sendo que a mesma encontra-se no diretório \lib e \bin.
 Experimentei copiar para a pasta do exe, mas passa a pedir outra...
 obrigado a todos pela ajuda.

 Fernando

 - Original Message -
 *From:* Thiago Tiedtke [EMAIL PROTECTED]
 *To:* Comunidade PostgreSQL Brasileirapgbr-geral@listas.postgresql.org.br
 *Sent:* Monday, February 11, 2008 10:59 PM
 *Subject:* Re: [pgbr-geral] conectar via libpq em c++ windows ( dev-cpp )

 Eu fiz o teste aqui, e minha linha ficou assim:

 gcc -Wall main.cpp -IC:\Arquivos de programas\PostgreSQL\8.3\include
 -LC:\Arquivos de programas\PostgreSQL\8.3\lib -llibpq -o teste.exe

 Compilou normalmente.

 Estou em Windows XP, com MinGW, gcc version 3.4.4 (mingw special)

 Primeiro criei um projeto no CodeBlocks, depois fiz na linha de comando.

 A única coisa que percebi de diferente foi isso:

 -llibpq e nao -lpq, como está no seu .bat

 []s

 Thiago tiedtke dos Reis

 --

 ___
 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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
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

2008-02-18 Por tôpico Alexsander Rosa
Um palpite: não seria contra-barra?
SELECT * FROM \USUARIO\ 

2008/2/18, Andrea Santos [EMAIL PROTECTED]:

 A minha tabela se chama USUARIO.

 O caminho do path está configurado corretamento, tanto que ele consegue
 fazer o select, porém só faz se eu coloco o nome da tabela entre 

 String sqk = SELECT * FROM /USUARIO/ 


 O que então poderia estar errado ? Existe alguma restrição com o nome da
 tabela estar em maiusculo?



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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] foto em java e postgres

2008-02-21 Por tôpico Alexsander Rosa
Isso foi discutido no PGCon 2007:

Preciso armazenar arquivos no banco. O que fazer? - Diogo Biazus
http://www.postgresql.org.br/Palestras_do_PGCon_Brasil_2007

2008/2/21, Eduardo [EMAIL PROTECTED]:

 Aproveitando a thread,

 Quais seriam os argumentos para justificar o armazenamento do banco X
 gravar em uma pasta a parte.



 Eduardo






 Dickson Guedes wrote:
  -BEGIN PGP SIGNED MESSAGE-
  Hash: SHA1
 
  Marcos Fabrício Corso escreveu:
 
  (...) e preciso que no cadastro de produto fique com a foto do
  produto o que tenho que fazer no postgres para isso, para gravar ??
   e em java, como fazer, para selecionar a foto ?? (...)
 
 
 
  http://jdbc.postgresql.org/documentation/83/binary-data.html
 
  []s
  Guedes
  -BEGIN PGP SIGNATURE-
  Version: GnuPG v1.4.2 (GNU/Linux)
  Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
 
  iD8DBQFHvXqsfNj5A+QkLMoRAr0yAJ9eTH8gwCQRHpcElXcLnj5+rnxEcACeIFYy
  xVIo3OeikPrwhzz3k1z4fD8=
  =mJh2
  -END PGP SIGNATURE-
 
  ___
  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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Driver Vitavoom (Delphi+DBX+Postgres)

2008-02-25 Por tôpico Alexsander Rosa
Eu uso com D7.

2008/2/25, Marlon David de Souza [EMAIL PROTECTED]:

 Boa tarde a todos,

   Alguém já está utilizando o driver da Vitavoom juntamente com o Delphi
 2007 for Win32?

 Sem mais,


 Marlon David de Souza
 Desenvolvimento
 Sysmo Informática Ltda
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Como gerar um Dump de todo o banco a exceção dos dados de algumas tabelas?

2008-02-27 Por tôpico Alexsander Rosa
Se os logs são descartáveis, porque não fazer o inverso? De tempos em
tempos, por exemplo todos os meses, pode-se fazer um dump só com os logs
(com a opção -t) e depois dar um TRUNCATE neles? Assim você pode arquivar os
logs para uso futuro e mantém o tamanho overall do banco dentro de um
limite mais aceitável.

Em 27/02/08, Christian Almeida [EMAIL PROTECTED] escreveu:

 Olá Lista!

 Há muito tempo estou inscrito nesta lista, porém quase nunca enviei
 perguntas, recorrendo à pesquisas no histórico dos posts e à documentação
 própria do Postgres. Mas infelizmente, neste caso, apesar de encontrar
 algumas informações a respeito, não consegui exatamente o que queria.

 Bem, vamos ao problema...

 Temos um banco com vários schemas e dentro dos schemas temos centenas de
 objetos (tabelas/views/sequences/etc...).

 Há algum tempo o arquivo de *dump* vem crescendo (e tende a ficar maior
 ainda) devido obviamente ao volume de registros. A idéia então é diminuir o
 tamanho do *dump* simplesmente removendo coisas descartáveis de dentro
 dele. Sendo asssim, analisamos a situação e chegamos a conclusão que em caso
 de emergência (onde será necessário restaurar todo o banco), os dados de
 algumas tabelas podem simplesmente ser descartados sem que prejudique a
 utilização do sistema (dados de *logs* por exemplo). O
 backup deverá restaurar todos os objetos (inclusive as tabelas cujo conteúdo
 pode ser descartado), bem como o restante dos dados.

 *Em resumo, eu preciso de gerar um dump que:*
 *- contenha a definição de todos os objetos dos schemas;  *
 *- contenha os dados de todas as tabelas, exceto de algumas tabelas as
 quais serão informadas no momento de geração do dump.*

 Eu gostaria que o dump fosse feito em um único arquivo. Contudo, caso não
 seja possível, ele pode ser feito em várias partes, cada uma contendo
 algum tipo de informação.

 Abraço.

 Christian.

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] LOG DAS QUERYS

2008-02-27 Por tôpico Alexsander Rosa
Em teoria, daria para fazer uma replicação com isso, não?

2008/2/27, Osvaldo Rosario Kussama [EMAIL PROTECTED]:

 jota.comm escreveu:

 
  Depende de como o seu postgresql.conf sessão de log está configurado.
 

  2008/2/27, junior Prado [EMAIL PROTECTED]

  mailto:[EMAIL PROTECTED]:

 
  Gostaria de saber as querys executadas num determinado dia. Existe
  algum log padrão do postgres, ou possibilidade de habilitar o log?
 



 Depois de configurar a geração dos logs talvez você considere
 interessante utilizar o pgFouine para analisar os resultados.

 http://pgfouine.projects.postgresql.org/


 Osvaldo

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] LOG DAS QUERYS

2008-02-27 Por tôpico Alexsander Rosa
Se replicar também os NEXTVAL, SETVAL, etc deve funcionar, não? Pergunto
porque estou fazendo uma replicação multimaster assíncrona na mão, via um
framework próprio. O problema é que a minha solução requer a criação de
algumas tabelas extras E que todos os comandos sejam feitos por dentro do
framewoek.

Na PGCon-Br me instigaram a tentar fazer uma versão genérica e lançar como
projeto open source.

2008/2/27, Thiago Risso [EMAIL PROTECTED]:

  Em teoria, daria para fazer uma replicação com isso, não?


 Em teoria SIM...
 Mas daria ALGUNS probleminhas .. principalmente com os DEFAULTS e
 Current_date, Current_time  Pois , a o replicar o COMANDO, ele
 iria inserir/Alterar de acordo com a VARIAVEL do SERVIDOR !!

 Mas .. pode ser tratado (Utilizando a data e hora do LOG talvez)... !!!

 --
 Att:

 Thiago Risso

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] LOG DAS QUERYS

2008-02-27 Por tôpico Alexsander Rosa
Se puder mandar, eu agradeço.

Em 27/02/08, Thiago Risso [EMAIL PROTECTED] escreveu:

  Se replicar também os NEXTVAL, SETVAL, etc deve funcionar, não? Pergunto
  porque estou fazendo uma replicação multimaster assíncrona na mão, via
 um
  framework próprio. O problema é que a minha solução requer a criação de
  algumas tabelas extras E que todos os comandos sejam feitos por dentro
 do
  framewoek.
 
  Na PGCon-Br me instigaram a tentar fazer uma versão genérica e lançar
 como
  projeto open source.


 Tenho uma aplicação que desenvolvi justamente para isso  (Replicação
 Multimaster Assincrona) ... Funciona bem .. mas precisa de algumas
 melhorias... O Código está um pouco BAGUNÇADO... mas se alguém se
 interessar .. posso enviar o fonte (em C).

 Na época em que comentei isso na lista, gerou algumas discussões...
 mas ... está lá .. funciona bem ... assumindo os RISCOS de uma
 REPLICAÇÃO MULTIMASTER ASSINCRONA possui !

 ** É TRIGGER BASED ... então tem um arquivo de com SQLS que é
 preciso executar para criação das funções / SCHEMA / Tipos / Tables /
 Views /etc ...

 Bem ... se alguém se interessar por manter ou utilizar ... é só
 solicitar que eu envio !!
 Estava com um projeto de aprimorá-lo e desenvolver um webAdmin ...
 mas... estou meio sem tempo no momento ...


 Bem ... acho que é isso 


 --

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Pesquisar mes dentro da data

2008-03-17 Por tôpico Alexsander Rosa
Pode usar o date_part [1]. Sintaxe:

SELECT nome FROM pessoa WHERE date_part('month',data_nascimento) = 4;

[1] http://www.postgresql.org/docs/current/static/functions-datetime.html

Em 17/03/08, Thiago Risso [EMAIL PROTECTED] escreveu:

   Use a função:
   EXTRACT(MONTH FROM TIMESTAMP sua_data)
   ou
   to_char(sua_datA, 'MM')


 Só pra complementar ... Normalmente uso o EXTRACT ou DATE_PART, pois
 com o TO_CHAR não da pra criar INDICES PARCIAIS, devido ao TO_CHAR
 depender de parâmetros externos como LOCALE para extrair o mês e
 portanto não é IMMUTABLE.!

 EX:
 trisso=# create index idx_foo_month on foo (to_char(data, 'MM'));
 ERROR:  functions in index expression must be marked IMMUTABLE

 trisso=# create index idx_foo_month on foo (EXTRACT(MONTH FROM data));
 CREATE INDEX
 trisso=#

 --
 Att:

 Thiago Risso

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] OFF TOPIC - Projeto que regulamenta p rofissões de informática foi aprovado na CCT - Senado Federal

2008-03-20 Por tôpico Alexsander Rosa
Discordo.

1º) Um médico pode praticar cirurgias com cadáveres, um farmacêutico pode
testar seus remédios em animais, um engenheiro pode construir em locais de
teste e fazer medições de cargas com equipamento adequado. Testes e ensaios
não são privilégios da Informática.

2º) Um bug num software também pode causar mortes. Em 1987 o equipamento de
radioterapia Therac-25 matou 5 pacientes; em novembro de 2000 o software de
planejamento de radioterapia da Multidata Systems matou 8 e deixou 20 com
graves seqüelas. Em 1991 uma falha de software do míssil Patriot (que
dispara automaticamente), da Raytheon, causou a morte de 28 soldados
americanos. O mesmo Patriot em 2003 abateu um caça Tornado GR-4 inglês por
engano, matando dois pilotos da RAF.

Naturalmente há inúmeros casos de prejuízos milionários. O foguete Ariane 5,
que explodiu em 1996 graças a uma falha de software, custou cerca de US$ 500
milhões (incluindo o satélite que seria lançado). Em 1990 a ATT teve uma
pane de 9 horas por causa de uma única linha de código: 75 milhões de
ligações e 200 mil reservas aéreas foram perdidas.

Em 17/03/08, Nabucodonosor Coutinho [EMAIL PROTECTED] escreveu:

 (...)
 A diferença entre informática e a comparação boba que vocês fazem com
 medicina e farmácia, é que em informática podemos testar e errar 100
 ou 1000 vezes para acertar uma. E se após acertar essa uma vez a gente
 não entendeu porque tudo funcionou, a gente pode testar de novo até
 entender e depois podemos testar de novo até aperfeiçoar.

 E podemos fazer tudo isso sem quaisquer tipo de prejuízos materiais
 que um médico, um farmaceutico ou um engenheiro civil poderia ter se
 tentasse fazer o mesmo.
 (...)



-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Bloqueio de usuário.

2008-03-26 Por tôpico Alexsander Rosa
Uma dica: em geral* isso não deveria causar problemas na aplicação... se
você usar os nomes das colunas nos comandos INSERT a aplicação pode ficar
rodando normalmente mesmo após a criação de novas colunas nas tabelas.

* Supondo que seja apenas uma coluna com informações extras não essenciais
às regras de negócio, claro.

2008/3/22, Brasil Software [EMAIL PROTECTED]:

 Bom dia amigos.

 Estou com um problema, presico bloquear a conexão do client enquanto
 estiver fazendo manutenção no banco de dados.
   EX:
 ALTER Table nometabel ADD codigo INTEGER;
ETC.
 Se alguem tiver uma solução para isto por favor me ajude.

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




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] CHAVE COMPOSTA

2008-04-09 Por tôpico Alexsander Rosa
Tenho aqui um ambiente misto com algumas chaves primárias artificiais e
outras naturais. Algumas das artificiais incluem código interno do
produto, código do cliente e número do pedido, todas obtidas através de
sequences.

Como o sistema é parcialmente replicado (ou parcialmente distribuído,
depende do ponto de vista), muitas das chaves primárias são compostas,
acrescentando o campo código da empresa para indicar a filial. Por
exemplo: se um cliente é cadastrado na filial 3 ele pode ficar com o código
1275/3 enquanto um outro, cadastrado na matriz (que é mais antiga e portanto
está com a sequence mais adiantada) fica com o código 45632/1. Da mesma
forma, os pedidos da filial 7 são números baixos como 2349/7 enquanto na
matriz já estão com 6 dígitos, por exemplo 170234/1.

O código do cliente precisou ser uma chave artificial porque há casos de
mais de um cliente com o mesmo CNPJ, em especial órgãos públicos. Por
exemplo, todas as escolas costumam usar o mesmo CNPJ da Secretaria de
Educação. Há casos em que o mesmo CNPJ aparece em 20 clientes diferentes.

Isso traz um problema: apesar de haver uma replicação multi-master
assíncrona entre as filiais e a matriz (desenvolvida internamente, usando
topologia em estrela), as sequences ficam com valores diferentes. Não dá pra
pegar o backup de uma empresa e colocar na outra sem rodar uma rotina para
dar um setval nas sequences colocando o max(chave) em todas elas.

Aproveito para perguntar: alguém tem uma sugestão para melhorar esta
modelagem? Uma das premissas básicas é que uma loja não pode deixar de
vender apenas porque a ADSL caiu (coisa que acontece toda semana). Nossa
sincronização suporta estas falhas de forma transparente, apenas atrasando a
replicação. A solução de conflitos é relativamente simples: em geral o
UPDATE mais antigo vence e há detecção de edição simultânea de uma tupla no
mesmo servidor através de timestamp.

Em 27/03/08, Leandro DUTRA [EMAIL PROTECTED] escreveu:

 2008/3/27, Evandro Ricardo Silvestre [EMAIL PROTECTED]:

  Concordo com relação a chave composta perfeitamente boa, mas não
   concordo que criar uma chave primária quando se pode ter uma chave
   composta vai aumentar tanto assim eventos de E/S e gasto de
   armazenamento.


 Não tem como dizer de antemão, tem de ser caso a caso.  E foi isso que
 questionei, dizer que sempre se cria uma chave artifical simples.
 Pode ser neutro, valer a pena ou penalizar; em caso de ser neutro ou
 penalizar, melhor ficar só com as naturais.




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Anúncio de emprego PostgreSQL

2008-04-19 Por tôpico Alexsander Rosa
Com CLT vai custar quase R$ 4 mil pro empregador.
Por isso muitos profissionais de TI usam CNPJ.

2008/4/20, Leandro DUTRA [EMAIL PROTECTED]:


 http://www.infojobs.com.br/OfertaVisualizar.aspx?id=1591704OrigenVisita=24mailpos=3alertaid=1212189envioid=85762566utm_source=infutm_medium=mailutm_campaign=cas

 R$2K é piada, mas de repente interessa para alguém.

 --
 skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL 
 PROTECTED]
 +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
 +55 (11) 5685 2219MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Anúncio de emprego PostgreSQL

2008-04-20 Por tôpico Alexsander Rosa
Comentários abaixo.

2008/4/20, Leandro DUTRA [EMAIL PROTECTED]:

 2008/4/20, Alexsander Rosa [EMAIL PROTECTED]:

  Com CLT vai custar quase R$ 4 mil pro empregador.


 R$4K ainda é pouco, muito pouco para o responsável pelos dados de uma
 empresa decente.


De fato é pouco, mas não estou entrando neste mérito. Se fossem R$ 5 mil em
CLT iriam custar R$ 10 mil para o empregador... será que não seria melhor
pagar pelo menos parte desse dinheiro ao funcionário? Temos no Brasil uma
das legislações trabalhistas mais atrasadas do mundo, e isso gera desemprego
-- não na área de TI, onde as empresas têm até dificuldade para preencher as
vagas, mas em outras áreas que requerem menor qualificação.

 Por isso muitos profissionais de TI usam CNPJ.

 Nem vou comentar a sandice dessa abordagem para a área de dados.


Qual o problema? Existe alguma diferença de confiabilidade, por exemplo? Eu
acho mais comum o empregado via CLT descontente ficar na empresa pra não
perder a multa do FGTS do que o contratado via CNPJ, que quando está
descontente procura outro lugar para trabalhar com mais rapidez. Com CLT o
patrão pode ser mais cruel porque tem o empregado como refém, os
funcionários acabam agüentando ambientes desagradáveis por muito mais tempo.
E um empregado com vínculo empregatício, mas descontente, é muito menos
confiável do que um sem vínculo, mas satisfeito. Além disso, um NDA não
depende da forma de contratação.

--

 skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL 
 PROTECTED]
 +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
 +55 (11) 5685 2219MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Anúncio de emprego PostgreSQL

2008-04-20 Por tôpico Alexsander Rosa
Eu respeito muito mais um profissional que prefere trabalhar por CNPJ do que
um que só trabalha se for por CLT. Pelo que vi em quase 20 anos de mercado,
quem faz questão de CLT (salvo honrosas exceções) em geral ou tem segundas
intenções (perfis de exemplo: batedor de ponto, moita, etc) ou não
confia muito no seu próprio taco. Tem gente que já entra no emprego pensando
na futura ação trabalhista que vai entrar, antes mesmo de começar a
trabalhar.

Em 21/04/08, Leandro DUTRA [EMAIL PROTECTED] escreveu:

 2008/4/21, Alexsander Rosa [EMAIL PROTECTED]:

  Você se ilude se pensa que a CLT é um indicativo de respeito, tanto por
  parte do empregador quanto por parte do empregado. Há inúmeros exemplos
 de
  maus patrões sugando os empregados porque sabem que eles não vão pedir
  demissão para não perder a multa do FGTS, assim como há maus empregados
  fazendo corpo mole de propósito apenas para ser demitidos.


 Distorções, mas o fato permanece.


 --

 skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL 
 PROTECTED]
 +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
 +55 (11) 5685 2219MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,

Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Convertendo MDB (Access) para PostgreSQL

2008-05-07 Por tôpico Alexsander Rosa
1) Instale o mdb-tools
*sudo aptitude install mdb-tools*

2) Rode o seguinte comando:
*mdb-schema arquivo.MDB | sed -e s/Long// | sed -e s/Text/Varchar/ | sed
-e s/DateTime/Timestamp/ | sed -e s/Short/0/  esquema.sql
*Pode ser necessário acrescentar outros SED neste comando se o MDB tiver
algum outro tipo de dado não suportado.

3) Execute o script em anexo no arquivo MDB redirecionando para um arquivo.
*./dump-mdb.sh arquivo.MDB  dados.sql*

4) Pronto! O arquivo esquema.sql conterá o esquema e o arquivo dados.sql
conterá os dados.

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925


dump-mdb.sh
Description: Bourne shell script
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Convertendo MDB (Access) para PostgreSQL

2008-05-07 Por tôpico Alexsander Rosa
Eu pensei nisso, mas o mdb-tools tende a pegar os nomes dos campos em
maiúsculas.
O campo Textura ficará como TEXTURA (sem aspas) no script do esquema.

2008/5/7 Dickson Guedes [EMAIL PROTECTED]:

 Boa Alexsander!

 Alexsander Rosa escreveu:
 (...)
  2) Rode o seguinte comando:
  *mdb-schema arquivo.MDB | sed -e s/Long// | sed -e s/Text/Varchar/ |
  sed -e s/DateTime/Timestamp/ | sed -e s/Short/0/  esquema.sql
  *Pode ser necessário acrescentar outros SED neste comando se o MDB tiver
  algum outro tipo de dado não suportado.

 Apenas acrescentando para quem realmente for utilizar essa alternativa
 que fique atento para que palavras como /Textura/ por exemplo não
 sejam substituídas pelo /sed/ (experiência pŕopria)...

 Meus R$ 0,02
 --
 []s
 Dickson S. Guedes
 -
 Projeto Colmeia - Curitiba - PR
 (41) 3254-7130 ramal: 27
 http://makeall.wordpress.com/
 http://planeta.postgresql.org.br/
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] 2 cadastros em uma tabela

2008-05-14 Por tôpico Alexsander Rosa
Essa é uma questão sempre polêmica ...
Comentários abaixo

2008/5/7 Leandro DUTRA [EMAIL PROTECTED]:

 2008/5/7 Evandro Ricardo Silvestre [EMAIL PROTECTED]:
 
Isso vai gerar todo tipo de anomalia e complexidade...
   
Por exemplo, e se a pessoa for tanto cliente como fornecedor?
   
   Ou ela é cliente ou é fornecedor. O que pode acontecer de um fornecedor
   querer comprar algo da empresa, assim no momento de uma venda o
   fornecedor assume o papel do cliente. Mas ele não deixa de ser
   fornecedor (o que é a realidade).

 Não é 'a realidade', isso é como sua empresa modela a realidade.

 Você vai estar cheio de NULLs numa tabela muito mais gorda do que três
 tabelas separadas.  Você sempre vai ter de ler um atributo para saber
 como interpretar o resto.  A base não vai garantir as regras de
 negócio, engordando o aplicativo e garantindo a presença de
 inconsistências a médio prazo.


O que é uma tabela cheia de NULLs? Ter 3 ou 4 colunas com 90% dos valores
NULL numa tabela com 30 colunas é estar cheio de NULLs? O que é melhor,
desperdiçar alguns bytes ou ter que fazer um monte de JOINs pra fazer
qualquer consulta simples? Nessa mesma linha, cabe outra pergunta: o que é
uma tabela muito mais gorda?

Um outro exemplo: o endereço. Se uma pessoa (de qualquer tipo) pode ter
mais de um endereço, seria o caso de criar uma tabela endereço separada
com um relacionamento 1:N de modo de uma pessoa possa ter mais de um
endereço. O problema é que em 99,5% dos casos (acabei de conferir aqui pois
tenho um sistema modelado assim) o cliente tem apenas um endereço
cadastrado. Será que todo o trabalho necessário para buscar o endereço
compensa? Não seria mais fácil ter campos de endereço na própria tabela
pessoa e usar a tabela endereço apenas para os endereços alternativos? É
uma pergunta que já me fizeram várias vezes.


 Se for um sistema muito pequeno, dá para administrar.  Mas sempre será
 muito mais dor de cabeça que o necessário, e mais lento também.


O que é um sistema muito pequeno? Com até 100.000 registros na tabela
pessoa?



 --
 skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED]
 +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803
 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] 2 cadastros em uma tabela

2008-05-15 Por tôpico Alexsander Rosa
Obrigado pelos comentários de vocês.

Eu costumo normalizar tudo, e muitas vezes os programadores e outras pessoas
que precisam acessar as bases reclamam que precisam dar mil voltas pra
pegar as informações. Eu mesmo já me peguei reclamando dos meus próprios
modelos... hehehe. Por exemplo, costumo ter uma tabela pessoa e outras
tabelas para fornecedores, funcionários, etc. No caso dos endereços, que
citei no email anterior, sempre há quem reclame que pra pegar o endereço de
uma pessoa (em 99,5% dos casos existe apenas um por pessoa) é preciso ir lá
na tabela endereço.

Ando tão cansado que nem tenho mais saco pra ficar explicando os motivos. É
bom ver alguns comentários reforçando as minhas idéias de vez em quando. :-)

2008/5/15 Leandro DUTRA [EMAIL PROTECTED]:

 2008/5/15 Evandro Ricardo Silvestre [EMAIL PROTECTED]:
  Se eu condicionar a consultar para apenas *clientes* e tiver um indice
  no campo que indica a categoria da entidade (o campo utilizado para
  condicionar) vai continuar enchendo a memória com os fornecedores?

 Mais um índice, mais escritas, mais leitura, mais uso de cache, mais
 complexidade.

 Acredite, normalização foi criada por gente *muito* mais inteligente
 do que eu.  Não é uma simples técnica, é uma teoria de dependência
 funcional muito, muito bem pensada.

 Há exceções?  Há, pelo menos com a tecnologia atual.  Mas não passa
 disso, exceções.  Evite otimização precoce, que é a raiz de toda sorte
 de males.

 --
 skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED]
 +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803
 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Modelando um Controle de Estoque

2008-07-07 Por tôpico Alexsander Rosa
Eu vejo um problema em usar CNPJ como chave primária de clientes: os órgãos
públicos. Em geral vários órgãos diferentes, com nomes e endereços
diferentes, usam o mesmo CNPJ. Por exemplo, aqui no RS todas as escolas
estaduais usam o mesmo CNPJ, da Secretaria de Educação: 92.941.681/0001-00.
Para efeito de negócio são clientes diferentes, pois cada escola tem um
perfil e um histórico de compras diferente, um endereço diferente, uma
relação de compradores diferente, etc. Não seria interessante, do ponto de
vista do negócio, unificar todos no mesmo cadastro por causa de uma
restrição da modelagem de dados.

2008/6/20 Leandro DUTRA [EMAIL PROTECTED]:

 2008/6/20 Ribamar Sousa [EMAIL PROTECTED]:
 
  Bem, hoje o banco está com 13 tabelas, todas relacionadas mas percebo que
  uma grande maioria também deve ser adicionada num sistema real e
 importante.

 Muito bom enviar o script — e muito bom usar preferencialmente chaves
 naturais!

 Estávamos mesmo precisando de bons contra-exemplos ao Hybernate...

 --
 skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED]
 +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803
 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Modelando um Controle de Estoque

2008-07-11 Por tôpico Alexsander Rosa
Já pensei em usar uma chave composta CPF_CNPJ + NUMERO (inteiro) onde o
campo numero seria uma sequencia de 1 até N, de acordo com o número de
escolas/hospitais/etc com o mesmo CNPJ. Poderia haver uma coluna booleana
orgao_publico e um CHECK para garantir que apenas tuplas com
orgao_publico TRUE possam ter numero  1.

2008/7/7 Leandro DUTRA [EMAIL PROTECTED]:

 2008/7/7 Alexsander Rosa [EMAIL PROTECTED]:
  Eu vejo um problema em usar CNPJ como chave primária de clientes: os
 órgãos
  públicos. Em geral vários órgãos diferentes, com nomes e endereços
  diferentes, usam o mesmo CNPJ.

 Não sabia dessa, boa.

 Será que seria o caso então de especializar entidades em públicas ou
 privadas?  Talvez não, visto que, na internacionalização, o modelo já
 ia se complicar mais também.

 --
 skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
 +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED]
 +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803
 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED]
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Modelando um Controle de Estoque

2008-07-17 Por tôpico Alexsander Rosa
No fim das contas todo mundo usa um código de cliente sequencial...
primeiro, porque é mais fácil de manipular um código que em geral fica com 5
ou 6 dígitos do que um CPF/CNPJ com 14 ou 15 dígitos. Segundo, porque há
casos em que o mesmo CNPJ é usado por mais de um cliente. Será que vale a
pena criar um monte de tabelas pra isso?

2008/7/11 Ribamar Sousa [EMAIL PROTECTED]:

 2008/7/11 Johnny Taylor Faria Chaves [EMAIL PROTECTED]:

  Basta declarar pessoa, cliente ou fornecedor.  Três tabelas.
 
  Daí pessoa jurídica ou física, mais duas tabelas.

 Há muito estou acompanhando aos pedaços essa discussão (nem vi onde ela
 saiu
 do estoque propriamente dito e entrou nessa de clientes, fornecedores e
 etc..., mas está ótimo).

 Leandro, agora chegou em um ponto que venho matutando desde que vi o
 desvio
 citado acima. Concordo que a solução é como você mostrou acima (pessoas=
 físicas| jurídicas + clientes| fornecedores) e facilita inserir sem
 duplicar
 dados (e esforços) funcionários (físicas), transportadoras (fornecedores e
 jurídicas), terceirizados (físicas ou jurídicas).

 Agora vem a pergunta, qual é (são) a(s) pk(s) disso tudo? Sequencial, você
 já
 mostrou sem sombra de dúvida que não pode ser (em qualquer contexto).
 CNPJ|
 CPF, como já debateram aqui, também está fora para a *grande maioria* dos
 casos.

 E mais, como você mesmo tem levantado ultimamente: *o domínio* dessa(s)
 pk(s),
 uma vez que parece que o Postgresql, nessa parte seguiu bem o padrão SQL,
 ou
 seja, fraco, quero dizer criar um domínio mesmo com operadores e tal.


 Mesmo sem ser o Leandro vou arriscar um palpite: em separando bem as
 coisas, física, jurídica, pública e privada, acredito que se deva usar
 nossos CPF e CNPJ.


 --
 Ribamar FS - [EMAIL PROTECTED]
 http://ribafs.net

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Modelando um Controle de Estoque

2008-07-18 Por tôpico Alexsander Rosa
Claro.

E depois, quando seu cliente quiser vender milhões de reais para 100 escolas
estaduais diferentes, todas com o mesmo CNPJ (da Secretaria de Educação),
você explica que o sistema não permite. O mesmo ocorre com hospitais,
universidades, etc. Não é apenas um endereço de entrega diferente, mas o
destinatário da NF diferente. Se a NF não for emitida EXATAMENTE como o
pessoal da licitação pede, você pode ter problemas na hora de receber o
empenho.

Além disso você vai misturar o histórico de compras, perfil do cliente etc
de todas as escolas. Mas isso é apenas um detalhe, claro.

2008/7/17 [EMAIL PROTECTED]:

 Desculpa, mandei para o Assunto errado.

 Tá mas no caso da duplicação de dados, o CNPJ ou CPF pode ser criado um
 index
 unique. Segunda coisa: CNPJ usado por mais de um cliente: o endereço do
 CNPJ é
 um só. Não existe o mesmo CNPJ com 2 endereços diferentes (Isso é lei). É
 só pedir o cartão de CNPJ para o cliente. Crie uma tabela com endereço de
 entrega. Resolverá o teu problema.

 Alecindro


 Quoting Leandro DUTRA [EMAIL PROTECTED]:

  2008/7/17 Alexsander Rosa [EMAIL PROTECTED]:
  No fim das contas todo mundo usa um código de cliente sequencial...
 
  E 'todo mundo' tem problemas de duplicação de dados...
 
 
  primeiro, porque é mais fácil de manipular um código que em geral fica
 com 5
  ou 6 dígitos do que um CPF/CNPJ com 14 ou 15 dígitos.
 
  Creio que já ficou claro que há muitas circunstâncias — melhor seria
  dizer muitas entidades — para as quais CNP[FJ] não serve.  Mas isso
  não é importante; o importante é ter pelo menos uma chave natural em
  cada relação.
 
 
  Segundo, porque há
  casos em que o mesmo CNPJ é usado por mais de um cliente. Será que vale
 a
  pena criar um monte de tabelas pra isso?
 
  Se você quer organização e consistência de dados, precisa normalizar.
 
  --
  skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
  +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED]
  +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803
  +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED]
  ___
  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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Dois to_ascii (UTF-8) com resultados diferentes

2009-09-09 Por tôpico Alexsander Rosa
Eis o dump do psql (o banco é um 8.3.7 num Ubuntu 9.04):

select to_ascii(nome_cidade,'LATIN1') from cep_cidade where nome_cidade
ilike 'IUI%';
  to_ascii

 IUIU
 IUITEPORA
(2 registros)

cep=# select to_ascii(nome,'LATIN1') from tab_municipios where nome ilike
'IUI%';
 to_ascii
--
 IuiA
(1 registro)


Porque em minúsculas não está funcionando?

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Como criar uma FK checando um campo qualquer na tabela referenciada?

2010-01-04 Por tôpico Alexsander Rosa
Tenho duas tabelas, produto e estoque. Em produto a PK é código; há
também um par de campos (cod_base, quantidade) onde cod_base é uma FK
auto-referenciada. Este par serve para as embalagens: o produto 1234 pode
ser uma embalagem com 12 unidades do produto 1231 por exemplo. As unidades
(UN, CX, PCT, etc) são tratadas de acordo.

Na tabela estoque há um campo código_fk que é FK de produto. Somente
produtos-base (isto é, com NULL em cod_base) podem ter registros em
estoque. No entanto, às vezes um produto deixa de ser base e passa a ser
embalagem*, deixando registros sobrando na tabela estoque; tenho que
controlar isso via aplicação mas gostaria de usar o SGBD para garantir esta
integridade de forma mais efetiva.

Segundo sugestão do IRC, tentei criar uma coluna extra em estoque, deixada
sempre em NULL, criando uma nova FK em estoque usando os dois campos de
produto (cod_produto e cod_base). Consegui criar esta constraint mas ela
não funcionou: valores inválidos ainda puderam ser inseridos.

* Exemplo: um blister com 4 pilhas é vendido como base e vem numa
embalagem com 50 blisters. Um dia o fabricante resolve fazer blisters com 2
pilhas -- ou o lojista resolve abrir os blisters e vender as pilhas
individualmente.

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Qual estrutura utilizar?

2010-01-04 Por tôpico Alexsander Rosa
Isso me lembra aquela velha discussão sobre usar CPF/CNPJ como chave
natural, o que é impossível porque inúmeros órgãos públicos compartilham o
mesmo CNPJ. Aqui no RS, por exemplo, simplesmente TODAS as escolas estaduais
usam o CNPJ da Secretaria da Educação, não apenas a raiz, o CNPJ inteiro.
Para o pagamento de empenhos os nomes das escolas precisam estar corretos
até a última vírgula, não dá pra emitir a NF em nome da Secretaria e depois
mandar entregar na escola. É muito mais simples usar um SERIAL para código
de cliente do que tentar achar uma chave natural viável.

Sou totalmente a favor de chaves naturais, uso sempre que possível, mas há
casos em que simplesmente não dá.

2010/1/4 Leandro DUTRA leandro.gfc.du...@gmail.com


 Não.  Nunca falei isso.  Falei que geralmente chave artificial é
 desnecessária; não que é sempre desnecessária.  E, aliás, que o que
 menos me importa é qual seja a chave primária, ou qual chave será
 ‘exportada’ (não nesta discussão, talvez).
 (...)
 O problema não é a existência do SERIAL, é seu uso — e abuso.

 Para bom entendedor… fica claro que o que exijo é chave natural,
 independente de ser primária ou alternativa, e que prefiro que não
 haja artificial a não ser que o desempenho exija.



-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Como criar uma FK checando um campo qualquer na tabela referenciada?

2010-01-04 Por tôpico Alexsander Rosa
Segue exemplo. O último comando gera uma inconsistência que eu gostaria de
poder evitar via constraint. A inconsistência é a seguinte: somente
produtos-base deveriam ter estoque; neste caso o usuário deve primeiro
eliminar o endereço do estoque (movendo os pallets ou algo que o valha) para
depois mudar as associações produto-embalagem. Hoje preciso controlar isso
via aplicação mas gostaria de ter mais um nível de controle de consistência
no banco.

2010/1/4 JotaComm jota.c...@gmail.com

 Olá,

 2010/1/4 Alexsander Rosa alexsander.r...@gmail.com

 Tenho duas tabelas, produto e estoque. Em produto a PK é código; há
 também um par de campos (cod_base, quantidade) onde cod_base é uma FK
 auto-referenciada. Este par serve para as embalagens: o produto 1234 pode
 ser uma embalagem com 12 unidades do produto 1231 por exemplo. As unidades
 (UN, CX, PCT, etc) são tratadas de acordo.

 Na tabela estoque há um campo código_fk que é FK de produto. Somente
 produtos-base (isto é, com NULL em cod_base) podem ter registros em
 estoque. No entanto, às vezes um produto deixa de ser base e passa a ser
 embalagem*, deixando registros sobrando na tabela estoque; tenho que
 controlar isso via aplicação mas gostaria de usar o SGBD para garantir esta
 integridade de forma mais efetiva.

 Segundo sugestão do IRC, tentei criar uma coluna extra em estoque,
 deixada sempre em NULL, criando uma nova FK em estoque usando os dois
 campos de produto (cod_produto e cod_base). Consegui criar esta constraint
 mas ela não funcionou: valores inválidos ainda puderam ser inseridos.

 * Exemplo: um blister com 4 pilhas é vendido como base e vem numa
 embalagem com 50 blisters. Um dia o fabricante resolve fazer blisters com 2
 pilhas -- ou o lojista resolve abrir os blisters e vender as pilhas
 individualmente.


 Não entendi. Teria como colocar um exemplo mais claro, por exemplo com o
 valor que segundo você comentou que foi inserido e não poderia ter
 acontecido.




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
CREATE TABLE tmp_produto (
  cod_prod integer primary key,
  descricao text,
  prod_base integer,
  caixa_com integer,
  FOREIGN KEY (prod_base) REFERENCES tmp_produto(cod_prod)
  );

CREATE UNIQUE INDEX idx_tmp_prodbase ON tmp_produto(cod_prod,prod_base);

CREATE TABLE tmp_estoque (
  posicao_pallet varchar(10) primary key,
  cod_prod_fk integer not null,
  campo_nulo integer,
  quantidade integer,
  FOREIGN KEY (cod_prod_fk) REFERENCES tmp_produto(cod_prod),
  FOREIGN KEY (cod_prod_fk,campo_nulo) REFERENCES tmp_produto(cod_prod,prod_base)
  );

-- cria um produto e seu estoque
INSERT INTO tmp_produto VALUES(314,'BLISTER COM DUAS PILHAS',null,null);
INSERT INTO tmp_estoque VALUES('ABC-1234',314,null,10);

-- cria um novo produto-base
INSERT INTO tmp_produto VALUES(315,'BLISTER COM UMA PILHA',null,null);
UPDATE tmp_produto SET prod_base = 315, caixa_com = 2 WHERE cod_prod = 314;



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


Re: [pgbr-geral] Como criar uma FK checando um campo qualquer na tabela referenciada?

2010-01-06 Por tôpico Alexsander Rosa
Fabrizio, testei neste exemplo e parece ter funcionado.
Vou implementar no BD de desenvolvimento e aviso.
Abraços
Alex

2010/1/5 Fabrízio de Royes Mello fabriziome...@gmail.com



 2010/1/4 Alexsander Rosa alexsander.r...@gmail.com

 Segue exemplo. O último comando gera uma inconsistência que eu gostaria de
 poder evitar via constraint. A inconsistência é a seguinte: somente
 produtos-base deveriam ter estoque; neste caso o usuário deve primeiro
 eliminar o endereço do estoque (movendo os pallets ou algo que o valha) para
 depois mudar as associações produto-embalagem. Hoje preciso controlar isso
 via aplicação mas gostaria de ter mais um nível de controle de consistência
 no banco.


 Caro Alexsander,

 Quem sabe a alternativa em anexo seja uma opção... note as modificações que
 fiz (campo tipo na tabela produtos e tipo na tabela de estoques)...

 Verifique e voltamos a discutir...

 Cordialmente,


 --
 Fabrízio de Royes Mello
  Blog sobre TI: http://fabriziomello.blogspot.com




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Qual estrutura utilizar?

2010-01-07 Por tôpico Alexsander Rosa
Comentários no texto.

2010/1/7 Leandro DUTRA leandro.gfc.du...@gmail.com

 2010/1/4 Alexsander Rosa alexsander.r...@gmail.com:
  Isso me lembra aquela velha discussão sobre usar CPF/CNPJ como chave
  natural, o que é impossível porque inúmeros órgãos públicos compartilham
 o
  mesmo CNPJ.

 Há vários motivos pelos quais CNPF ou CNPJ podem não ser chave natural
 — a questão que se coloca é, justamente, de qual entidade?

 A entidade cliente, por exemplo. Ou quem sabe, fornecedor. Talvez
exista uma entidade pessoa que contém apenas os dados básicos (nome,
cpf/cnpj, etc) e as demais, como cliente, fornecedor, funcionário, etc
sejam especializações. De qualquer forma, não é prático usar, digamos, o
nome completo (+ nome da mãe para o caso dos homônimos): imagine um setor da
empresa conversando com outro, por telefone, sobre um cliente específico.
Além do tempo perdido ditando nomes potencialmente extensos, podem haver
clientes homônimos ou mesmo com grafia ou sonoridade similar. Um código
numérico faz muito mais sentido.


 Acho que eu mesmo já citei o caso de correntista de banco.  Há, por
 exemplo, mulheres casadas que não têm CNPF, porque nunca tiveram vida
 economicamente ativa, mas têm conta conjunta com o marido.  São
 correntistas sem CNPF.

 No teu caso, já poderíamos pensar numa entidade órgão público, que
 certamente tem outra chave.  Talvez, várias entidades.  Se é prático
 ou não separá-los numa base de dados, vai depender de muitas
 variáveis, como dialeto SQL, implementação física, volume de dados,
 tráfego de transações, ferramental de programação… mas, se não
 analisarmos as entidades — e para isso chaves naturais são
 indispensáveis, mesmo que acabem não sendo implementadas nalgum caso
 extremo —, nunca entenderemos os problemas.

 Tradicionalmente as empresas criam um código de cliente para cada cliente
mas permitem que eles cheguem no balcão munidos apenas com o CPF e localizem
seu registro. A chave natural não deixa de existir, apenas não é primária.


  Aqui no RS, por exemplo, simplesmente TODAS as escolas estaduais
  usam o CNPJ da Secretaria da Educação, não apenas a raiz, o CNPJ inteiro.
  Para o pagamento de empenhos os nomes das escolas precisam estar corretos
  até a última vírgula, não dá pra emitir a NF em nome da Secretaria e
 depois
  mandar entregar na escola.

 No mínimo, há uma entidade escola estadual cuja chave não é o CNPJ.
 Talvez o nome da escola, por exemplo (sei, sei, nome dificilmente é
 boa chave, só para provocar a pensar), ou até o nome e o endereço.

 Indo por este caminho acabaríamos criando entidades para escolas (cuja
chave primária pode ser o código INEP, como foi dito aqui), agências dos
correios (cada agência tem seu número), agências de alguns bancos públicos
(nº do banco + nº da agência), sedes do SESC (deve haver algum código que
eles usam) e assim por diante.


  É muito mais simples usar um SERIAL para código
  de cliente do que tentar achar uma chave natural viável.

 Sim, mas incorreto.

 Sendo mais preciso, pode ser necessária uma chave artificial; mas não
 tentar uma chave natural, mesmo que não seja declarada como a
 primária, seria convidar problemas pela porta da frente.

 Mas este é o processo: tentar em primeiro lugar uma chave natural como
chave primária. Mantenho o uso de chaves artificiais dentro do mínimo
necessário. Outro exemplo é o de código de produto: há quem use código de
barras como chave primária, mas nem todo produto tem código de barras.
Alguns são tão pequenos que é impossível sequer colocar uma etiqueta ou
similar, e outros ainda são adquiridos do mesmo fornecedor com códigos de
barras diferentes, por motivos que vão desde erro de impressão da embalagem
até origens diferentes.


  Sou totalmente a favor de chaves naturais, uso sempre que possível, mas
 há
  casos em que simplesmente não dá.

 Não dá o quê?

 Não dá para usar como chave primária, não estou preocupado.

 Não dá para declarar, estou para ver um caso.

 Eu me refiro a usar como chave primária.

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Qual estrutura utilizar?

2010-01-07 Por tôpico Alexsander Rosa
Que bom que acabamos nos entendendo...

2010/1/7 Leandro DUTRA leandro.gfc.du...@gmail.com


  De qualquer forma, não é prático usar, digamos, o nome
  completo (+ nome da mãe para o caso dos homônimos): imagine um setor da
  empresa conversando com outro, por telefone, sobre um cliente específico.

 Usar como?

 Usar como chave primária, ou como única chave, provavelmente.

 Já declarar como chave natural, ainda que não a primária, é necessário
 para evitar duplicações.

 Especificamente nesse exemplo, provavelmente precise-se de uma chave
 composta, visto que mesmo o conjunto de nome e filiação não costuma
 ser chave.

 Sim, eu me referia a usar como chave primária.

Agora uma curiosidade: um ex-colega de faculdade se chamava TÉLVIO e tinha
um irmão gêmeo chamado TÉLCIO. O irmão fez o título de eleitor primeiro e
meu colega não conseguiu tirar o título -- pelo menos até a época da
formatura. O sistema do TRE achou que era fraude, pois eles tinham os nomes
muito parecidos, mudando apenas uma letra, e tinham data de nascimento e
nome da mãe iguais. Ele deve estar com quase 40 anos hoje; não sei se
conseguiu votar algum dia.


  Extremismo na defesa da liberdade não é defeito.
  Moderação na busca por justiça não é virtude.
  -- Barry Goldwater

 Hm, acho que não concordo… OT!  :-)

 Com o extremismo ou com a moderação? :-)

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tamanho das tabelas!

2010-01-12 Por tôpico Alexsander Rosa
Troque a palavra 'seu_esquema' pelo nome do seu esquema.
Experimente colocar 'public', que é o nome padrão.

2010/1/12 Glênio Côrtes Himmen glenio.116...@aparecida.go.gov.br

  Irmão,

 Os comandos abaixo redam em 15ms, mas não me retornam nada.

 Diretoria de Tecnologia da Informação
 Prefeitura Municipal de Aparecida de Goiânia
 Rua Gervasio Pinheiro, Residêncial Solar Central Parque
 Aparecida de Goiânia-GO - CEP - 74.968-500
 Glênio Côrtes Himmen - glenio.116...@aparecida.go.gov.br
 http://www.aparecida.go.gov.br

 Não declines nem para a direita nem
 para a esquerda, retira o teu pé do mal.

 Pv. 4:27

 - Original Message -
 *From:* JotaComm jota.c...@gmail.com
 *To:* Comunidade PostgreSQL Brasileirapgbr-geral@listas.postgresql.org.br
 *Sent:* Tuesday, January 12, 2010 3:22 PM
 *Subject:* Re: [pgbr-geral] Tamanho das tabelas!

 Olá,

 2010/1/12 Glênio Côrtes Himmen glenio.116...@aparecida.go.gov.br

 Como que posso saber o tamanho de cada uma das tabelas do meu esquema?


 Sem contas os índices:

 SELECT table_name,pg_size_pretty(pg_relation_size(table_name)) AS tamanho
 FROM information_schema.tables
 WHERE table_schema='seu_esquema'
 ORDER BY 2 DESC;

 Contando os índices:

 SELECT table_name,pg_size_pretty(pg_total_relation_size(table_name)) AS
 tamanho
 FROM information_schema.tables
 WHERE table_schema='seu_esquema'
 ORDER BY 2 DESC;




 Diretoria de Tecnologia da Informação
 Prefeitura Municipal de Aparecida de Goiânia
 Rua Gervasio Pinheiro, Residêncial Solar Central Parque
 Aparecida de Goiânia-GO - CEP - 74.968-500
 Glênio Côrtes Himmen - glenio.116...@aparecida.go.gov.br
 http://www.aparecida.go.gov.br

 Não declines nem para a direita nem
 para a esquerda, retira o teu pé do mal.

 Pv. 4:27

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



 []s
 --
 JotaComm
 http://jotacomm.wordpress.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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tamanho das tabelas!

2010-01-12 Por tôpico Alexsander Rosa
Qual o resultado do SQL abaixo?

*select catalog_name, schema_name from information_schema.schemata order by
2;
*
PS: Estou testando pelo psql.

Alex

2010/1/12 Glênio Côrtes Himmen glenio.116...@aparecida.go.gov.br

  Sou novato em Postgresql mas nem tanto, quando rodei o comando, eu
 substitui a palavra seu esquema por sch que é o nome do meu esquema.

 Afirmando novamente, não retornou nada.





-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Qual o melhor Sistema Operacional?

2010-01-21 Por tôpico Alexsander Rosa
Linux rulez!
FLAME MODE ON

2010/1/21 Marcos André mac.poa...@gmail.com

 Olá Srs.,

   Estou para criar um servidor de banco de dados PostgreSQL e neste momento
 nos veio a seguinte dúvida Qual o melhor Sistema Operacional? e para isto
 estou fazendo um estudo e através da experiencia da comunidade eu preciso
 saber quais as melhores opções para este tópico.



-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Número de transações por dia

2010-01-22 Por tôpico Alexsander Rosa
Falando nisso, como se calcula este número de transações por dia de modo
coloquial, sem uma formalidade tipo TpmC (com benchmark da TPC)? São
apenas as transações (com begin/commit), apenas os comandos SQL de
modificação (insert, update e delete) ou todos os comandos feitos no dia,
incluindo os select?

Existe algum tipo de ferramenta para determinar estes números (sem
considerar os benchmarks da TPC, claro)? Alguma configuração do
postgresql.conf ou alguma tabela do information_schema?

Aqui eu faço a replicação via log shipping de comandos I/U/D, portanto
consigo medir o volume de gravações no banco -- são cerca de 200 mil por dia
de semana (exceto sábado, pois as lojas funcionam apenas em horário
comercial) -- mas não tenho estatística dos select que são feitos. Já fiz
depuração statement-por-statement, incluindo os select, mas nunca levantei
esta estatística. Esta análise foi feita em especial no início do
desenvolvimento (para otimizar o framework); hoje em dia, faço apenas
eventualmente para achar algum bug mais cabeludo.

2010/1/21 Leandro DUTRA leandro.gfc.du...@gmail.com

 2010/1/21 Jurandir Dallabeneta li...@lmd.com.br:
  Possuimos um software de monitoramento de chão de fábrica onde 5 cpus
  fazem leituras a partir de CLP's e gravam num banco de dados central.
  A base tem 5gb atualmente com aproximadamente 50.000 transações dia.
 
  Pasmen... Windows 2008 Server 64bits.
  Funciona sem problemas a meses, tudo com bom backup.

 A base é pequena, as transações ridiculamente poucas.

 Me fala de terabytes e centenas de transações por segundo… mesmo isso
 dá para fazer funcionar em MS Windows, até em MS SQL Server.  A
 questão é o preço, a falta de liberdade, e a dor de cabeça — não nessa
 ordem.




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Número de transações por dia

2010-01-22 Por tôpico Alexsander Rosa
Com este SELECT que você me passou, depois de resetar, deu mais de 33.000
transações em 5 minutos... entre 11:46 e 11:51. Imagino que este dado deva
considerar os SELECT também, mas mesmo assim ficou acima do que eu pensava.

2010/1/22 JotaComm jota.c...@gmail.com


 A partir do catálogo você consegue este tipo de informação:

 SELECT datname,numbackends,xact_commit,xact_rollback FROM pg_stat_database;

  Este select apresenta o nome do banco, número de conexões, número de
 commits e de rollbacks. Porém, isso é a somatória total, para medir
 dia-a-dia, hora-a-hora você poderia fazer um script para executar
 diariamente e capturar estas informações.

 E um bom passo para começar seria zerar estatísticas e isso você pode fazer
 por meio da função: pg_stat_reset().

 Ainda acredito que a medição via alguma ferramenta seria o melhor caminho.




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Número de transações por dia

2010-01-22 Por tôpico Alexsander Rosa
Pois é, foram mais de 365.000 transações em 2:30 horas.

2010/1/22 JotaComm jota.c...@gmail.com

 Olá, Alexander

 2010/1/22 Alexsander Rosa alexsander.r...@gmail.com

 Com este SELECT que você me passou, depois de resetar, deu mais de 33.000
 transações em 5 minutos... entre 11:46 e 11:51. Imagino que este dado deva
 considerar os SELECT também, mas mesmo assim ficou acima do que eu pensava.


 Sim. Ele considera SELECT também.


 2010/1/22 JotaComm jota.c...@gmail.com


 A partir do catálogo você consegue este tipo de informação:

 SELECT datname,numbackends,xact_commit,xact_rollback FROM
 pg_stat_database;



-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] erro de newbie - perdi a senha - preciso mudar o banco de micro

2010-01-22 Por tôpico Alexsander Rosa
Talvez isso aqui te ajude, com alguma adaptação:
http://cristianogd.blogspot.com/2010/01/recuperar-restaurar-base-de-dados.html

2010/1/22 mrdan pir149...@terra.com.br


 Desculpem se o tópico for muito fácil, mas eu tô apanhando faz uns dois
 dias
 com isso, e a cada vez eu pioro a situação 
 Estou desenvolvendo uma aplicação e adotei o POSTGRESQL como banco. A duras
 penas, criei um banco e diversas tabelas, usuários para acesso e estou na
 fase final de testes. Minha aplicação acessa sem problemas, e tudo ia bem.
 Nessa etapa, eu tenho que passar o banco para o servidor (ele está
 instalado
 no meu micro, durante o desenvolvimento). Fuçando a net, achei instruções
 para fazer isso com o pg_dump e/ou o pg_dumpall. Bom, executei pg_dump
 banco
  saida.txt, e gerou um arquivo ... no servidor, instalei o Postgres e
 tentei psql banco   saida.txt  ai a coisa começou a ficar
 interessante.
 Perguntas :
 1) eu tenho que ter o banco criado no 2o. micro antes dessa importação ?
 2) Se sim, devo criar na mão ?
 3) Tem alguma ferramenta que simplesmente tire tudo de um micro e recrie em
 outro ?
 Nas tentativas, comecei a ter problemas com senha (nao me perguntem o que
 fiz, eu acabei perdendo a senha do banco original). Agora minha aplicação
 consegue ler/gravar, mas o pg_admin não mais ... e se eu tento importar no
 novo, dá erros e mais erros ...
 Enfim, a situação é :
 a) tenho um arquivo gerado pela cópia de segurança do pg_admin
 b) tenho dois arquivos de objetos globais  e (acho) dos bancos criados
 pelo pg_admin antes de dar pau na senha
 c) preciso recriar os bancos no micro novo. Os dados não me interessam, são
 só massa de testes, mas a estrutura sim ...
 d) o problema de senha apareceu qdo eu mexi no arq. pg_hba.conf, conforme
 eu
 tinha acado uma dica na net ... passei o acesso de md5 para trust  ja
 voltei ao que era, mas nada 
 e) eu vou entrar em desespero ...

 eu tenho a impressão que meu embróglio deve ser fácil de resolver, mas eu
 realmente não sei por onde começar  please alguma alma caridosa e mais
 experiente que eu pode me ajudar ? tks


 --
 View this message in context:
 http://old.nabble.com/erro-de-newbie---perdi-a-senha---preciso-mudar-o-banco-de-micro-tp27278666p27278666.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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Acesso a base de dados física

2010-01-22 Por tôpico Alexsander Rosa
Algo me diz que ele não está preocupado com bobagens feitas pelo root, mas
sim com pirataria. Uma aplicação comercial e closed-source pode ter schema
+ stored procedures copiados. Se for em PHP, então... tudo está disponível.

2010/1/20 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2010/1/20 Vinicius Santos vinicius.santos.li...@gmail.com:
  Sim. Basta que esse usuário *não* seja super-usuário do SO e nem o
 usuário que
  executa o PostgreSQL (senão ele pode modificar o pg_hba.conf). Além
 disso,
  certifique-se que *não* esteja utilizando ident (caso haja um usuário no
 SO
  com mesmo nome de um usuário no PostgreSQL) e que as conexões do tipo
 'local'
  estejam utilizando um método de autenticação diferente de 'trust',
 'ident' e
  'password'.
 
  Esse é o problema, o usuário é super-usuário do SO e tem acesso ao
  pg_hba.conf.

 Mas vocês não confiam no cara que é o super-usuário da instalação?
 Neste caso não seria mais prático demití-lo?


 
  Acho que teremos que resolver isso com soluções comerciais. =(

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tamanho em bytes de Tabela Vazia

2010-01-27 Por tôpico Alexsander Rosa
http://www.postgresql.org/docs/current/static/datatype-character.html

The storage requirement for a short string (up to 126 bytes) is 1 byte plus
the actual string, which includes the space padding in the case of character.
Longer strings have 4 bytes of overhead instead of 1. Long strings are
compressed by the system automatically, so the physical requirement on disk
might be less.

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Usando CPF/CNPJ como PK

2010-03-04 Por tôpico Alexsander Rosa
Estou prestes a fazer uma reforma no meu ERP e uma das coisas que está me
incomodando é o cadastro de pessoas. Não pude usar CPF/CNPJ como chave
primária natural porque, conforme já foi dito aqui várias vezes, muitos
clientes diferentes usam o mesmo CNPJ, especialmente órgãos públicos. Para
dar um exemplo: temos um cliente que tem várias CENTENAS de clientes -- a
imensa maioria, escolas da rede estadual -- com o mesmo CNPJ
(92.941.681/0001-00), que segundo a Receita Federal está registrado em nome
da Secretaria da Educação do RS.

Uma possibilidade é usar uma chave composta, tipo CNPJ + chave extra onde
esta chave extra tem NULL em todas as PF e quase todas as PJ. Quando uma PJ
pertencer a mais de um cliente (órgãos públicos, universidades, etc), esta
chave extra conterá um código (numérico? texto?) que identificará cada
unidade. Para escolas, poderia ser um código tipo INEP, por exemplo. Em
universidades poderia ser algum código que identifique o setor.

Alguém tem alguma sugestão para isto?

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Ferramenta Comparação Dados Tabel as

2010-03-04 Por tôpico Alexsander Rosa
Sei de algumas que geral instruções DDL para sincronizar esquemas, seria
interessante usar para DML para sincronizar os dados -- se bem que na
maioria das vezes um DUMP/RESTORE resolve o problema. :-) Imagino que seja
algo que precise ser rodado de tempos em tempos, em produção, sem a
possibilidade de um downtime para esta atualização.

Em 3 de março de 2010 10:28, Fabrízio de Royes Mello 
fabriziome...@gmail.com escreveu:

 Pessoal,

 Alguém conhece alguma ferramenta *free* ou *gpl* para comparar os dados de
 tabelas de 2 bases de dados distintas... preciso fazer um diff dos dados
 entre tabelas que o resultado fosse instruções DML para atualização dos
 registros.

 Conheço algumas soluções proprietárias, mas antes de decidir por alguma
 aquisição gostaria de avaliar alguma alternativa gratuita e, se possível,
 open-source.

 --
 Fabrízio de Royes Mello
  Blog sobre TI: 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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Usando CPF/CNPJ como PK

2010-03-04 Por tôpico Alexsander Rosa
Sim, na verdade eu editei o texto várias vezes e este detalhe passou
despercebido. Este campo, chave_extra, ficaria com um valor tipo 0 (se for
inteiro) ou brancos (se for texto) na maioria dos casos. Mas tenho minhas
dúvidas se esta é mesmo a melhor solução, acho que no fim vai ser melhor
usar uma chave artificial, a famosa código do cliente.

Existe também o problema da replicação. Cada filial tem um servidor
(replicado) e nenhuma loja pode parar por falta de Internet ou falta de
comunicação com a Matriz. Sei que muitas empresas simplesmente param quando
isso acontece, com a tradicional explicação de que estamos sem sistema,
mas nós nunca achamos isto aceitável -- especialmente no caso das redes de
varejo. Além disso, a legislação praticamente exige que o software de PDV
emita cupons mesmo com o cabo de rede cortado.

Neste cenário, cada servidor tem suas (poucas) SEQUENCES independentes
(estão fora da replicação) e as PK de algumas tabelas são chaves compostas
que incluem a coluna id_servidor. Os clientes acabam recebendo um código
que costuma ser exibido no formato 9502/1 (código 9502 do servidor 1) e os
JOINS precisam sempre considerar isto. Não chega a ser nada desesperador,
mas nesta reforma vamos reduzir o uso de chaves artificiais ao mínimo
necessário -- como, talvez, esta tabela de pessoas.

Por enquanto, sem ter ainda me aprofundado nesta reforma (são centenas de
tabelas), acho difícil escapar de pelo menos três chaves artificiais: código
da pessoa, código do produto e número do pedido.


Em 4 de março de 2010 15:24, Osvaldo Kussama
osvaldo.kuss...@gmail.comescreveu:

 Em 4 de março de 2010 13:28, Alexsander Rosa
 alexsander.r...@gmail.com escreveu:
 
  Uma possibilidade é usar uma chave composta, tipo CNPJ + chave extra
 onde
  esta chave extra tem NULL em todas as PF e quase todas as PJ. Quando uma
 PJ
  pertencer a mais de um cliente (órgãos públicos, universidades, etc),
 esta
  chave extra conterá um código (numérico? texto?) que identificará cada
  unidade. Para escolas, poderia ser um código tipo INEP, por exemplo. Em
  universidades poderia ser algum código que identifique o setor.
 
  Alguém tem alguma sugestão para isto?


 Apenas uma observação: uma chave primária não pode conter NULL em
 nenhum dos campos que a compõe.
 Não ficou claro se quando você diz chave composta está ou não se
 referindo a chave primária.

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Usando CPF/CNPJ como PK

2010-03-04 Por tôpico Alexsander Rosa
Leandro:

Em 4 de março de 2010 16:30, Leandro DUTRA
leandro.gfc.du...@gmail.comescreveu:

 2010/3/4 Alexsander Rosa alexsander.r...@gmail.com:

  Neste cenário, cada servidor tem suas (poucas) SEQUENCES independentes
  (estão fora da replicação) e as PK de algumas tabelas são chaves
 compostas
  que incluem a coluna id_servidor. Os clientes acabam recebendo um
 código
  que costuma ser exibido no formato 9502/1 (código 9502 do servidor 1)

 Essa informação depois é replicada para outros servidores?


Sim, tudo é replicado para todos os servidores (exceto as sequences).
Provavelmente existem pessoas 9502/2, 9502/16, 9502/101, etc criadas em
momentos bem diferentes, de acordo com as datas de inauguração de cada
filial. Números baixos costumam aparecer dezenas de vezes, um para cada
filial. Por outro lado, números mais altos geralmente só aparecem nas lojas
mais antigas.

Lembrando que muitas vezes nós somos o ENÉSIMO sistema implantado e acabamos
herdando cadastros com milhares de clientes e, sempre que possível,
mantemos os códigos. Em geral, se não houver como identificar as lojas no
sistema legado, colocamos todos os cadastros importados como se tivessem
sido criados na Matriz, que quase sempre é o servidor com ID 1.

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Usando CPF/CNPJ como PK

2010-03-04 Por tôpico Alexsander Rosa
Podem me chamar de ultrapassado, mas nunca simpatizei com UUIDs.

Em 4 de março de 2010 16:43, Tarcísio Sassara
sassara.tarci...@gmail.comescreveu:

 Em 4 de março de 2010 16:00, Alexsander Rosa
 alexsander.r...@gmail.com escreveu:
  Neste cenário, cada servidor tem suas (poucas) SEQUENCES independentes
  (estão fora da replicação) e as PK de algumas tabelas são chaves
 compostas
  que incluem a coluna id_servidor. Os clientes acabam recebendo um
 código
  que costuma ser exibido no formato 9502/1 (código 9502 do servidor 1) e
 os

 Talvez seja melhor pensar em UUIDs.
 http://en.wikipedia.org/wiki/Universally_Unique_Identifier

 --
 Tarcisio F. Sassara



-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Usando CPF/CNPJ como PK

2010-03-04 Por tôpico Alexsander Rosa
Claro que não detona, são meras chaves compostas -- e com apenas DUAS
colunas. Um exemplo pior de chave composta é o da tabela dos cupons fiscais,
cuja PK tem quatro colunas (data, nº do ecf, nº do cupom e nº da loja),
todas chaves NATURAIS. Os próprios equipamentos fiscais geram estes dados.

Em 4 de março de 2010 18:26, Tarcísio Sassara
sassara.tarci...@gmail.comescreveu:

 Em 4 de março de 2010 16:53, Alexsander Rosa
 alexsander.r...@gmail.com escreveu:
  Sim, tudo é replicado para todos os servidores (exceto as sequences).
  Provavelmente existem pessoas 9502/2, 9502/16, 9502/101...

 Não detona relatórios essas duplicidades?
 Relatórios do tipo Ranking podem mostrar resultados bem diferentes do real.


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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Usando CPF/CNPJ como PK

2010-03-05 Por tôpico Alexsander Rosa
Em 4 de março de 2010 17:40, Leandro DUTRA
leandro.gfc.du...@gmail.comescreveu:

 2010/3/4 Alexsander Rosa alexsander.r...@gmail.com:
  Podem me chamar de ultrapassado, mas nunca simpatizei com UUIDs.

 Mór di quê?


Acho que as desvantagens superam as vantagens.


-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Usando CPF/CNPJ como PK

2010-03-05 Por tôpico Alexsander Rosa
Pra mim a única vantagem é poder gerar UUID fora do banco sem risco
significativo de colisão. Aliás, o fato de não haver 100% de garantia de que
não haverá JAMAIS uma colisão no longo prazo (imagine dezenas de anos em
centenas de filiais com milhares de transações por segundo) é uma
desvantagem. Qualquer probabilidade maior que 0% pode sempre acontecer -- e
Murphy nos garante que VAI acontecer. E o pior: quando houver uma colisão,
se o UUID não for UNIQUE ninguém ficará sabendo...

Outras desvantagens:
- dificulta o DEBUG (e eventuais auditorias),
Imagine ativar o log_statement = mod e acompanhar o resultado. Imagine
tentar rastrear o que um determinado usuário fez num dia e hora específicos
olhando os SQL que ele gerou no período. Sabemos que pode-se modelar a
auditoria, mas os negócios evoluem e o que se quer monitorar hoje é
diferente do que se monitorava ontem. Arquivar o SQL é uma garantia de
poder buscar coisas do passado, quando não se gravava a trilha de auditoria
que se grava hoje.

- ocupa BEM mais espaço em disco/memória que integer
Uma UUID ocupa 128 bits. Um inteiro ocupa 32 bits. Em alguns casos pode-se
usar até smallint, que ocupa 16 bits. Numa tabela que represente um
relacionamento N x N com apenas duas colunas, pode-se ter um pulo de 4 (dois
smallint) para 32 bytes (dois UUID) por tupla. Os índices também sofrem um
impacto significativo. Nunca gostei do argumento memória é barata.

- não pode ser usada em comunicação verbal.
Imagine uma atendente de call center passando uma UUID para o cliente anotar
como número da transação. Se eu tiver que usar uma sequence pra gerar este
número da transação, o uso de UUID perde todo o sentido.

Em 5 de março de 2010 10:17, Dickson S. Guedes lis...@guedesoft.netescreveu:

 Em 5 de março de 2010 09:30, Alexsander Rosa
 alexsander.r...@gmail.com escreveu:
 
  Em 4 de março de 2010 17:40, Leandro DUTRA leandro.gfc.du...@gmail.com
  escreveu:
 
  2010/3/4 Alexsander Rosa alexsander.r...@gmail.com:
   Podem me chamar de ultrapassado, mas nunca simpatizei com UUIDs.
 
  Mór di quê?
 
 
  Acho que as desvantagens superam as vantagens.

 Em sua opinião quais seriam?

 --
 Dickson S. Guedes
 mail/xmpp: gue...@guedesoft.net - skype: guediz
 http://guedesoft.net - http://www.postgresql.org.br
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Localizar determinado caracter

2010-03-09 Por tôpico Alexsander Rosa
Isso é problema de encoding. Provavelmente caracteres LATIN1 num banco UTF-8
ou vice-versa.

Em 9 de março de 2010 16:18, Danilo Gomes [PGOpen] 
danilo.go...@pgopen.com.br escreveu:

 É possível localizar determinado caracter nos registros de uma tabela?

 Exemplo: em minha tabela, os registros estão da seguinte forma: Promo��o.
 (é isso mesmo, interrogação dentro de um triângulo).

 o certo seria Promoção, ou seja, existe algum comando que eu execute e
 retorne todos os registros que contenham �.

 Agradeço desde já a todos pela colaboração.





-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Histórico de Atualizações

2010-03-09 Por tôpico Alexsander Rosa
Eu uso triggers que armazenam as colunas necessárias (no meu caso, são
valores monetários) numa tabela. Tenho colunas como datahora (timestamp),
tabela/coluna (2 x varchar); e valor anterior/novo (2 x numeric), ID do
usuário que alterou, etc. Fica uma tabela única com todas as alterações que
pode ser facilmente pesquisada.

Em 9 de março de 2010 17:22, Alipio Dantas alipiodan...@gmail.comescreveu:

 Srs.

 Preciso manter um histórico de atualizações em determinadas tabelas do
 banco, ou seja quando um registro for alterado, ser mantido também o valor
 anterior.

 Pensei em replicar os dados em uma mesma tabela, o que não é legal, a
 tabela ficaria com um volume de informações que não é acessado com
 frequencia.

 Pensei em clonar a view dentro do banco e inserir nas tabelas referentes
 as linhas atualizadas com a data de atualização. Pra isso o ideal seria uma
 triger que fizesse este procedimento quando um dado for alterado. O problema
 é que não sei por onde começar.



 Alguém poderia me indicar um caminho?

 Obrigado.



 --
 Alípio Dantas da Silva
 Secretaria de Desenvolvimento Urbano do Estado da Bahia
 Coordenação de Informações Geográficas Urbanas - CGI


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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] MAC placa de rede

2010-03-11 Por tôpico Alexsander Rosa
Anti-pirataria?

Em 11 de março de 2010 17:08, Marcelo Costa marcelojsco...@gmail.comescreveu:



 2010/3/11 Antonio Cesar cgce...@bol.com.br

 Pessoal o postgresql possui um função que retorne o MAC da placa de do
 servidor?



 hãm (como diria o Leo)



 --
 Marcelo Costa
 www.marcelocosta.net
 -
 “You can't always get what you want”,

 Doctor House in apology to Mike Jagger

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Distancia entre dusa cidade

2010-06-18 Por tôpico Alexsander Rosa
Se você aplicar um Pitágoras terá um ângulo na hipotenusa; converta 
este ângulo em km, de acordo com a curvatura da Terra, e terá a 
distância em km.


Antonio Cesar escreveu:

Boa terde pessoal!

Estou precisando calcular a distancia emtre duas cidade com base em 
longitude e latitude alguem tem uma funçao.

--

Atenciosamente,


  **Cesar** Soares**
  Programador  (75)  8839-2381




--
Alexsander da Rosa
Twitter: @alexrosa


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


Re: [pgbr-geral] Número de conexões

2010-06-22 Por tôpico Alexsander Rosa
Acho melhor usar client_addr para contar os usuários, porque se um mesmo 
usuário (no mesmo IP) abrir 4 conexões serão 4 procpids diferentes com o 
mesmo client_addr.


MarceloG escreveu:

Olá amiguinho,
Se você usa diversos usuários para conexão, veja isso:

SELECT DISTINCT(usename) FROM pg_stat_activity WHERE datname = 
'*minha_base_de_dados*'


Se você usa usuário único para diversas conexões, veja isso:

SELECT COUNT(procpid) FROM pg_stat_activity WHERE datname = 
'*minha_base_de_dados*'


MarceloG!

Em 22/06/2010 11:57, Fabrízio de Royes Mello escreveu:


Em 22 de junho de 2010 10:30, Jesus Rodrigues 
jesusrodrigu...@gmail.com mailto:jesusrodrigu...@gmail.com escreveu:



Logicamente, alterei para o nome da minha base de dados.


Perfeito...
 


Refazendo a pergunta utilizando SELECT count(*) FROM
pg_stat_activity WHERE datname = '*minha_base_de_dados*' obtive
mais de uma conexão. Entretanto, havia apenas um cliente sql
manager conectado no banco. Nesse caso era para ter retornado
apenas 1 ou estou enganado?


Será que esse seu cliente sql manager não abre mais de uma conexão 
com a base de dados??? 


Minha sugestão seria:

1) Fechar o teu SQL Manager e qualquer aplicacao que realize conexao 
com esse seu backend

2) Utilizar o psql para conectar com o backend e rodar a query em questao
 
Se mesmo assim existir mais de uma conexão com a tua base de dados 
então provavelmente elas estão perdidas...


Cordialmente,

--
Fabrízio de Royes Mello
 Blog sobre TI: http://fabriziomello.blogspot.com


--
Alexsander da Rosa
Twitter: @alexrosa


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


Re: [pgbr-geral] Divisão de módulos do ERP em Esqu emas...

2010-07-02 Por tôpico Alexsander Rosa
Pode haver um esquema geral que tem as tabelas básicas e essenciais, por
exemplo.
Na maioria das vezes dá pra identificar estas tabelas, os demais se olha
caso a caso.
Usando junto com o search_path conforme lembrou o Fabrizio, pode ficar
bom.

Em 1 de julho de 2010 20:24, Mozart Hasse mozart.ha...@usa.net escreveu:

 Olá Olavo,

 A divisão em schemas parece interessante porque realmente divide as tabelas
 em grupos. À medida que seu modelo cresce (e nem precisa chegar nas 2000
 tabelas, com 1000 já se tem problemas), o que costuma aparecer são tabelas
 compartilhadas por diversos módulos. Não importa em que módulo você as
 coloque, sempre terá quem interprete que ela deveria estar em outro lugar.
 Pior ainda quando mudam seus requisitos e começam a sobrar motivos para
 mudá-la de um módulo para o outro, gerando um retrabalho absurdo por um
 benefício questionável.
 Mudar a tabela de lugar em visões de modelo dentro da sua ferramenta de
 modelagem, contudo, é uma tarefa simples e sem consequências mais sérias,
 pois você poderá colocar cópias dela em quantos modelos convier.
 Devido a isso, sou mais favorável a largar mão dessa história de misturar
 schema com documentação e colocar todas as tabelas num schema só. Facilita
 enormemente o desenvolvimento e montagem das consultas, além de facilitar
 *muito* a manutenção.
 Talvez alguém cogite a idéia de controlar a segurança dos módulos por
 esquema, porém acho pouco provável que um esquema assim atenda a qualquer
 cliente por causa das tabelas compartilhadas e potenciais problemas quando
 uma tabela mudar de módulo.

 Minha sugestão, portanto, é: use um schema só e seja feliz.

 Atenciosamente,

 Mozart Hasse



 From: C.P.D. - T.I. MoRHena c...@morenarh.com.br
 To: pgbr-geral@listas.postgresql.org.br

 Estou desenvolvendo um ERP e vou comercializá-lo em módulos. Em
 virtude de disponibilizar em módulos, gostaria de separar as tabelas do
 banco de dados por módulo. Seria adequado o uso de esquema neste caso ?
 Ou seja no banco de dados teria esquema como: vendas, faturamento,
 financeiro e para cada esquema suas respectivas tabelas. É uma boa
 prática usar deste artifício ?

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Replicação Multi-Master

2010-07-08 Por tôpico Alexsander Rosa
Eu desenvolvi uma replicação que está sendo usada pelos meus clientes (ex:
www.casadopapel.com.br), mas meu ERP foi projetado levando isto em
consideração. Há tabelas globais onde apenas um servidor pode gravar -- a
aplicação não deixa os usuários das lojas gravarem em tabelas como
alíquotas de ICMS ou lista de UF. As demais são tabelas locais e todas
possuem como parte da chave uma coluna número da loja; por exemplo o
pedido 1234 feito na loja 7 fica com número 1234/7.

Meu ERP usa um framework de persistência que grava numa tabela separada
todos os comandos INSERT, UPDATE e DELETE; um processo que roda no CRON das
lojas envia estes comandos para o servidor central (a topologia é estrela)
de 1 em 1 minuto. O servidor central, por sua vez, envia para todas as lojas
todas as atualizações que recebeu, também minuto a minuto.

Em 8 de julho de 2010 11:35, Lima - Lojas Fricke Ltda
l...@fricke.com.brescreveu:

 Bom dia pessoal,

 Estamos implementando uma replicação (sincronização) de bases com o
 Postgres,
 Testamos o Pgpool mas ele não está funcionando legal com nossa
 aplicação, tem outro produto que faça isso melhor?

 --
 Lucas Lima

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Replicação Multi-Master

2010-07-08 Por tôpico Alexsander Rosa
Centralizar = parar de vender quando a rede cair? Nem pensar. Sei que tem
gente que acha aceitável deixar os funcionários de braços cruzados
informando aos clientes o sistema está fora do ar, mas no comércio o furo
é mais embaixo. Em uma das lojas, por exemplo, os FIOS de cobre dos postes
foram roubados várias vezes seguidas, logo após a reposição. Somente quando
a companhia telefônica colocou fibra ótica é que a rede conseguiu ficar mais
de alguns dias online.

Se a replicação multi-master tiver sido prevista desde o início, a
integridade pode ser mantida dentro de alguma tolerância se algumas
restrições forem usadas. Existem várias coisas que a aplicação não permite
fazer e não há usuários rodando pgAdmin direto nas bases, por exemplo. Não
dá pra pensar que uma replicação multi-master vai estar com os dados 100%
iguais em todos os servidores ao mesmo tempo, é óbvio que uma modificação
feita numa filial pode levar 2 ou 3 minutos para chegar em outra.

Em 8 de julho de 2010 14:03, fabi...@wolaksistemas.com.br escreveu:

 Meu Deus, me deu 3 tipos de arrepio ao ler essa descrição.

 Meu amigo, você já pensou em centralizar essa sua aplicação?

 Você tem muitos pontos de falha, só por curiosidade como fica a
 integridade do seu sistema?

 Att,
 Fabiano Machado Dias

  Eu desenvolvi uma replicação que está sendo usada pelos meus clientes
 (ex:
  www.casadopapel.com.br), mas meu ERP foi projetado levando isto em
  consideração. Há tabelas globais onde apenas um servidor pode gravar --
  a
  aplicação não deixa os usuários das lojas gravarem em tabelas como
  alíquotas de ICMS ou lista de UF. As demais são tabelas locais e
  todas
  possuem como parte da chave uma coluna número da loja; por exemplo o
  pedido 1234 feito na loja 7 fica com número 1234/7.
 
  Meu ERP usa um framework de persistência que grava numa tabela separada
  todos os comandos INSERT, UPDATE e DELETE; um processo que roda no CRON
  das
  lojas envia estes comandos para o servidor central (a topologia é
 estrela)
  de 1 em 1 minuto. O servidor central, por sua vez, envia para todas as
  lojas
  todas as atualizações que recebeu, também minuto a minuto.
 


-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Replicação Multi-Master

2010-07-08 Por tôpico Alexsander Rosa
Sabia que a legislação exige que os caixas com ECF continuem emitindo cupons
mesmo com a rede LOCAL derrubada? Se você cortar com um alicate o cabo de
rede, o PDV tem que continuar funcionando. Isto existe para evitar que
sonegadores parem de emitir cupons mas sigam vendendo, com a desculpa de que
o sistema está fora do ar. A integridade vai pro espaço por exigência da
legislação... procure no Google sobre coisas como PAF, ECF, TEF, etc.

Todas as grandes redes de supermercados possuem bancos de dados locais, um
em cada caixa. Alguns são MySQL, outros são arquivos DBF, mas todos -- por
exigência legal -- possuem dados locais. Neste contexto, pensar em hospedar
em Data Center não faz o menor sentido: o Walmart, por exemplo, recebe
dados das filiais em nivel GLOBAL de hora em hora. Para uma rede menor, um
atraso de um minuto está de bom tamanho.

Em 8 de julho de 2010 15:09, Ralf Schlindwein ralfoa...@gmail.comescreveu:

 Faça uma relação hospedar em um DataCenter confiável X valor funcionários
 parados.
 Hospede em um DataCenter e faça um contrato de gerenciamento de Banco e
 Servidor e fique feliz somente gerenciando a sua TI.





 Em 8 de julho de 2010 15:02, Alexsander Rosa 
 alexsander.r...@gmail.comescreveu:

 Centralizar = parar de vender quando a rede cair? Nem pensar. Sei que tem
 gente que acha aceitável deixar os funcionários de braços cruzados
 informando aos clientes o sistema está fora do ar, mas no comércio o furo
 é mais embaixo. Em uma das lojas, por exemplo, os FIOS de cobre dos postes
 foram roubados várias vezes seguidas, logo após a reposição. Somente quando
 a companhia telefônica colocou fibra ótica é que a rede conseguiu ficar mais
 de alguns dias online.

 Se a replicação multi-master tiver sido prevista desde o início, a
 integridade pode ser mantida dentro de alguma tolerância se algumas
 restrições forem usadas. Existem várias coisas que a aplicação não permite
 fazer e não há usuários rodando pgAdmin direto nas bases, por exemplo. Não
 dá pra pensar que uma replicação multi-master vai estar com os dados 100%
 iguais em todos os servidores ao mesmo tempo, é óbvio que uma modificação
 feita numa filial pode levar 2 ou 3 minutos para chegar em outra.

 Em 8 de julho de 2010 14:03, fabi...@wolaksistemas.com.br escreveu:

 Meu Deus, me deu 3 tipos de arrepio ao ler essa descrição.

 Meu amigo, você já pensou em centralizar essa sua aplicação?

 Você tem muitos pontos de falha, só por curiosidade como fica a
 integridade do seu sistema?

 Att,
 Fabiano Machado Dias


-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Replicação Multi-Master

2010-07-08 Por tôpico Alexsander Rosa
Pode dar um exemplo dos muitos pontos de falha que você mencionou? Eu já
disse: não dá pra pensar que uma replicação multi-master vai estar com os
dados 100% iguais em todos os servidores ao mesmo tempo, é óbvio que uma
modificação feita numa filial pode levar 2 ou 3 minutos para chegar em
outra.

Em 8 de julho de 2010 17:15, fabi...@wolaksistemas.com.br escreveu:


 PDV é uma coisa, quem trabalha com ERP sabe que os caixas devem rodar
 independente. O que me referi foi a forma que você implementou o sistema.

 Att,
 Fabiano Machado Dias




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Replicação Multi-Master

2010-07-09 Por tôpico Alexsander Rosa
Vamos por partes.

Em 8 de julho de 2010 20:51, fabi...@wolaksistemas.com.br escreveu:

 Treços do teu email:

 Há tabelas globais onde apenas um servidor pode gravar - Se esse
 servidor cair ??? Ou seja você centralizou, qual a diferença de colocar a
 aplicação em um data center, ou seja se você depende de um central não há
 porque ter as locais afinal não vai funcionar sem as globais não é? Ou
 entendi errado?


Você entendeu errado. Estas tabelas globais são replicadas normalmente,
mas as filiais não têm permissão de escrita em suas cópias. São tabelas cuja
manutenção é centralizada -- como por exemplo, estado da federação. Se o
Congresso criar um novo estado, digamos o Pará do Sul (PS), somente um
usuário logado no servidor central (e devidamente autorizado) vai poder
criar este registro. Esta tabela não tem uma coluna id do servidor como
parte da chave primária, que no caso seria obviamente a sigla do estado,
PS. Se a empresa começar a aceitar pagamentos em tampinhas de garrafa, o
registro tampinha de garrafa com sigla e chave primária TPG poderá ser
criada apenas na central.



 Meu ERP usa um framework de persistência - Opção de cada desenvolver, eu
 por experiência recomendo passar longe desse tipo de coisa. Tomara que não
 acontece com você mas o dia que resolver dar pau, reze.


Eu mesmo desenvolvi o framework de persistência, além de uma ferramenta de
engenharia reversa e um gerador de código. O framework está bastante
otimizado (afinal, o código tem mais de 5 anos de uso em produção) e os
comandos gerados por ele foram bem depurados, não há pesquisas
desnecessárias nem exigência de OID. Ele atende perfeitamente a imensa
maioria dos casos, mas para aquelas situações onde um SQL feito à mão é
melhor existe suporte a views e stored procedures.


 grava numa tabela separada todos os comandos INSERT, UPDATE e DELETE -
 Já citado antes a questão da integridade, mas como você falou dependendo
 do tipo de aplicação pode ser tolerável, mas não no meu ponto de vista.
 Hoje já temos infra suficiente para manter um link decente e se a desculpa
 for a rede que pode cair, vide a NFe e o SPED.


Ainda não vi no mercado links perfeitos. Por outro lado já vi um Centro de
Distribuição ficar mais de 24h sem Internet porque os fios de cobre de todos
os links foram roubados. Não vejo como um servidor centralizado pode ser
melhor, não imagino explicar para o cliente que um processo vital como o
recebimento de mercadorias em uma filial tem que ficar parado, deixando
faltar produtos na prateleira, porque a rede está fora do ar. No caso da NFe
é diferente: o seu BD está funcionando, seu processo continua, apenas o
servidor da Fazenda que está indisponível. Imagine se cada vez que fosse
preciso emitir uma NFe em contingência, toda a empresa do cliente parasse.
Isso é o que acontece quando você roda aplicações vitais em data centers
remotos.


 um processo que roda no CRON das lojas envia estes comandos para o
 servidor central - No meu ponto de vista não é uma solução elegante.

 Elegância é subjetiva.


 O servidor central, por sua vez, envia para todas as lojas todas as
 atualizações que recebeu, também minuto a minuto. - Você centraliza,
 distribui e centraliza novamente. Se o teu servidor precisa mandar as
 atualização para as filiais porque não centraliza tudo de uma vez e deixa
 só o PDV de fora.

 O objetivo é manter os servidores idênticos: poucos minutos depois do final
do expediente, todos estão iguais. Além disso, uma filial pode querer saber
onde tem alguma mercadoria: por exemplo, pode chegar um cliente pedindo uma
coisa que está em falta naquela loja mas tem disponível em outra.



 São apenas ponderações baseado no email que você mandou, não estou dizendo
 que está errado, apenas que pode ser melhor e mais confiável.

 Abraço,
 Fabiano Machado Dias


 Agradeço seus comentários.



  Pode dar um exemplo dos muitos pontos de falha que você mencionou? Eu
 já
  disse: não dá pra pensar que uma replicação multi-master vai estar com os
  dados 100% iguais em todos os servidores ao mesmo tempo, é óbvio que uma
  modificação feita numa filial pode levar 2 ou 3 minutos para chegar em
  outra.
 


-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Delete *

2010-07-22 Por tôpico Alexsander Rosa
Se o usuário tem username/senha para logar direto no banco, tendo GRANT
suficiente ele pode dar até um DROP DATABASE. Acho muito perigoso deixar
usuários com permissão para mexer direto no banco.

Em 22 de julho de 2010 11:38, JotaComm jota.c...@gmail.com escreveu:

 Olá,

 Em 22 de julho de 2010 11:25, Candido Vieira da Silva Neto cvieira.br@
 gmail.com escreveu:

 Vinicius, existe o controle de transacoes para evitar 'acidentes'.

 BEGIN e COMMIT/SAVEPOINT/ROLLBACK

 On 7/22/10, Vinicius Marconi Vasconcelos Berni
 vinicius.marc...@gmail.com wrote:
  Não permitir que seja executado delete na base de dados sem fornecer
  clausula where,  quero fazer isto para evitar 'acidentes'.
 
  Ex.: delete from pessoa -  Esta query não deve ser permitida.
 
 delete from pessoa where id=2 - Esta será permitida


 Uma pergunta. As exclusões serão feitas pela aplicação ou o usuário pode ir
 manualmente na base e executar um comando delete em qualquer tabela?

 Que tal criar uma função simples para fazer a deleção dos usuários se este
 procedimento for executado pela aplicação, com por exemplo:

 CREATE OR REPLACE FUNCTION exclusao(INTEGER)

 RETURNS BOOLEAN AS $$

 BEGIN

 DELETE FROM tabela WHERE campo_chave=$1;

 IF FOUND THEN

 RAISE NOTICE 'O registro % foi excluido.',$1;

 RETURN TRUE;

 END IF;

 RAISE NOTICE 'O registro % não foi encontrado.',$1;

 RETURN FALSE;

 END;

 $$ LANGUAGE PLPGSQL RETURNS NULL ON NULL INPUT;


  
 
 
  Em 22 de julho de 2010 11:12, JotaComm jota.c...@gmail.com escreveu:
 
  Olá,
 
  Em 22 de julho de 2010 09:31, Vinicius Marconi Vasconcelos Berni 
  vinicius.marc...@gmail.com escreveu:
 
  Olá.
 
  Existe uma maneira de restringir 'delete' sem cláusula 'where' ?
 
 
  Como assim? O que exatamente você deseja?
 
 
  Desde já agradeço. No aguardo.
 
  --
  Ass.:
Vinicius Marconi Vasconcelos  Berni
 51 - 96608087
 51 - 32482071
 
  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
 
 
 
  []s
  --
  JotaComm
  http://jotacomm.wordpress.com
 
  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
 
 
 
 
  --
  Ass.:
Vinicius Marconi Vasconcelos  Berni
 51 - 96608087
 51 - 32482071
 
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



 []s
 --
 JotaComm
 http://jotacomm.wordpress.com

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Como dizer ao banco que a string é o nome da coluna

2010-07-26 Por tôpico Alexsander Rosa
Tem certeza que a modelagem está correta?

Em 26 de julho de 2010 11:52, Heloisa Fernanda helois...@yahoo.com.brescreveu:

 Bom dia!

 Estou precisando de uma ajuda no seguinte:

 Tenho uma tabela onde eu cadastro as perguntas para questionarios
 parametrizaveis--

 CREATE TABLE base_question
 (
  question_id serial NOT NULL,
  question text);

 Tenho outra tabela que é gerada automaticamente e guarda as respostas:

 CREATE TABLE ques_69_social--
 (
  c377 smallint,
  c585 integer,
  c384 character varying(15));

 Onde por exemplo: c377 corresponde a 'c' + question_id (377) da tabela
 base_question.

 Preciso executar o seguinte SQL:

 SELECT
question_id,
question,
(SELECT ('c'||a.question_id) FROM ques_69_social)
 FROM
base_question a;

 Não sei como dizer ao postgres para entender ('c'||a.question_id) como nome
 da coluna.

 Alguem tem ideia de como fazer isso?



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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Consulta lenta

2010-07-28 Por tôpico Alexsander Rosa
Serve um SELECT pg_relation_size('history') / tamanho do registro ?

Em 28 de julho de 2010 15:33, Monica Ferrari Villarino
moni...@stf.jus.brescreveu:

  Olá!



 Será que é possível otimizar a seguinte consulta, executada de hora em hora
 no banco:



 select count(*) from history;



 Essa consulta costuma ter uma duração que varia de  32000.000 ms a
 62262.751 ms  conforme o horário em que é executada.



 A tabela history possui em média *87 milhões* de registros.

 É uma tabela que sofre muito insert/update/delete.

 Faço analyze e reindexação semanalmente.



 Estou utilizando postgresql 8.4.4



 A tabela tem a seguinte estrutura e índice:



 CREATE TABLE history

 (

   itemid bigint NOT NULL DEFAULT (0)::bigint,

   clock integer NOT NULL DEFAULT 0,

   value numeric(16,4) NOT NULL DEFAULT 0.

 )

 WITH (OIDS=TRUE);



 -- Index: history_1



 CREATE INDEX history_1  ON.history

   USING btree  (itemid, clock);





 *Mônica***





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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
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á para armazenar arquivos XML?

2010-08-23 Por tôpico Alexsander Rosa
Em outras palavras: se for preciso trabalhar com as informações dentro deste
XML (acessar, alterar, etc) então o melhor é usar o tipo de dados XML. Se o
objetivo é apenas armazenar para depois enviar para algum lugar, sem fazer
processamento algum, um tipo binário ou text pode servir. Em teoria, o ideal
seria usar o tipo nativo mesmo assim, mas pode ser que o XML esteja
formatado de alguma maneira não padronizada que uma outra aplicação pode
estar esperando, ou algo do gênero. Nem sempre o IDEAL da teoria serve para
a realidade -- lembram dos CNPJ dos órgãos públicos?

Em 23 de agosto de 2010 15:16, Euler Taveira de Oliveira
eu...@timbira.comescreveu:

 Celso escreveu:
  eu gravo em um campo do tipo Text.
 
 O tipo de dado xml foi criado exatamente para este propósito; se é
 documento
 xml então utilize o tipo xml.


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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] [OFF] Verdades pouco conhecidas s obre programação

2010-08-25 Por tôpico Alexsander Rosa
http://dotmac.rationalmind.net/2010/08/some-lesser-known-truths-about-programming/



My experience as a programmer  has taught me a few things about writing
software. Here are some things that people might find surprising about
writing code:

   - A programmer spends about 10-20% of his time writing code, and most
   programmers write about 10-12 lines of code per
dayhttp://stackoverflow.com/questions/966800/mythical-man-month-10-lines-per-developer-day-how-close-on-large-projectsthat
goes into the final product, regardless of their skill level. Good
   programmers spend much of the other 90% thinking, researching, and
   experimenting to find the best design. Bad programmers spend much of that
   90% debugging code by randomly making changes and seeing if they work.
   “A great lathe operator commands several times the wage of an average
   lathe operator, but a great writer of software code is worth 10,000 times
   the price of an average software writer.” –Bill Gates
   - A good programmer is ten times more productive than an average
   programmer. A great programmer is 20-100 times more productive than the
   average. This is not an
exaggerationhttp://www.devtopics.com/programmer-productivity-the-tenfinity-factor/–
studies since the 1960′s have consistently shown this. A bad
programmer is
   not just unproductive – he will not only not get any work done, but create a
   lot of work and headaches for others to fix.
   - Great programmers spend very little of their time writing code – at
   least code that ends up in the final product. Programmers who spend much of
   their time writing code are too lazy, too ignorant, or too arrogant to find
   existing solutions to old problems. Great programmers are masters at
   recognizing and reusing common patterns. Good programmers are not afraid to
   refactor (rewrite) their code constantly to reach the ideal design. Bad
   programmers write code which lacks conceptual integrity, non-redundancy,
   hierarchy, and patterns, and so is very difficult to refactor. It’s easier
   to throw away bad code and start over than to change it.
   - Software obeys the laws of entropy, like everything else. Continuous
   change leads to software rot, which erodes the conceptual integrity of the
   original design. Software rot is unavoidable, but programmers who fail to
   take conceptual integrity into consideration create software that rots so so
   fast that it becomes worthless before it is even completed. Entropic failure
   of conceptual integrity is probably the most common reason for software
   project failure. (The second most common reason is delivering something
   other than what the customer wanted.) Software rot slows down progress
   exponentially, so many projects face exploding timelines and budgets before
   they are killed.
   - A 2004 study found
thathttp://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standishmost
software projects (51%) will fail in a critical aspect, and 15% will
   fail totally. This is an improvement since 1994, when 31% failed.
   - Although most software is made by teams, it is not a democratic
   activity. Usually, just one person is responsible for the design, and the
   rest of the team fills in the details.
   - Programming is hard work. It’s an intense mental activity. Good
   programmers think about their work 24/7. They write their most important
   code in the shower and in their dreams. Because the most important work is
   done away from a keyboard, software projects cannot be accelerated by
   spending more time in the office or adding more people to a
projecthttp://en.wikipedia.org/wiki/Brooks%27s_law
   .



-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: RES: RES: Lentidão em se rvidor de dados

2010-08-25 Por tôpico Alexsander Rosa
Sua CPU está desacelerando para se auto-proteger de um super aquecimento.
Verifique os coolers e a refrigeração em geral.

Em 25 de agosto de 2010 18:05, marlon david de souza
mar...@sysmo.com.brescreveu:

  No *dmesg* achei estranho a seguinte mensagem:



 *temperature above threshold. cpu clock throttled*



 Essa mensagem dá em vários núcleos.

 Não sei dizer se isso é normal acontecer.



 *De:* pgbr-geral-boun...@listas.postgresql.org.br [mailto:
 pgbr-geral-boun...@listas.postgresql.org.br] *Em nome de *Aldrey Galindo
 *Enviada em:* quarta-feira, 25 de agosto de 2010 17:21
 *Para:* Comunidade PostgreSQL Brasileira
 *Assunto:* Re: [pgbr-geral] RES: RES: Lentidão em servidor de dados



 Marlon,

Nos logs do Banco não mostra nada?
Em geral no Linux, quando é erro de hardware um 'dmesg' já mostra algo.

 Abraços,
 Aldrey Galindo





-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] ALTER SEQUENCE foo START no 8.3.11 - bug?

2010-08-26 Por tôpico Alexsander Rosa
O PostgreSQL 8.4 suporta os comandos ALTER SEQUENCE ... START e RESTART:
http://www.postgresql.org/docs/8.4/static/sql-altersequence.html

O PostgreSQL 8.3 tem apenas o RESTART:
http://www.postgresql.org/docs/8.3/static/sql-altersequence.html

Em teoria, um comando ALTER SEQUENCE foo START no 8.3.11 deveria dar erro
de sintaxe ou coisa parecida, certo? No entanto o servidor 8.3.11 não
apenas ACEITOU o comando que não consta do manual, mas EXECUTOU ERRADO.
Aparentemente ele interpretou como um RESTART e reiniciou a sequence! Isto
não seria um bug?

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ALTER SEQUENCE foo START no 8.3.11 - bug?

2010-08-26 Por tôpico Alexsander Rosa
Conversando no canal #postgresql eu descobri que a versão 8.3 tem, sim, o
START -- então aparentemente isto é um BUG mesmo. A documentação online do
8.3 não mostra o comando, mas ele é suportado. Talvez por isto ninguém tenha
visto ainda este bug. Estou conversando com o pessoal pra ver se faço um bug
report, mas fica o recado.

Em 26 de agosto de 2010 15:58, Alexsander Rosa
alexsander.r...@gmail.comescreveu:

 O PostgreSQL 8.4 suporta os comandos ALTER SEQUENCE ... START e RESTART:
 http://www.postgresql.org/docs/8.4/static/sql-altersequence.html

 O PostgreSQL 8.3 tem apenas o RESTART:
 http://www.postgresql.org/docs/8.3/static/sql-altersequence.html

 Em teoria, um comando ALTER SEQUENCE foo START no 8.3.11 deveria dar erro
 de sintaxe ou coisa parecida, certo? No entanto o servidor 8.3.11 não
 apenas ACEITOU o comando que não consta do manual, mas EXECUTOU ERRADO.
 Aparentemente ele interpretou como um RESTART e reiniciou a sequence! Isto
 não seria um bug?

 --
 Atenciosamente,
 Alexsander da Rosa
 Linux User #113925

 Extremismo na defesa da liberdade não é defeito.
 Moderação na busca por justiça não é virtude.
 -- Barry Goldwater




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ALTER SEQUENCE foo START no 8.3.11 - bug?

2010-08-27 Por tôpico Alexsander Rosa
Se você reparar, o START mudou o valor da sequence, o que não deveria ter
acontecido.

Em 26 de agosto de 2010 23:20, Marcelo Costa marcelojsco...@gmail.comescreveu:



 2010/8/26 Alexsander Rosa alexsander.r...@gmail.com

 Conversando no canal #postgresql eu descobri que a versão 8.3 tem, sim, o
 START -- então aparentemente isto é um BUG mesmo. A documentação online do
 8.3 não mostra o comando, mas ele é suportado. Talvez por isto ninguém tenha
 visto ainda este bug. Estou conversando com o pessoal pra ver se faço um bug
 report, mas fica o recado.


 Não vi o BUG que vc relatou a única coisa que detectei é que o manual não
 cita o START na versão 8.3.

 Testei num 8.3.9 e funcionou normalmente

 # create table teste (id serial, nome varchar(50), data_nascimento date);
 NOTICE:  CREATE TABLE will create implicit sequence teste_id_seq for
 serial column teste.id
 CREATE TABLE


 # select * from teste_id_seq;
  sequence_name | last_value | increment_by |  max_value  |
 min_value | cache_value | log_cnt | is_cycled | is_called

 ---++--+-+---+-+-+---+---
  teste_id_seq  |  1 |1 | 9223372036854775807 |
 1 |   1 |   1 | f | f
 (1 row)

 # alter SEQUENCE teste_id_seq start 2000;
 ALTER SEQUENCE

 # select * from teste_id_seq;
  sequence_name | last_value | increment_by |  max_value  |
 min_value | cache_value | log_cnt | is_cycled | is_called

 ---++--+-+---+-+-+---+---
  teste_id_seq  |   2000 |1 | 9223372036854775807 |
 1 |   1 |   1 | f | f
 (1 row)


 # alter SEQUENCE teste_id_seq restart 1;
 ALTER SEQUENCE

 # select * from teste_id_seq;
  sequence_name | last_value | increment_by |  max_value  |
 min_value | cache_value | log_cnt | is_cycled | is_called

 ---++--+-+---+-+-+---+---
  teste_id_seq  |  1 |1 | 9223372036854775807 |
 1 |   1 |   1 | f | f
 (1 row)

 --
 Marcelo Costa


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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ALTER SEQUENCE foo START no 8.3.11 - bug?

2010-08-27 Por tôpico Alexsander Rosa
Explicando em mais detalhes:

Na versão 8.3 o comando ALTER SEQUENCE tem uma cláusula não-documentada
START que é, na verdade, apenas um alias para RESTART. Ambos exigem um
parâmetro, que é o número para o qual a sequence será reiniciada, e
portanto equivalem a um SELECT setval('foo', valor). Cabe lembrar que a
documentação da versão 8.3 [1] não menciona o START.

Na versão 8.4 isto foi modificado: a cláusula START do ALTER SEQUENCE passou
a modificar o valor do START WITH da sequence, ou seja, o valor que a
sequence vai assumir se for executado um RESTART sem parâmetros (o
parâmetro, que era obrigatório na 8.3, é opcional na 8.4). Este comando,
conforme a documentação da versão 8.4 [2], não modifica o valor da sequence,
apenas configura um futuro RESTART da mesma.

Eu descobri isto rodando um ALTER SEQUENCE ... START em vários servidores
replicados (com versões 8.4 e 8.3), para deixar as bases 100% iguais. Eu
achava que nos servidores 8.3, onde segundo a documentação o START não
existe, daria apenas uma mensagem de erro. Fiquei surpreso ao ver que o
START é um alias para RESTART.

Na minha opinião este comportamento da 8.3 é um bug -- talvez um bug
conhecido. Aparentemente o START WITH está sendo interpretado como RESTART
WITH por engano.

[1] http://www.postgresql.org/docs/8.3/static/sql-altersequence.html
[2] http://www.postgresql.org/docs/8.4/static/sql-altersequence.html

Em 27 de agosto de 2010 10:12, Alexsander Rosa
alexsander.r...@gmail.comescreveu:

 Se você reparar, o START mudou o valor da sequence, o que não deveria ter
 acontecido.

 Em 26 de agosto de 2010 23:20, Marcelo Costa 
 marcelojsco...@gmail.comescreveu:



 2010/8/26 Alexsander Rosa alexsander.r...@gmail.com

 Conversando no canal #postgresql eu descobri que a versão 8.3 tem, sim, o
 START -- então aparentemente isto é um BUG mesmo. A documentação online do
 8.3 não mostra o comando, mas ele é suportado. Talvez por isto ninguém tenha
 visto ainda este bug. Estou conversando com o pessoal pra ver se faço um bug
 report, mas fica o recado.


 Não vi o BUG que vc relatou a única coisa que detectei é que o manual não
 cita o START na versão 8.3.

 Testei num 8.3.9 e funcionou normalmente

 # create table teste (id serial, nome varchar(50), data_nascimento date);
 NOTICE:  CREATE TABLE will create implicit sequence teste_id_seq for
 serial column teste.id
 CREATE TABLE


 # select * from teste_id_seq;
  sequence_name | last_value | increment_by |  max_value  |
 min_value | cache_value | log_cnt | is_cycled | is_called

 ---++--+-+---+-+-+---+---
  teste_id_seq  |  1 |1 | 9223372036854775807 |
 1 |   1 |   1 | f | f
 (1 row)

 # alter SEQUENCE teste_id_seq start 2000;
 ALTER SEQUENCE

 # select * from teste_id_seq;
  sequence_name | last_value | increment_by |  max_value  |
 min_value | cache_value | log_cnt | is_cycled | is_called

 ---++--+-+---+-+-+---+---
  teste_id_seq  |   2000 |1 | 9223372036854775807 |
 1 |   1 |   1 | f | f
 (1 row)


 # alter SEQUENCE teste_id_seq restart 1;
 ALTER SEQUENCE

 # select * from teste_id_seq;
  sequence_name | last_value | increment_by |  max_value  |
 min_value | cache_value | log_cnt | is_cycled | is_called

 ---++--+-+---+-+-+---+---
  teste_id_seq  |  1 |1 | 9223372036854775807 |
 1 |   1 |   1 | f | f
 (1 row)

 --
 Marcelo Costa


-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Como usar o pgcrypto

2010-08-27 Por tôpico Alexsander Rosa
Lembrando que o md5 não criptografa dados, apenas faz um digest deles.

Em 27 de agosto de 2010 12:18, JotaComm jota.c...@gmail.com escreveu:

 Olá,

 Em 27 de agosto de 2010 12:10, Beto Lima betol...@gmail.com escreveu:

 Olá, alguém saberia dizer como usar o pgcrypto?
 A intenção é gravar dados criptografados em uma tabela.
 Ou teria alguma outra função direta no banco?


 Depende muito, por exemplo, o PostgreSQL tem a função md5 por exemplo para
 criptografar os dados.

 Exemplo:

 postgres=# SELECT md5('teste');
md5
 --
  698dc19d489c4e4db73e28a713eab07b
 (1 row)



 Grato
 Beto Lima

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



 []s
 --
 JotaComm
 http://jotacomm.wordpress.com

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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ALTER SEQUENCE foo START no 8.3.11 - bug?

2010-08-27 Por tôpico Alexsander Rosa
Comentário do Tom Lane sobre o problema:
http://archives.postgresql.org/pgsql-bugs/2010-08/msg00349.php

-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ALTER SEQUENCE foo START no 8.3.11 - bug?

2010-08-31 Por tôpico Alexsander Rosa
Só eu achei que isto é um bug -- e perigoso?

- Se você der um ALTER SEQUENCE ... START N num servidor 8.4 o valor da
sequence NÃO é alterado. Este comando apenas altera o valor inicial para o
qual a sequence será resetada se for dado um RESTART sem parâmetros.

- Se você der um ALTER SEQUENCE ... START N num servidor 8.x (com x  4), o
valor é ALTERADO !!! Por um erro de implementação, o servidor vai executar
um RESTART, resetando a sequence para o valor informado. Esta cláusula não
existe nas versões 8.x antes da 8.4, mas ao invés do comando dar um ERRO ele
executa OUTRO comando!!!

Em 27 de agosto de 2010 12:27, Alexsander Rosa
alexsander.r...@gmail.comescreveu:

 Comentário do Tom Lane sobre o problema:
 http://archives.postgresql.org/pgsql-bugs/2010-08/msg00349.php


-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Somar horas tendo somente uma coluna

2010-09-01 Por tôpico Alexsander Rosa
Poderia ser uma diferença entre um max() e um min() numa subquery.

Em 1 de setembro de 2010 15:41, Fabrízio de Royes Mello 
fabriziome...@gmail.com escreveu:


 Em 1 de setembro de 2010 15:31, Victor Hugo vh.cleme...@gmail.comescreveu:


 Vc quer diminuir usando função de agregação SUM ??? SUM é para somar...

 é isso mesmo ??? Se não for, resolva com a query abaixo

 SELECT SUM(EXTRACT (minutes from data_sessao))
 FROM horas where id_usuario = 4

 aí no caso ele irá extrair os minutos do primeiro valor que é 15 + do
 segundo valor que é 17 contabilizando um total de 32 minutos.


 Exato... só exemplificando o que pode acontecer:

 postg...@bdteste=# create table sessao (id serial, data_sessao timestamp,
 id_usuario integer);
 NOTICE:  CREATE TABLE will create implicit sequence sessao_id_seq for
 serial column sessao.id
 CREATE TABLE
 postg...@bdteste=# insert into sessao (data_sessao, id_usuario) values
 ('2010-09-01 14:15:00.00', 4), ('2010-09-01 14:17:00.00', 4);INSERT
 0 2
 postg...@bdteste=# insert into sessao (data_sessao, id_usuario) values
 ('2010-09-02 13:10:00.00', 4), ('2010-09-02 13:18:00.00', 4);
 INSERT 0 2
 postg...@bdteste=# select max(data_sessao) - min(data_sessao) from sessao;
  ?column?
 --
  23:03:00
 (1 row)


 Nesse caso foi verificado o intervalo de tempo entre a menor e maior
 data/hora, mas creio que isso não seja o desejado, então quem sabe:

 postg...@bdteste=# select data_sessao::date, max(data_sessao) -
 min(data_sessao) from sessao group by 1;
  data_sessao | ?column?
 -+--
  2010-09-02  | 00:08:00
  2010-09-01  | 00:02:00
 (2 rows)


 Ou ainda:

 postg...@bdteste=# select sum(intervalo) from (select data_sessao::date,
 max(data_sessao) - min(data_sessao) as intervalo from sessao group by 1) as
 tempo;
sum
 --
  00:10:00
 (1 row)


 Dai depende dos teus requisitos!

 --
 Fabrízio de Royes Mello
  Blog sobre TI: http://fabriziomello.blogspot.com
  Perfil Linkedin: http://br.linkedin.com/in/fabriziomello


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




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Como Mudar a Posição dos Campos ?

2010-09-06 Por tôpico Alexsander Rosa
Você precisa MESMO disto? O ideal é usar os nomes das colunas nos comandos
SQL.

Em 6 de setembro de 2010 17:40, Marcelo Silva marc...@ig.com.br escreveu:

  Pessoal, como faz pra mudar a posição de um campo?
 Procurei no pgAdmin3 mas não achei
 O Postgres aceita isso ?

 Exemplo, tenho a tabela

 Funcionarios

 cod_fun
 nome
 rg
 cod_emp
 cpf

 Queria mudar para

 cod_fun
 nome
 cpf
 rg
 cod_emp


 Mas sem ter que deletar e recriar os campos denovo pois a tabela já está
 populada.




-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Procurar determinada função pela sua DDL

2010-09-13 Por tôpico Alexsander Rosa
Procura na pg_proc, acho que lá tem o tipo de retorno.
Ex: select * from pg_proc where proname = 'sp_retorno';

Em 13 de setembro de 2010 18:00, Thiago zan...@farmaponte.com.br escreveu:

 Por exemplo, tenho uma função que tem o seguinte código:

 declare
vint integer;
 begin
vint := 10;
return vint;
 end;

 Mas preciso procurar na DLL dela que tem o seguinte código:

 CREATE OR REPLACE FUNCTION schema.sp_retorno () RETURNS integer AS
 $body$
 declare
vint integer;
 begin
vint := 10;
return vint;
 end;
 $body$
 LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

 Procurando na tabela pg_proc procuro apenas da primeira forma, mas se
 precisar por exemplo listar todas as procedures que retornem um
 determinado tipo, por exemplo:

 RETURNS schema.tp_retorno

 Isso que não consigo fazer.

 Obrigado.


-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Autenticação com senha obrigatória

2011-01-25 Por tôpico Alexsander Rosa
Não tem como impedir que um usuário root acesse uma base PostgreSQL --
como o Euler disse, ele tem várias opções. Se desse pra criar um usuário
suporte com poderes quase iguais ao do root mas sem acesso aos dados do
PostgreSQL, já serviria. Também vejo este conflito acontecer em clientes,
especialmente quando há mais de uma empresa fornecendo serviços que rodam
num mesmo servidor. Não é uma situação ideal mas no mundo real ela é bem
corriqueira.

Em 25 de janeiro de 2011 08:17, Edson neto edson.edsn...@gmail.comescreveu:

 Obrigado pela ajuda pessoal,
 Realmente seria muito interessante se essa funcionalidade existisse em
 tempo de instalação.
 Mas concordo com o Euler que é falha de segurança do SO.
 Porém quando instalamos o software em um cliente não é possível dizer ao
 mesmo que ele não terá a senha de root do próprio servidor que nos
 disponibilizou. Por isso não há como saber quantas pessoas terão acesso a
 essa maquina.
 Somente a solicitação obrigatória da senha poderia garantir uma segurança
 extra aos dados.

 Obrigado,
 Edson Souza


 Em 24 de janeiro de 2011 19:37, Euler Taveira de Oliveira 
 eu...@timbira.com escreveu:

 Em 24-01-2011 17:49, Avelino Brun escreveu:
  Pode nos dizer quais as formas. Interessante seria uma em que não
 precise
  alterar os fontes.
 Para que? Se eu tenho acesso super-usuário (root) ao servidor PostgreSQL,
 (i)
 basta compilar um outro PostgreSQL e iniciar o novo binário apontando para
 o
 $PGDATA ou (ii) copiar o $PGDATA para uma outra máquina da mesma
 arquitetura/SO.

 Caso o acesso ao $PGDATA seja restrito ao super-usuário e ao usuário
 postgres,
 nenhum outro usuário (não autorizado) poderá usar tais artifícios para
 acessar
 os seus dados indevidamente. Como eu já disse: o seu problema é de
 *segurança
 do SO* e não do PostgreSQL em si.

  Se fosse passando parametros durante a instalação creio que facilitaria.
 
 não espere que a equipe de desenvolvimento vá aceitar tal patch; é um
 problema
 de segurança do SO.


 --
   Euler Taveira de Oliveira
   http://www.timbira.com/



-- 
Atenciosamente,
Alexsander da Rosa
Linux User #113925

Extremismo na defesa da liberdade não é defeito.
Moderação na busca por justiça não é virtude.
-- Barry Goldwater
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Escape tratamento

2011-02-08 Por tôpico Alexsander Rosa
Não seria E'130\\' com duas contra-barras?

Em 8 de fevereiro de 2011 16:47, Tiago Valério
tiagosvale...@gmail.comescreveu:

 Pessoal

 Uma ajuda na sintax abaixo :

 INSERT INTO ende(logradouro,numero,complemento)
 SELECT E'130\'

 O '\' mesmo colocando o E na frente para tratamento de escape ele me
 retorna um erro.Existira algum parametro de sessao que eu possa alterar para
 contornar este erro?Sei colocando outra barra o problema é resolvido.


 Grato desde ja.


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




-- 
Atenciosamente,
Alexsander da Rosa
http://rednaxel.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


  1   2   3   >