Re: [pgbr-geral] FATAL incorrect checksum in control file - restaurar em outro linux
Em 7 de maio de 2015 10:31, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: Em 7 de maio de 2015 09:44, Moisés P. Sena moisesps...@gmail.com escreveu: Meu servidor de banco de dados deu problema no HD, ficava dando erro de IO, era Ubuntu 14.04LTS amd64. Copiei o diretorio DATA do postgres para outro linux, Debian 7.5 i386 Por que i386? Não é compatível com os dados AMD64. Era a instalação pronta que eu tinha em um disco USB. compilei os mesmos fontes Por que não usar o binário do Debian AMD64? Porque os binarios atualizam sempre, para o que faço nao tem necessidade. Uso o basico do PostgreSQL, o SO atualiza e eu mantenho o meu Postgres inalterado. Segundo li na net, é pq mudou o SO e arctetura. Só arquitetura, o SO é irrelevante. De qualquer forma, gostaria de rodar o mesmo no SO atual. Sem problemas, desde que seja na mesma arquitetura. Tem como eu restaurar o DATA sem reinstalar o Ubuntu? Tem, instale o Debian AMD64. Bem, consegui botar o SO antigo em modo de linha de comando o fazer o DUMLALL e restaurar no novo. Posteriormente foi fazer upgrade da arquitetura para amd64. Agora esta otimo. Muito obrigo a todos!!! Um grande abraço!! -- #!/bin/bash name='Moises P. Sena' mail='moisespsena' mail=$m...@gmail.com echo $name $mail init 0 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] FATAL incorrect checksum in control file - restaurar em outro linux
Em 11 de maio de 2015 12:21, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: Se você usa mais antigo que os pacotes binários do Debian, não corre o risco de ficar sem suporte? Pretendo atualizar o SGBD de certo em certo tempo. Sempre faço o upgrade geral da maquina. Pra nao correr o risco do BD parar, atualizo ele na mao mesmo. Ja tenhos os scripts prontos para isso. :D -- #!/bin/bash name='Moises P. Sena' mail='moisespsena' mail=$m...@gmail.com echo $name $mail init 0 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] FATAL incorrect checksum in control file - restaurar em outro linux
Bom dia pessoal! Meu servidor de banco de dados deu problema no HD, ficava dando erro de IO, era Ubuntu 14.04LTS amd64. Copiei o diretorio DATA do postgres para outro linux, Debian 7.5 i386, compilei os mesmos fontes e quando vou startar o postgresql recebo a seguinte mensagem: *FATAL: incorrect checksum in control file* Segundo li na net, é pq mudou o SO e arctetura. De qualquer forma, gostaria de rodar o mesmo no SO atual. Meu BD é pequeno, 500MB, porem tem uns sistemas muito importantes. Tem como eu restaurar o DATA sem reinstalar o Ubuntu? Desde ja, obrigado. Abraços! -- #!/bin/bash name='Moises P. Sena' mail='moisespsena' mail=$m...@gmail.com echo $name $mail init 0 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Campo date + campo time ou um unico campo timestamp com indice?
Em 24 de junho de 2014 11:14, Flávio Granato flavio.gran...@openmailbox.org escreveu: então esta primeira opção não faz muito sentido e acho que um campo timestamp lhe ajudaria junto a uma cláusula BETWEEN Verdade, nao tinha pensado nisso. Vou deixar timestamp mesmo. Obrigado! -- Moisés P. Sena ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Campo date + campo time ou um unico campo timestamp com indice?
Bom dia pessoal! Estou criando uma tabela para reunioes e normalmente se faz mais consultas pela data, esporadicamente pela hora tambem. Nesse caso o que é mais recomendado: A) um campo para armazenar a data e outro campo para armazenar a hora e um indice para o campo DATA e outro que junta os campos DATA e HORA ou B) um unico campo timestamp com indice para DATA e outro para o campo todo? É claro que armazenar em unico campo é mais facil de dar manutencao. O que voces acham? -- Moisés P. Sena ___ 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 Gráfica para PostgreSql
PGModeler: https://github.com/pgmodeler/pgmodeler Em 1 de junho de 2014 14:58, Eduardo Alexandre eduardog...@gmail.com escreveu: Há também o EMS SQL Manager e Toad Data Modeler. Abraços, ___ Eduardo Alexandre Em 1 de junho de 2014 14:41, Matheus Saraiva matheus.sara...@gmail.com escreveu: Em 01-06-2014 14:16, Edson F. Lidorio escreveu: Boa tarde Pessoal, Que ferramenta gráfica para comandos SQL, vocês utilizar para trabalhar com PostgreSql em Linux? Obrigado, -- Edson ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral phpPgAdmin pgAdmin E para modelagem DER temos o pgModeler ___ 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 -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] JOIN ou FROM A,B?
Renato, obrigado pela informação. Em 8 de abril de 2014 10:40, Bruno Silva bemanuel...@gmail.com escreveu: Dê um explain na select nos dois casos. Teste também com a clausula exists. Vou testar sim, obrigado! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] pgModeler - Abrir modelo que nao consta no BD
Boa noite pessoal!! Alguem sabe como abrir um modelo que salvei sem aplicar no BD? Abraços! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Achar o MINIMO e retornar a PK em TIMESTAMP
Bom dia pessoal, Tenho dados em uma tabela, e um campo de chave primaria que é um TIMESTAMP e preciso achar o mínimo diário da coluna VALOR e retornar o DATAHORA correspondente: create table dados ( datahora TIMESTAMP NOT NULL PRIMARY KEY, valor INT ); COPY dados (datahora, valor) FROM STDIN DELIMITER |; 2013-01-01 00:00:00 | 2 2013-01-01 00:10:00 | 3 2013-01-01 00:20:00 | 1 2013-01-01 00:30:00 | 5 2013-01-01 00:40:00 | 7 2013-01-01 00:50:00 | 2 2013-01-02 00:00:00 | 4 2013-01-02 00:10:00 | 3 2013-01-02 00:20:00 | 7 2013-01-02 00:30:00 | 2 2013-01-02 00:40:00 | 5 2013-01-02 00:50:00 | 2 \. Cada registro é inserido de 10 em 10 minutos, preciso mostrar a média de cada hora. Um intervalo de datas será definido posteriormente. *Primeiro resultado esperado:* *dia | datahora | valor_minimo* 2013-01-01 | 2013-01-01 00:20:00 | 1 2013-01-02 | 2013-01-02 00:30:00 | 2 *OBS: *Observe que às 2013-01-02 00:30:00 e 2013-01-02 00:50:00 o valor se repete, neste caso, exibir apenas o de menor data. *Segundo resultado esperado:* *dia | datahora | valor_minimo* 2013-01-01 | 2013-01-01 00:20:00 | 1 2013-01-02 | 2013-01-02 00:30:00 | 2 2013-01-02 | 2013-01-02 00:50:00 | 2 *OBS: *Observe que às 2013-01-02 00:30:00 e 2013-01-02 00:50:00 o valor se repete, neste caso, exibir ambos ordenados pela DATAHORA. Alguma sugestão de como fazer isso direto no Postgres? Considerem que so tenho em maos o PSQL em um terminal Linux. Desde já, obrigado! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Achar o MINIMO e retornar a PK em TIMESTAMP
Em 2 de maio de 2013 11:55, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: Troque a função avg do seu último pedido (que respondemos) por min e pela coluna correspondente entre parênteses SELECT date_trunc('day', datahora), *min(*valor) FROM dados GROUP BY 1 ORDER BY 1; date_trunc | min -+- 2013-01-01 00:00:00 | 1 2013-01-02 00:00:00 | 2 Ele não retorna a DATACOMPLETA com HORA de quando ocorreu o mínimo, apenas o DIA, veja a diferança para o resultado esperado: dia | *DATA e HORA DA OCORRENCIA* | valor 2013-01-01 | 2013-01-01 *00:20:00* | 1 2013-01-02 | 2013-01-02 *00:30:00* | 2 Acho que você precisa fazer a lição de casa e ler um pouquinho de documentação antes de perguntar na lista. Fica mais fácil ajudarmos dúvidas do que dar soluções prontas, e assim você aprende mais :) Achou que voce foi um pouco grosseiro, eu realmente havia testado antes de postar aqui. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Achar o MINIMO e retornar a PK em TIMESTAMP
Bom, consegui fazer com subselect, mas não sei se é a melhor forma. Alguém sabe alguma outra forma que demanda menos processamento? SELECT d.datahora, r.valor FROM ( SELECT date_trunc('day', datahora) as dt, min(valor) as valor FROM dados GROUP BY 1 ORDER BY 1 ) r INNER JOIN dados d ON date_trunc('day', d.datahora) = r.dt AND r.valor = d.valor ORDER BY d.datahora ASC; datahora | valor -+--- 2013-01-01 00:20:00 | 1 2013-01-02 00:30:00 | 2 2013-01-02 00:50:00 | 2 (3 rows) Em 2 de maio de 2013 15:06, Moisés P. Sena moisesps...@gmail.com escreveu: Em 2 de maio de 2013 13:11, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: Então substitua 'day' por 'hour' na função date_trunc. Preciso obter o mínimo do DIA, portanto 'day', mas quero saber em que momento (HORA e MINUTO) ocorreu este mínimo DIARIO. Entendeu? Eu li a documentação da função, mas não bate com o que quero. Até onde eu sei, não posso colocar o campo datahora na consulta, se nao nunca vai dar o resultado esperado, pois terei de coloca-lo no GROUP BY, e isso nao vai funcionar pois DATAHORA é PK - nunca repete. Obrigado! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Achar o MINIMO e retornar a PK em TIMESTAMP
Em 2 de maio de 2013 15:31, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: Isto aqui funcionou pra mim: SELECT date_trunc('day', a.datahora), a.datahora, *min(a.valor)* FROM dados a GROUP BY 1,2 HAVING *min(valor)* = (SELECT min(valor) FROM dados b WHERE date_trunc('day', b.datahora)=date_trunc('day', a.datahora)) ORDER BY 2; Uma curiosidade, a consultada abaixo deu o mesmo resultado para o exemplo, mas fica a dúvida se ela realmente retorna o mesmo resultado da que voce propôs, observe que tirei o *min(a.valor)* do primeiro select e do HAVING: SELECT date_trunc('day', a.datahora), a.datahora, a.valor FROM dados a GROUP BY 1,2 HAVING a.valor = (SELECT min(valor) FROM dados b WHERE date_trunc('day', b.datahora)=date_trunc('day', a.datahora)) ORDER BY 2; -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Achar o MINIMO e retornar a PK em TIMESTAMP
Obrigado pessoal!! Consegui fazer do jeito que queria e aprendi muito mesmo nessa discussao. Para a consulta 1: SELECT DISTINCT ON(datahora) datahora::date AS dia, first_value(datahora) OVER(PARTITION BY date_trunc('day', datahora) ORDER BY valor, datahora) AS datahora, valor AS valor_minimo FROM dados; dia | datahora | valor_minimo +-+-- 2013-01-01 | 2013-01-01 00:20:00 |1 2013-01-02 | 2013-01-02 00:30:00 |2 (2 rows) Para a consulta 2: SELECT date_trunc('day', a.datahora) , a.datahora , a.valor FROM dados a WHERE valor = ( SELECT min(valor) FROM dados b WHERE date_trunc('day', b.datahora) = date_trunc('day', a.datahora) ) ORDER BY 2; date_trunc | datahora | valor -+-+--- 2013-01-01 00:00:00 | 2013-01-01 00:20:00 | 1 2013-01-02 00:00:00 | 2013-01-02 00:30:00 | 2 2013-01-02 00:00:00 | 2013-01-02 00:50:00 | 2 (3 rows) Um Abraço a todos!!! Em 2 de maio de 2013 16:16, Matheus de Oliveira matioli.math...@gmail.comescreveu: 2013/5/2 Matheus de Oliveira matioli.math...@gmail.com *Segundo resultado esperado:* *dia | datahora | valor_minimo* 2013-01-01 | 2013-01-01 00:20:00 | 1 2013-01-02 | 2013-01-02 00:30:00 | 2 2013-01-02 | 2013-01-02 00:50:00 | 2 *OBS: *Observe que às 2013-01-02 00:30:00 e 2013-01-02 00:50:00 o valor se repete, neste caso, exibir ambos ordenados pela DATAHORA. Alguma sugestão de como fazer isso direto no Postgres? Considerem que so tenho em maos o PSQL em um terminal Linux. Podemos ainda usar a WINDOW FUNCTION e injetar numa sub-consulta: SELECT dia, datahora, valor_minimo FROM ( SELECT DISTINCT ON(datahora) datahora::date AS dia, datahora, first_value(valor) OVER(PARTITION BY date_trunc('day', datahora) ORDER BY valor, datahora) AS valor_minimo, valor FROM dados ) AS a WHERE a.valor = a.valor_minimo; Desculpe, cometi um erro, não precisa do DISTINCT ON nessa (na anterior precisava): SELECT dia, datahora, valor_minimo FROM ( SELECT datahora::date AS dia, datahora, first_value(valor) OVER(PARTITION BY date_trunc('day', datahora) ORDER BY valor, datahora) AS valor_minimo, valor FROM dados ) AS a WHERE a.valor = a.valor_minimo; At. -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] calcular Média Horária
Boa tarde pessoal, Tenho dados em uma tabela, e um campo de chave primaria que é um TIMESTAMP e preciso calcular a média horária de uma coluna VALOR: create table dados ( datahora TIMESTAMP NOT NULL PRIMARY KEY, valor INT ); Cada registro é inserido de 10 em 10 minutos, preciso mostrar a média de cada hora. Um intervalo de datas será definido posteriormente. *EXEMPLO:* *datahora | valor* 2013-01-01 00:00:00 | 1 2013-01-01 00:10:00 | 3 2013-01-01 00:20:00 | 2 2013-01-01 00:30:00 | 5 2013-01-01 00:40:00 | 7 2013-01-01 00:50:00 | 2 2013-01-01 00:00:00 | 4 2013-01-02 00:10:00 | 3 2013-01-02 00:20:00 | 2 2013-01-02 00:30:00 | 5 2013-01-02 00:40:00 | 3 2013-01-02 00:50:00 | 6 *Resultado esperado:* 2013-01-01 | 3.33 2013-01-02 | 3.83 Alguma sugestão de como fazer isso direto no Postgres? Considerem que so tenho em maos o PSQL em um terminal Linux. Desde já, obrigado! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] calcular Média Horária
Em 30 de abril de 2013 15:38, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: SELECT datahora::date, extract (hour from datahora) as hora, avg(valor) FROM dados GROUP BY 1,2 ORDER BY 1,2; Funcionou perfeitamente. Em 30 de abril de 2013 16:27, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: SELECT date_trunc('hour', datahora), avg(valor) FROM dados GROUP BY 1 ORDER BY 1; Também Funcionou perfeitamente. Obrigado a todos voçês!!! Deus os abençõe! []s -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Distribuição Linux Servidor
Em 28 de setembro de 2012 11:34, Edson Lidorio edson...@gmail.comescreveu: Bom dia a todos, Preciso montar uma máquina nova para um cliente, essa máquina vai rodar um software comercial, com PostgreSql 9.2.1/Linux. Estou na dúvida em qual distribuição usar, estou pensando em Ubuntu Server ou CentOs. Qual distribuição vocês recomendam? Para servidores gosto mais do Debian com sistema de arquivos REISERFS, levinho e estavel. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] como trasformar usuario em cliemte com heranca
Bom dia pessoal!! estou usando postgresql 9.2. Tenho a seguinte estrutura: create table usuario ( email varchar(100) not null primary key, senha varchar(255) not null ); create table cliente ( nome varchar(100) not null, cpf text not null ) inherits (usuario); tenho um usuario: moi=# insert into usuario (email, senha) values ('u...@gmail.com', '123456'); INSERT 0 1 quero transformar este usuario em cliente. so que a query abaixo nao funciona: moi=# update cliente set nome = 'Usuario da Silva', cpf = 'xx' where email = 'u...@gmail.com'; UPDATE 0 Alguem tem alguma ideia de como resolver este tipo de situacao? Obrigado!! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] como trasformar usuario em cliemte com heranca
Em 20 de setembro de 2012 10:39, Marcone marconepe...@gmail.com escreveu: Em 20 de setembro de 2012 10:23, Moisés P. Sena moisesps...@gmail.com escreveu: (.) create table usuario ( email varchar(100) not null primary key, senha varchar(255) not null ); create table cliente ( nome varchar(100) not null, cpf text not null ) inherits (usuario); tenho um usuario: moi=# insert into usuario (email, senha) values ('u...@gmail.com', '123456'); INSERT 0 1 quero transformar este usuario em cliente. (...) Não ficou claro pra mim sua dúvida. Você tem registros na tabela usuario que não estão em cliente e queria que os usuário estivessem em cliente ou uma forma de convertê-los? Exatamente, quero convertê-los.. -- Marcone Peres - DBA http://www.linkedin.com/in/marconeperes @marconeperes (61) 8146-0028 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] como trasformar usuario em cliemte com heranca
Em 20 de setembro de 2012 10:44, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2012/9/20 Moisés P. Sena moisesps...@gmail.com: ) inherits (usuario); Evite. O ideal é uma simples chave estrangeira. Herança introduz mais problemas, como esse… o modelo relacional já é completo e simples. Por que este é um problema (e nao apenas um caso)??? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] como trasformar usuario em cliemte com heranca
Em 20 de setembro de 2012 10:44, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: Evite. O ideal é uma simples chave estrangeira. Herança introduz mais problemas, como esse… o modelo relacional já é completo e simples. Ok, posso usar sim. Em 20 de setembro de 2012 11:23, Flavio Henrique Araque Gurgel fla...@4linux.com.br escreveu: Você terá de escrever uma função/gatilho para resolver isso ou fazer todos os passos por fora. Nao legal esta idéia. nao para o meu caso. Em 20 de setembro de 2012 11:25, Marcone marconepe...@gmail.com escreveu: Na forma que você passou não vai ter como por alguns motivo simples: 1 - Como carregar os demais dados de cliente (nome e CPF), você teria um de - para? 2 - Com a herança, mesmo com resposta positiva para [1], os registros seriam duplicados em usuario. Minhas sugestões: I - Se você optar por manter a herança (leve em conta o que o DUTRA falou) a saída que eu vejo é um tabalho manual de remoção dos usuarios e recadastro dos clientes. Isto pode ser bastante trabalhoso e você vai correr riscos de quebra de integridade. II - Se você retirar a herança, crie uma coluna, faça um update e crie uma chave estrangeira em usuario com cliente. vou preferir uma chave estrangeira. Em 20 de setembro de 2012 11:34, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: Por problemas como o teu… o modelo relacional é simples e transparente; herança viola o princípio da informação (‘toda informação é representada exclusivamente como valores explícitos de atributos em tuplas de relações’, ou algo assim), e torna o modelo mais ‘opaco’, quer dizer, mais difícil de entender, guardar e manipular. Hoje, herança praticamente só é usada para particionamento. Entendi. Entao ESQUECO heranca para heranca, e uso apenas relacionamento para heranca, por causo dos motivos citados acima. Obrigado a todos, foi muito esclarecedor. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] como trasformar usuario em cliemte com heranca
Em 20 de setembro de 2012 11:43, Guimarães Faria Corcete DUTRA, Leandro l...@dutras.org escreveu: 2012/9/20 Moisés P. Sena moisesps...@gmail.com: Entendi. Entao ESQUECO heranca para heranca, e uso apenas relacionamento para heranca, por causo dos motivos citados acima. Exato. Só repare que ‘relacionamento’ não é um termo relacional, mas de DERs; o termo seria ‘chave estrangeira’, ou ‘restrição de integridade referencial’, ou simplesmente referência. Obrigado pela dica, vou lembrar disso. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] como trasformar usuario em cliemte com heranca
Em 20 de setembro de 2012 11:49, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2012/9/20 Moisés P. Sena moisesps...@gmail.com Bom dia pessoal!! estou usando postgresql 9.2. Tenho a seguinte estrutura: create table usuario ( email varchar(100) not null primary key, senha varchar(255) not null ); create table cliente ( nome varchar(100) not null, cpf text not null ) inherits (usuario); tenho um usuario: moi=# insert into usuario (email, senha) values ('u...@gmail.com', '123456'); INSERT 0 1 quero transformar este usuario em cliente. so que a query abaixo nao funciona: moi=# update cliente set nome = 'Usuario da Silva', cpf = 'xx' where email = 'u...@gmail.com'; UPDATE 0 Alguem tem alguma ideia de como resolver este tipo de situacao? O pessoal já disse, herança não é bom (geralmente), mas fiquei com vontade de postar uma solução caso queira usar: WITH del AS ( DELETE FROM usuario WHERE email = 'u...@gmail.com' RETURNING * ) INSERT INTO cliente (nome, cpf, email, senha) SELECT 'Usuário da Silva', 'XX', email, senha FROM del; Interessante obrigado! De qualquer maneira eu também concordo que heranças só atrapalham em casos como esse. Mas veja que é possível uma conversão forçada (mas ainda podendo levar à problemas de integridade). Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados PostgreSQL Dextra Sistemas - MPS.Br nível F! www.dextra.com.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PgSql + Django
Em 12 de agosto de 2012 23:10, Albino B Neto bino...@gmail.com escreveu: Olá Estou tendo um problema no django com pgsql, na integração. Deem uma olhada nas minhas configurações: http://pastebin.com/EebVfxU7 Minha tabela no PostgreSQL está criada. Que problema voce esta tendo? descreva com mais detalhes. Albino ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PgSql + Django
Em 13 de agosto de 2012 10:32, Moisés P. Sena moisesps...@gmail.comescreveu: Em 12 de agosto de 2012 23:10, Albino B Neto bino...@gmail.com escreveu: Olá Estou tendo um problema no django com pgsql, na integração. Deem uma olhada nas minhas configurações: Sua duvida deve ser sanada na lista/forum especifico do DJango. a ENGINE da sua configuracao esta errada, precisa ser esta: 'ENGINE': 'django.db.backends.postgresql_psycopg2' http://pastebin.com/EebVfxU7 Minha tabela no PostgreSQL está criada. Que problema voce esta tendo? descreva com mais detalhes. Albino ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Recomendação de ferramenta para modelagem de dados para Linux
Em 3 de agosto de 2012 10:40, Matheus de Oliveira matioli.math...@gmail.com escreveu: 2012/8/3 Moisés P. Sena moisesps...@gmail.com Em 2 de agosto de 2012 18:02, Thiago Rodrigues xthi...@gmail.comescreveu: Eduardo, você teve que fazer alguma configuração específica no Wine? Instalei aqui a versão de teste, mas aparece uma tela informando que o teste expirou em muitos anos atrás (não lembro a data agora). Ele não tá conseguindo pegar a data correta do sistema. Moises, disponibiliza ai para todos. (: Faca o download em [1], traia o arquivo .jar de dentro do .zip e coloque no diretorio dropins da raiz do eclipse. Para criar um novo arquivo: File - new - Other - ERMaster Observem que ele é baseado na versao 1.0 de 10/01 de 2010, portanto bem antigo, mas comigo funcionou legal. Assim que tiver um tempinho, vou portar para a versao mais recente do ERMaster. Abracos, [1] http://moisespsena.com/wp-content/uploads/2012/08/org.insightech.er_1.0.0.v20101001-0024.jar_.zip Cara, aproveita e manda um patch pro autor (ou o código direto), talvez seja melhor ele incluir sua alteração na versão oficial do que você ficar sempre atualizando para as versões mais novas. Vou fazer isso!! Obrigado! Abracos, Fica a dica. Atenciosamente, -- Matheus de Oliveira ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Recomendação de ferramenta para modelagem de dados para Linux
Plugin para Eclipse ERMaster Fiz uma copia dos sources originais e adicionei compatibilidade de conversao de campo AUTO_INCREMENT do MySQL para SERIAL (p/INT) ou BIGSERIAL (p/BIGINT). Estou com os fontes em casa, se quiser, te passo o .JAR para colocar no diretorio eclipse/dropins. Com relacao aos sources, tenho que ver licenca para publicacao, etc, se quiser, posso te passar os sources tambem ... Em 2 de agosto de 2012 11:22, Thiago Rodrigues xthi...@gmail.com escreveu: Olá pessoal, Estou procurando por uma ferramenta para modelagem de base de dados para Linux capaz de trabalhar tanto com MySQL e PostgreSQL. Gostaria de receber recomendações de vocês. Procuro as seguintes funcionalidades: + criação do modelo de dados (diagramas) genérico no programa, mas com opção de geração de código SQL específico para cada SGBD; + criação do modelo de dados baseado em um banco existente; + agilidade usabilidade (interface que permite fazer as coisas com poucos cliques, com atalhos de teclado, etc) + forward enginer; + reverse enginer. Tanto faz se é gratuito ou não. Testei o SQL Power Architect e achei pouco produtivo (interface ruim). Estou testando o trial do Navicat Premium e estou gostando, mas achei o preço um pouco salgado e ele roda sobre o Wine (vai que algum update da distro/wine faz ele parar de funcionar). Atenciosamente, Thiago Rodrigues http://www.thiagorodrigues.net/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Uso do apóstrofo em INSERT
Em 16 de julho de 2012 15:47, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 16 de julho de 2012 15:42, Aguiar Magalhaes maga...@yahoo.com.brescreveu: Pessoal, Peço ajuda para inserir um endereço de cliente que está armazenado na variável $endereco_cliente e que contém apóstrofo, por exemplo: Estrada Pau D'alho... ? Estou tentando INSERT INTO Cliente (id_cliente, nome_cliente, endereco_cliente) VALUES ($id_cliente, '$nome_cliente', '$endereco_cliente'); Você está usando PHP? Caso positivo seria interessante dar uma olhada nas funções de escape de strings [1]. Seria melhor usar PDO e BIND (http://www.php.net/manual/en/pdo.prepare.php) [1] http://br2.php.net/manual/en/function.pg-escape-string.php -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello Twitter: http://twitter.com/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Para enterrar de vez o mito da necessidade de chaves artificiais
Tambem gostei. Em 7 de junho de 2012 14:14, Bruno Silva bemanuel...@gmail.com escreveu: Documento interessante, boa leitura! Bruno E. A. Silva. Analista de Sistemas. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Dica: Recuperar Dados Removidos (DELETE) ou Alterados (UPDATE)
Em 4 de abril de 2012 15:37, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Pessoal, Ai vai uma dica para recuperar registros removidos ou alterados acidentalmente por um DELETE ou UPDATE em uma tabela que ainda *NAO* tenha sofrido um *VACUUM*. Foi criada uma pequena extensão para o PostgreSQL [1] para ler páginas obsoletas de uma tabela, ou seja, aquelas que sofreram um DELETE ou UPDATE. O post [2] mostra como instalar e usar com postgres 9.1. É um projeto recém saido do forno, por isso muito cuidado, mas creio que pode ser uma alternativa em momentos ruins. Att, [1] https://github.com/omniti-labs/pgtreats/tree/master/contrib/pg_dirtyread [2] http://www.depesz.com/2012/04/04/lets-talk-dirty/ Muito Legal!! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Desorganização do fonte depois de compilar a view e lentidão na execução
Em 5 de março de 2012 08:33, Fábio Naspolini fabionaspol...@gmail.comescreveu: O autovacuum está habilitado? Experimente fazer um VACUUM ANALYZE tb_produto_loja e depois teste os dois plano novamente. Se a diferença dos números de rows *não* se aproximar, apresente os planos novamente. O autovaccum estava desabilitado, fiz o VACUUM FULL ANALYZE em toda base e um REINDEX DATABASE e ficou rápido os 2 sql's. Só por curiosidade, qual a diferença do de tempo de execução do SQL original com o compilado (com os casts) agora, depois do VACUUM? Abraços -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Desorganização do fonte depois de compilar a view e lentidão na execução
Em 5 de março de 2012 09:30, Fábio Naspolini fabionaspol...@gmail.comescreveu: Só por curiosidade, qual a diferença do de tempo de execução do SQL original com o compilado (com os casts) agora, depois do VACUUM? Agora depois do vacuum ficou instantâneo os 2 sql's, segue ae os 2 planos de execução depois do vacuum. Em termos de tempo, os sqls sem cast eram praticamente iguais antes e depois do vacuum (404.419 ms), o problema era no que havia casts (Consequentemente nas view's), antes do vacuum demorava 195556.620 ms (pouco mais de 3 minutos), agora demora 261.405 ms (Menos de 1 segundo). O plano de execução mudou totalmente depois do vacuum. Para outro teste, fiz um backup e restore desta base, após o restore executei o sql e estava lento novamente, fazendo o vacuum novamente voltou a ficar rápido. Conclusão: Sempre depois de fazer um retore faça um vacuum também. Realmente fez muita diferença. Ótima thread, uma boa lição! Abraços -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Lista de tabelas por ordem de dependência
Em 28 de fevereiro de 2012 08:55, Charles Emanuel Silva Ramos Patrocínio dos Santos charles.san...@el.com.br escreveu: Olá Gostaria de uma ajuda para listar as tabelas existentes no banco por ordem de dependência, estou criando uma ferramente de junção de dados e gostaria de ordenar as tabelas para não ter problemas de importar dados de tabelas filhas antes de suas matriarcas. Voce pode ter auto-relacionamento, acredito que daria problema no seu caso. O que costumo fazer: 1) Copia a SQL de todas as constraints do BD para um arquivo/memoria (existe uma SQL para isto) 2) Remove as constraints do BD de destino (uma pequena alteracao na SQL de #1) 3) Desabilita todos os triggers 4) Copia os dados para o outro BD (aqui a ordem deles nao importa, uma vez que nao existem constraints) 5) Recria as constraints que vc fez backup em #1 6) Reativa os triggers Acho que resolve o seu problema. Sem Mais Obrigado -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Count em Tabelas
Em 28 de fevereiro de 2012 10:01, Leonardo Cezar lhce...@gmail.comescreveu: 2012/2/28 Giovanni Sousa giovanni.so...@gmail.com: Prezados, Em um projeto aqui do trabalho, tem um schema que possui 233 tabelas. Gostaria de saber, como faço para saber a quantidade de registro de cada tabela. Sei que posso fazer um COUNT em cada uma delas, mas como são muitas isso irá levar muito tempo. Alguem tem algum script que possa me auxiliar e tornar meu trabalho mais rápido? SELECT reltuples FROM pg_class WHERE nspname = 'meu_esquema' JOIN pg_namespace ON (pg_class.relnamespace = pg_namespace.oid) Leonardo, gostei desta query!!! Para mostrar apenas entidades: SELECT p.relname, reltuples FROM pg_class p JOIN pg_namespace n ON (p.relnamespace = n.oid) WHERE n.nspname = 'meu_esquema' -- Ex.: public AND p.relkind = 'r' ORDER BY p.relname -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] backup e restore de bd específico sem dump
Bom dia pessoal! Gostaria de fazer o BACKUP de um único BD (bd_teste), sem usar dump, e gravar em um arquivo db.bkp. Em outro servidor (que possui outros BDs) restaurar este arquivo para um novo bd (db_teste_restore). É possível fazer isto? -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] backup e restore de bd específico sem dump
Em 28 de fevereiro de 2012 11:37, Leonardo Cezar lhce...@gmail.comescreveu: 2012/2/28 Moisés P. Sena moisesps...@gmail.com: Bom dia pessoal! Gostaria de fazer o BACKUP de um único BD (bd_teste), sem usar dump, e gravar em um arquivo db.bkp. Por que? É que o backup do meu BD com pg_dump esta ficando muito grande, e quase sempre (tipo umas 3 vezes por semana) é preciso restaurar o backup do dia para fazer testes de integração em outro servidor. Em outro servidor (que possui outros BDs) restaurar este arquivo para um novo bd (db_teste_restore). É possível fazer isto? É, mas é complicado o suficiente à ponto de não ser recomendado. Utilize pg_dump ou arquivamento de logs. Sobre arquivamento de logs nao entendi muito bem como funciona, dei uma olhada na documentação (WAL Logs). WAL resolveria o meu problema? Existe algum tutorial de como usá-lo na prática em sistemas linux? -Leo -- Leonardo Cezar http://postgreslogia.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] UPDATE com subselect erro de sintaxe
Boa tarde pessoal! Uso PostgreSQL 9.1, debian 6. Tenho as tabelas: cliente: (id, juridico, fantasia, mainusuario) usuario: (id, email, senha) cliente.mainusuario é um relacionamento para usuario.id adicionei 2 campos: nome e detalhes à tabela usuario agora quero definir o seguinte valor: nome = cliente.fantasia detalhes = 'Usuário principal do cliente ' || cliente.juridico OBS.: Nem todo usuário é usuário principal de cliente. Seguindo o exemplo da documentacao [1], fica dando erro de sintaxe: -- update usuario u set (nome, detalhes) = (select c.fantasia, 'Usuário principal do cliente ' || c.juridico from cliente c where c.mainusuario = u.id) where exists (select 1 from cliente c2 where c2.mainusuario = u.id); -- O erro: - ERRO: erro de sintaxe em ou próximo a select LINE 11: (select - Como consigo resolver isto?? Abraços, [1] http://www.postgresql.org/docs/current/static/sql-update.html#AEN76319[Em COMPATIBILITY] -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] UPDATE com subselect erro de sintaxe
Em 27 de fevereiro de 2012 16:04, Osvaldo Kussama osvaldo.kuss...@gmail.com escreveu: UPDATE usuario u SET (nome, detalhes) = (c.fantasia, 'Usuário principal do cliente ' || c.juridico) FROM cliente c WHERE c.mainusuario = u.id; Funcionou BLZ Obrigado! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: Chave Primaria em VARCHAR
Galera, estou realmente impressionado com a quantidade de respostas que esta thread alcançou!!! =) Agradeço a todos que compartilharam sua opniao a respeito, foi muito util para mim toda esta conversa, aprendi muito mais do que esperava. Tenho certeza que nao apenas eu, mas muita gente que tinha/ou venha ter esta duvida novamente, esta thread será um otima fonte de informação. Voltando ao caso: O meu modelo: Tabelas: log (dtsys: TIMESTAMPZ, body TEXT, ** usuario) usuario (login VARCHAR(30), senha VARCHAR(128), isativo BOOLEAN, email VARCHAR(100)) grupo (nome VARCHAR(30), descricao VARCHAR(128) grupo_usuario [M..M] (** grupo, ** usuario) Bem, a) Em LOG eu gravo tudo que o usuario faz, sendo assim esta tabela ficara muito grande rapidamente. b) Assim como LOG, outras tabelas tem USUARIO como atributo para marcar que aquele registro pertence/foi criado/etc pelo usuario X. c) Grupo so é usado no relacionamente GRUPO_USUARIO. d) Em quase 100% dos casos que envolva grupo, vou querer apenas o nome do mesmo. Com base nestes requisitos (AGORA, depois depois da discussao :)) decidi (ou acho) que: 1) Usuario: - Terá uma chave artificial ID (BIGSERIAL) - Terá um INDICE UNICO para LOGIN 2) NOME será chave primária da entidade GRUPO Sendo assim, resolvo: 1) Um relacionamento a menos quando eu quiser saber os grupos do usuario X 2) Um relacionamento a menos quando eu quiser saber os usuarios do grupo Y 3) LOG e outras entidadas deixarão de ocupar tanto espaço em disco quanto ocupariam com o uso de LOGIN como campo estrangeiro para USUARIO 4) Quando quiser saber o usuário de um LOG e outras entidades, terei de fazer um INNER JOIN com USUARIO. O que acham disto pessoal?? Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Chave Primaria em VARCHAR
Bom dia pessoal! Estou modelando um sistema de autenticação de usuarios mas estou na duvida (Do ponto de vista do BD, e nao da aplicacao): a) Quero colocar o login como PK da tabela usuario como VARCHAR(30) b) Quero colocar o nome como PK da tabela grupo como VARCHAR(30) O que voces me falam de performance em usar VARCHAR ou BIGINT? Existe algum outro campo de texto mais rapido que VARCHAR? Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Chave Primaria em VARCHAR
Em 17 de fevereiro de 2012 09:57, Fernando Franquini 'capin' fernando.franqu...@gmail.com escreveu: Moisés, bom dia, mas porque precisa ser login PK? Porque você não faz o basico: Criar um Codigo como PK e 'colocar' o Codigo no GRUPO? No meu ponto de vista tais preparando um *monstrinho*, caso não seja um TESTE SEU! Att, capin Eu sempre uso um BIGSERIAL, mas estou querendo entender o porque da coisa. É também porque tive estudando BD NoSQL e eles utilizar TEXTO nas chaves e tal. Mas nao estou comparando um com outro? porque um *monstrinho* ? porque usar BIGINT ou NAO se o login é também um valor único?? Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Chave Primaria em VARCHAR
Corrigindo texto: *Mas nao estou comparando um com outro. [ É UMA AFIRMAÇÂO, e NAO UMA PERGUNTA ]* --- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Bom dia pessoal! Como faço para conseguir o seguinte resultado em uma PL/PGSQL (sem usar ARRAY): a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa OBS.: 1) Este é a simplificação de um problema real que preciso resolver. 2) Com array eu consigo chegar a este resultado, mas nao quero usá-lo, a nao ser que eu nao tenha outra opção . Tipo: -- create or replace function fn_teste() returns void as $$ declare resultadoQuery RECORD; r RECORD; begin select u.* into resultadoQuery from usuario u; for r in rec loop raise notice 'loop 1 -- %', r.login; end loop; for r in rec loop raise notice 'loop 2 -- %', r.nome; end loop; end; $$ language plpgsql; -- Alguma sabe como chegar a este resultado? Abraços.. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Em 14 de fevereiro de 2012 11:56, Euler Taveira de Oliveira eu...@timbira.com escreveu: On 14-02-2012 08:05, Moisés P. Sena wrote: Como faço para conseguir o seguinte resultado em uma PL/PGSQL (sem usar ARRAY): a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa Utilize cursor [1]. Não traga os velhos hábitos de linguagens de programação para PLs. [1] http://www.postgresql.org/docs/current/static/plpgsql-cursors.html Legal! E para eu saber se este cursor retornou algum registro? tipo, usando array eu usaria (array_length(..)), mas eu preciso apenas saber se existe algum registro no cursor, tipo isto: IF ( CURSOR NAO VAZIO ) THEN RAISE NOTICE 'Existem registros'; ELSE RAISE NOTICE 'Nenhum registro encontrado' END IF; Abraços! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Em 14 de fevereiro de 2012 14:25, Marcone marconepe...@gmail.com escreveu: a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa Eu faria assim: -- create or replace function fn_teste() returns void as $$ declare r RECORD; begin for r in select u.* into resultadoQuery from usuario u loop raise notice 'loop 1 -- %', r.login; raise notice 'loop 2 -- %', r.nome; -- Faz as duas atividades de uma vez para cada registro. end loop; end; $$ language plpgsql; -- Mas é que precisa ser executado separadamente mesmo, o CURSOR, funcionou legal. Mas está valendo =) Abraços! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Em 14 de fevereiro de 2012 14:32, Matheus de Oliveira matioli.math...@gmail.com escreveu: Após o FETCH ou o MOVE você pode usar a variável especial FOUND: (...) FETCH seu_cursor INTO sua_var; IF FOUND THEN RAISE NOTICE 'Existem registros'; ELSE RAISE NOTICE 'Nenhum registro encontrado' END IF; (...) Fncionou perfeitamente! Obrigado a todos!! Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Insert e return UUID
Obrigado Osvaldo, Em primeiro lugar sequence [1] e uuid [2] são coisas diferentes. Disto estou ciente :) Para utilizar automaticamente uma sequence ao inserir um registro é só especificar que o campo é serial ou informar na cláusula DEFAULT do campo: DEFAULT nextval('usuario_id_seq') Ok :) Caso necessite saber qual o valor foi gerado na inserção utilize a cláusula RETURNIG [3]. É isto que estou procurando!!! Osvaldo [1] http://www.postgresql.org/docs/current/interactive/datatype-numeric.html#DATATYPE-SERIAL [2] http://www.postgresql.org/docs/current/interactive/datatype-uuid.html [3] http://www.postgresql.org/docs/current/interactive/sql-insert.html ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Abraços -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Insert e return UUID
Bom dia pessoal! Tablela: CREATE TABLE usuario (id BIGSERIAL NOT NULL PRIMARY KEY, login VARCHAR(20)); Normalmente quando vou cadastrar um usuario faco assim: val id = connection.prepareStatement(select nextval('usuario_id_seq')).executeQuery().getInt(0) val st = connection.prepareStatement(insert into usuario (id, login) values (?, ?)) st.setInt(0, id) st.setString(1, the_login) st.executeUpdate Existe uma forma de eu inserir o registro obtendo o UUID dele apos a inserçao para eu nao precisar ficar executando o 'SELECT nextval()' ? OBS: Existem outras aplicacoes que tambem inserem nesta mesma tabela. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] constraint
Ja que voce tem os campos cod, localizacao e desenho praticamente definidos, porque nao tenta usar relacionamentos para estes campos e na constraint voce verifica este relacionameto ? tipo: ALTER TABLE elementos ADD CONSTRAINT elementos_mal_inseridos CHECK ( (( select xxx . xxx ) is NOT NULL ) AND/OR ETC...ETC ) tenta simplicar isto ... na pior das hipoteses use um trigger [1] e [2] [1] http://imasters.com.br/artigo/10644/postgresql/triggers_no_postgresql/ [2] http://www.postgresql.org/docs/9.1/static/sql-createtrigger.html 2012/1/30 Pedro Costa pedrocostaa...@sapo.pt Pessoal eu tenho a seguinte constraint que segue em baixo. É possível que, em caso de erro, saibamos qual o campo que dá erro, ou mais informações acerca do mesmo? Porque só dá o nome da constraint em questão e muitas vezes perde-se muito tempo para descobrirmos o erro... Obrigado ALTER TABLE elementos ADD CONSTRAINT elementos_mal_inseridos CHECK ( (cod='29e' and localizacao = 0 and desenho = 0) or (cod='1e' and localizacao = 0 and desenho = 0) or (cod='8' and localizacao = 1 and desenho = 1) or (cod='40' and localizacao = 1 and desenho = 1 and m2 is not null and m2 0 and ml is null) or (cod='42' and localizacao = 1 and desenho = 1) or (cod='43' and localizacao = 1 and desenho = 1 and ml is not null and ml 0 and m2 is null) or (cod='49' and localizacao = 1 and desenho = 1 and m2 is not null and m2 0 and ml is null) or (cod='50' and localizacao = 1 and desenho = 1) or (cod='52' and localizacao = 1 and desenho = 1) or (cod='7' and localizacao IN (1,2) and desenho IN (1,2) and m2 is not null and m2 0 and ml is null) or (cod='29' and localizacao IN (1,2) and desenho IN (1,2) and ml is not null and ml 0 and m2 is null) or (cod='30' and localizacao IN (1,2) and desenho IN (1,2) and ml is not null and ml 0 and m2 is null) or (cod='1a' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='1b' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='1c' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='1d' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='1f' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='2a' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='2b' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='2c' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='3' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='4' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='5' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='9' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='10' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='11' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='12' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='13' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='14' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='15' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='16' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='17' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='18' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='19' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='20' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='21' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='22' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='23' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='24' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='25' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='26' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='27' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='28' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='31' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='32' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='33' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='34' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='35' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='36' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='37' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='39' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='41' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='44' and localizacao IN (1,2) and desenho = 1) or (cod='45' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='46' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='47' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='48' and localizacao IN (1,2) and desenho IN (1,2)) or (cod='51' and localizacao IN (1,2) and desenho IN (1,2))) ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http
[pgbr-geral] pg_prepared_statements nao retorna nada
Bom dia pessoa! Uso debian 6.0 com postgresql 9.1. configurei o meu postgresql conforme http://www.postgresql.org/docs/8.4/static/pgstatstatements.html : # postgresql.conf shared_preload_libraries = 'pg_stat_statements' custom_variable_classes = 'pg_stat_statements' pg_stat_statements.max = 1 pg_stat_statements.track = all restartei o postgres. com o usuario postgres, acessei o BD criei a extensao pg_stat_statements postgres@server$ echo CREATE EXTENSION pg_stat_statements; | psql meu_db CREATE EXTENSION executei o reset: postgres@server$ echo select pg_stat_statements_reset(); | psql meu_db pg_stat_statements_reset -- (1 registro) até ai, blz. So que agora eu quero ver os statements preparados e a view pg_prepared_statements retorna vazio: postgres@server$ echo select * from pg_prepared_statements; | psql me_db name | statement | prepare_time | parameter_types | from_sql --+---+--+-+-- (0 registro) Era para aparecer varios registros nesta view (se é que ela server para exibir os statements preparados -- em Java com (JDBC) connection.prepareStatement( MINHA SQL ...)); O que está de errado no meu procedimento? Abraços, - Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Identificar Chaves Estrangeira que não possuem indices.
Nao é exatamente o que voce quer, mas talvez este te ajuda: Para criar a DDL para criação de indices para todas as chaves estrangeiras usei o seguinte script: WITH FKS AS ( SELECT tc.constraint_name, tc.table_name, kcu.column_name AS field_name, rc.update_rule AS on_update, rc.delete_rule AS on_delete, ccu.table_name AS references_table, ccu.column_name AS references_field FROM information_schema.table_constraints tc LEFT JOIN information_schema.key_column_usage kcu ON tc.constraint_catalog = kcu.constraint_catalog AND tc.constraint_schema = kcu.constraint_schema AND tc.constraint_name = kcu.constraint_name LEFT JOIN information_schema.referential_constraints rc ON tc.constraint_catalog = rc.constraint_catalog AND tc.constraint_schema = rc.constraint_schema AND tc.constraint_name = rc.constraint_name LEFT JOIN information_schema.constraint_column_usage ccu ON rc.unique_constraint_catalog = ccu.constraint_catalog AND rc.unique_constraint_schema = ccu.constraint_schema AND rc.unique_constraint_name = ccu.constraint_name where tc.constraint_type = 'FOREIGN KEY' AND tc.constraint_schema = 'public' ) select array_to_string(ARRAY( select 'CREATE INDEX ix_' || LOWER(constraint_name) || ' ON ' || LOWER(table_name) || ' (' || LOWER(fields) || ');' from ( select trim(constraint_name) as constraint_name, trim(references_table) as references_table, trim(cast ( fields as varchar(1024))) fields, trim(table_name) as table_name, trim(cast ( ref_fields as varchar(1024))) ref_fields, trim(on_delete) as on_delete, trim(on_update) as on_update from ( select constraint_name, table_name, references_table, ( select array_to_string( ARRAY( select trim(f2.field_name) from ( select distinct f3.constraint_name, f3.references_table, f3.field_name, on_delete, on_update from fks f3 where f3.constraint_name = f1.constraint_name order by f3.constraint_name, f3.references_table, f3.field_name, on_delete, on_update ) f2 ), E', ' ) ) as fields, ( select array_to_string( ARRAY( select trim(f2.references_field) from ( select distinct f3.constraint_name, f3.references_table, f3.references_field, on_delete, on_update from fks f3 where f3.constraint_name = f1.constraint_name order by f3.constraint_name, f3.references_table, f3.references_field, on_delete, on_update ) f2 ), E', ') ) as ref_fields, ( select distinct f2.on_delete from ( select distinct f3.constraint_name, f3.references_table, f3.references_field, f3.field_name, on_delete, on_update from fks f3 where f3.constraint_name = f1.constraint_name order by f3.constraint_name, f3.references_table, f3.references_field, f3.field_name, on_delete, on_update ) f2 ) as on_delete, ( select distinct f2.on_delete from ( select distinct f3.constraint_name, f3.references_table, f3.references_field, on_delete, on_update from fks f3 where f3.constraint_name = f1.constraint_name ) f2 ) as on_update from ( select distinct constraint_name, table_name, references_table from fks ) f1 ) a ) b order by constraint_name ), E'\n') Eu rodei ele em BD e funcionou do jeito que eu queria. Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] pg_prepared_statements nao retorna nada
Em 14 de dezembro de 2011 11:20, Flavio Henrique Araque Gurgel fha...@gmail.com escreveu: Seu procedimento está correto. O que está errado é que a pg_stat_statements não serve para mostrar prepared statements. Ela mostra uma estatística de execuções de consultas, mais ou menos como um PgFouine em modo texto. E como eu faço para listar os statements abertos? -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Identificar Chaves Estrangeira que não possuem indices.
Em 2 de dezembro de 2011 18:19, Euler Taveira de Oliveira eu...@timbira.com escreveu: On 02-12-2011 17:05, Moisés P. Sena wrote: Criei todos os meus relacionamentos usando ALTER TABLE ADD CONSTRAINT ... sendo que a coluna referenciada é CHAVE PRIMARIA da tabela estrangeira. Mesmo assim vou ter que criar os indices manualmente? Não confunda as coisas. Só porque estamos falando de chave estrangeira não significa que devemos ter índice. No caso de junção entre duas tabelas foo e bar, se bar referencia foo, ou seja, bar tem uma chave estrangeira para foo, o otimizador vai ser esperto o suficiente para usar o índice da tabela referenciada (foo); sendo assim, *não* precisamos de índice em bar. Índices em tabelas que referenciam outras são necessários, quando *não* utilizamos uma junção com a tabela referenciada e estamos utilizando o campo da chave estrangeira na cláusula WHERE. Isso nem sempre é uma máxima em todos os modelos, então tome cuidado ao sair criando um monte de índices inúteis na sua base de dados. O melhor a fazer é avaliar as consultas e saber se alguma delas se encaixa no critério descrito neste parágrafo. Obrigado! eu não tinha esta informação. Na empresa que trabalho utilizo muito o Firebird, e ai tenho que criar um indice para cada relacionamento, segundo andei lendo (posso estar equivocado), ele nao é inteligente o suficiente para escolher o indice correto. Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Identificar Chaves Estrangeira que não possuem indices.
Ola galera! Vou apreveitar o topico e tirar a minha duvida: 1) Toda vez que crio um chave estrangeira o postgres gera AUTOMATICAMENTE um indice para a coluna field_b da tabela b, ou tenho que criar este indice manualmente? ALTER TABLE B ADD CONSTRAINT fkc_minha_constraint FOREIGN KEY ( field_b ) REFERENCES A ( field_a ) ; -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Identificar Chaves Estrangeira que não possuem indices.
Em 2 de dezembro de 2011 17:39, JotaComm jota.c...@gmail.com escreveu: Opa, Chaves estrangeiras não geram índice automaticamente. Se você desejar um índice é necessário cria-lo. Criei todos os meus relacionamentos usando ALTER TABLE ADD CONSTRAINT ... sendo que a coluna referenciada é CHAVE PRIMARIA da tabela estrangeira. Mesmo assim vou ter que criar os indices manualmente? Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Obter Memoria usada pelo postgres
Danilo e Flavio obrigado :) Acho que fiz a pergunta da forma equivocada: nao sabia como isto funcionava :( Preciso mesmo é conseguir a memoria do cluster todo, sem os processos de manuteção. []'s -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado
2011/11/30 Bruno Silva bemanuel...@gmail.com Foi mal, nova versão: select data,mem from ( SELECT row_number() OVER (ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING ) as linha, first_value(mem) OVER ( ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING ) as anterior,* FROM memo order by data ) as janela WHERE anteriormem ORDER BY data; data | mem -+-- 2011-11-21 15:22:00 | 1049 2011-11-21 15:25:00 | 1052 2011-11-21 15:26:00 | 1054 2011-11-21 15:29:00 | 1065 2011-11-21 15:30:00 | 1080 2011-11-21 15:32:00 | 1073 2011-11-21 15:33:00 | 1065 2011-11-21 15:34:00 | 1049 (8 rows) Este funcionou beleza, exceto pelo fato de que ele nao retorna o primeiro registro, no caso o de 2011-11-21 15:21:00. Mas tirando isto, funcionou perfeitamente. Para o primeiro registro nao tem muita importancia nao, mas, se voce souber um jeito de inclui-lo seria legal =). Meu problema foi resolvido com este script. Agora vou estudar como a funcao OVER faz a magica aqui =). Obrigado a todos voces pela ajuda!! Abraços!!! Bruno E. A. Silva. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Obter Memoria usada pelo postgres
Boa noite pessoal! Uso linux debian 6 com PostgreSQL 9.0. Preciso saber a quantidade de memoria utilizada pelo postgres em um determinado BD. Isto é possivel? E a memoria total usada pelo Postgres? Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado
Desculpe a demora em responder pessoal! Mas obrigado a todos vocês!! Em 22 de novembro de 2011 14:01, Paulo Vitor Bettini de Albuqerque Lima paulovitor...@gmail.com escreveu: select min(data), mem from usodememoria group by mem Eu tentei assim mas nao chega ao resultado esperado. Obrigado! Atenciosamente, Paulo Vitor Bettini de Albuquerque Lima http://about.me/paulolima -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado
Bom dia. Segue o select que aqui deu certo, qualquer coisa posta ai. select * from ( select distinct(tp.mem) as mem,min(tp.data) as data from tmp.tb_tmp tp group by tp.mem having count(tp.mem) 1 --se quiser apenas os que tiveram modificacao ) as foo order by mem,data Quase funcionou, exceto por um detalhe: - Em 2011-11-21 15:34:00, mem 1054 volta a repetir. ele deveria ter tambem entrado no resultado, ou seja: eu teria 2 saidas para 1054, uma as 15:26:00 e outra as 15:34:00. Abaixo é o resultado que preciso ter: data | mem ---+-- 2011-11-21 15:21:00 | 1038 2011-11-21 15:22:00 | 1049 2011-11-21 15:25:00 | 1052 **2011-11-21 15:26:00 | 1054* 2011-11-21 15:29:00 | 1065 2011-11-21 15:30:00 | 1080 2011-11-21 15:32:00 | 1073 2011-11-21 15:33:00 | 1065 * *2011-11-21 15:34:00 | 1054* De qualquer forma, valeu muito!!! Abraços, Espero que te ajude. Abraços! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado
Em 29 de novembro de 2011 10:56, JotaComm jota.c...@gmail.com escreveu: Olá, Não entendi. O que você precisa como resultado? É uma ou mais linhas por mem? Qual é a lógica que precisa ser utilizada? A Lógica é esta: Meu ambiente real: Tenho um script que a cada 1 minuto grava na tabela usodememoria a data atual (que o script esta executando) e quantidade de memoria RAM utilizada. Esta tabela funciona como um log. No final do dia, eu preciso gravar em uma outra tabela apenas o uso de memoria alterado ou seja: a) Durante o dia e gravei os seguintes usos de memoria: data | mem ---+-- 2011-11-21 15:21:00 | 1038 2011-11-21 15:22:00 | 1049 2011-11-21 15:23:00 | 1049 2011-11-21 15:24:00 | 1049 2011-11-21 15:25:00 | 1052 2011-11-21 15:26:00 | 1054 2011-11-21 15:27:00 | 1054 2011-11-21 15:28:00 | 1054 2011-11-21 15:29:00 | 1065 2011-11-21 15:30:00 | 1080 2011-11-21 15:31:00 | 1080 2011-11-21 15:32:00 | 1073 2011-11-21 15:33:00 | 1065 2011-11-21 15:34:00 | 1049 Observe que: 1) As 15:21H a memoria usada era 1038 2) As 15:22H era 1049 e permaneceu assim ate 15:25H cujo valor foi para 1052 3) De 15:25H foi subindo ate as 15:33H com valor em 1065 4) Finalmente as 15:34H, a memoria usada voltou para 1049 No meu relatorio eu preciso remover os momentos em que o uso de memoria permanece constante, como de 15:22H ate as 15:25H. Na tabela final eu preciso gravar apenas os momentos que sofreram alteracoes, e nao os momentos constantes, que neste caso, seria o resultado abaixo: data | mem ---+-- 2011-11-21 15:21:00 | 1038 * 2011-11-21 15:22:00 | 1049 ** 2011-11-21 15:25:00 | 1052 *2011-11-21 15:26:00 | 1054 ** 2011-11-21 15:29:00 | 1065 * 2011-11-21 15:30:00 | 1080 ** 2011-11-21 15:32:00 | 1073 2011-11-21 15:33:00 | 1065 * 2011-11-21 15:34:00 | 1049 *** (*) momentos de memoria constante (**) finalmente a memoria utilizada diminui OBS.: os asteriscos (*) nao fazem parte do select, são apenas para demonstrar o momentos de constancia da memoria. Observe que os momentos em que a memoria permaneceu constante foram removidos, ficando apenas os instantes de alteração no uso da memoria. Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado
2011/11/29 Marcone marconepe...@gmail.com Acho que uma coisa bem simples pode resolver: select min(data) as 'data', mem from tabela group by mem order by 1; Nao funcionou, Os registros abaixo nao apareceram no resultado: data | mem --+-- 2011-11-21 15:33:00 | 1065 2011-11-21 15:34:00 | 1049 veja o resultado moi= select min(data) as data, mem from usodememoria group by mem order by 1; data | mem -+-- 2011-11-21 15:21:00 | 1038 2011-11-21 15:22:00 | 1049 2011-11-21 15:25:00 | 1052 2011-11-21 15:26:00 | 1054 2011-11-21 15:29:00 | 1065 2011-11-21 15:30:00 | 1080 2011-11-21 15:32:00 | 1073 (7 rows) -- Marcone Peres - DBA http://www.linkedin.com/in/marconeperes @marconeperes (61) 8146-0028 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Fwd: select com distinct no proximo valor alterado
Boa tarde pessoal! os seguintes dados: $ select * from usodememoria; data | mem ---+-- 2011-11-21 15:21:00 | 1038 2011-11-21 15:22:00 | 1049 2011-11-21 15:23:00 | 1049 2011-11-21 15:24:00 | 1049 2011-11-21 15:25:00 | 1052 2011-11-21 15:26:00 | 1054 2011-11-21 15:27:00 | 1054 2011-11-21 15:28:00 | 1054 2011-11-21 15:29:00 | 1065 2011-11-21 15:30:00 | 1080 2011-11-21 15:31:00 | 1080 2011-11-21 15:32:00 | 1073 2011-11-21 15:33:00 | 1065 2011-11-21 15:34:00 | 1054 Preciso fazer um select que me retorne, agrupando conforme o valor de mem e a data, onde mem sofre alteração na data posterior. O resultado abaixo: data | mem ---+-- 2011-11-21 15:21:00 | 1038 2011-11-21 15:22:00 | 1049 2011-11-21 15:25:00 | 1052 2011-11-21 15:26:00 | 1054 2011-11-21 15:29:00 | 1065 2011-11-21 15:30:00 | 1080 2011-11-21 15:32:00 | 1073 2011-11-21 15:33:00 | 1065 2011-11-21 15:34:00 | 1054 Já tentei de várias formas fazer com distinct e nao consegui chegar nem perto disto. Nao estou conseguindo montar a logica do select. Alguém pode me ajudar com isto?? Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PG 9.0.4 + Sistema de arquivo
Eu faria um teste com REISERFS. A pouco tempo, em outros SGBDs, tive performance em um BD de 20GB aproximandamente, em 10 VEZES mais rapido o tempo de resposta (INSERT, SELECT, UPDATE). ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PgDesigner
Em 14 de abril de 2011 17:48, Leandro DUTRA leandro.gfc.du...@gmail.comescreveu: 2011/4/14 Marcel Farias Costa marcelffar...@gmail.com Eu ja tinha instalado o PostgreSQL 9.0.3 instalado da maquina. Essa semana achei uma ferramenta pra Design de modelo. So que, esse modelo só exportar para versões anteriores, a minha? O que vocês acham? teria uma versão nova do PgDesigner? Ja deu um olhada no ERMaster, um plugin para o eclipse?? eu uso ele e funciona perfeitamente para Postgresql 9.0 ___ 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 instalando PG no Windows 7 Professional
Em 10 de janeiro de 2011 17:29, Jarbas Campos jcampos2...@gmail.comescreveu: Pessoal, Sou novo aqui na lista e agradeceria se alguém me desse uma dica de como sair desse erro. Por incrível que pareça pesquisei na internet inteira e não achei uma resposta a este problema. Quando tento instalar o PG (versão 9.0.2-1) no Windows 7 Professional ocorre o seguinte erro: Unable to Write inside TEMP environment path. Verifiquei tudo a respeito de permissão de acesso, tentei mudar a variável de ambiente TEMP para outro diretório sem qualquer restrição de acesso mas nada resolveu. Se alguém tem uma saída agradeço desde já. Tenta instalar com Modo de Compatibilidade, se nao der certo, Execute o instalador com o Usuário Administrador (via Terminal, ou fazendo Login). OBS.: o usuário Administrador é preciciso ser habilidado para fazer login. -Jarbas Enviado via iPad ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] [duvidoso] Re: Disponibilizar consulta ao LOG do PostgreSQL
Em 26 de dezembro de 2010 15:26, Israel Teixeira israel.teixe...@gmail.comescreveu: Grava os logs em uma tabela e diponibiliza a mesma para consulta. Em paralelo cria uma rotina de expurgo. Ótima idéia gravar os logs em uma tabela. Como é que faço esta implementação? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PGSQL 9.0 Contrib no Ubuntu 10.04
E ai pessoal, Beleza? So para informar, o Martin liberou os outros pacotes do PostgreSQL 9.0 para Ubuntu: - postgresql-9.0 - postgresql-client-9.0 - postgresql-contrib-9.0 - postgresql-doc-9.0 - postgresql-plperl-9.0 - postgresql-plpython-9.0 - postgresql-pltcl-9.0 - postgresql-server-dev-9.0 Att, Moisés P. Sena http://moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] PGSQL 9.0 Contrib no Ubuntu 10.04
Ola pessoal, Tenho o PostgreSQL 9.0 instalado via apt-get do repositorio PPA ( https://launchpad.net/~pitti/+archive/postgresql) so que lá nao tem contrib. Como faço para instalar o contrib, neste caso? -- Att, Moisés P. Sena http://moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PGSQL 9.0 Contrib no Ubuntu 10.04
Em 24 de setembro de 2010 15:09, Euler Taveira de Oliveira eu...@timbira.com escreveu: Moisés P. Sena escreveu: Como faço para instalar o contrib, neste caso? Esperar o Martin publicar os outros pacotes? Obrigado Euler, Tenho um pouco de urgencia, o que preciso mesmo é das funcoes de lo, do contrib. Se tiver jeito, posso compilar o contrib na mao mesmo. Tentei fazer este processo: Baixei os fontes do PostgreSQL 9.0 os extrair em /usr/local/src/postgresql-9.0.0, entrei no diretório /usr/local/src/postgresql-9.0.0/contrib/ e compilei conforme o arquivo README: # make all # make install os arquivos foram instalados em /usr/local/pgsql/lib e /usr/local/pgsql/contrib. Até ai, beleza, adicionei o caminho /usr/local/pgsql/lib no propriedate dynamic_library_path, do arquivo /etc/postgresql/9.0/main/postgresql.conf : dynamic_library_path = '/usr/local/pgsql/lib:$libdir' restarto o postgresql: # service postgresql restart Agora vou adicionar o lo do contrib: # su - postgresq $ psql template1 /usr/local/pgsql/contrib/lo.sql Neste ponto, recebo a mensagem de erro dizendo que nao possivel encontrar o arquivo $libdir/lo. Verifiquei o $libdir original é /usr/lib, entao, fiz un link simbolico: # ln -s /usr/local/pgsql/lib/lo.so /usr/lib/lo.so # ln -s /usr/local/pgsql/lib/lo.so /usr/lib/lo nem assim funcionou. Conhece um forma de resolver isto até que o Martin publique o pacote? -- 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 -- Att, Moisés P. Sena http://moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Pl/PHP CentOS PHP SAPI Error
Boa Tarde pessoal! Estrou precisando instalar Pl/PHP mas está dando o seguinte erro: checking whether PHP is compiled with the Embed SAPI... no configure: error: PL/php requires the Embed PHP SAPI. Meu ambiente é: CentOS 5.5 x86_64, PHP 5.3.3 - bibiotecas do PHP: # find / -name *php*.so /usr/lib64/httpd/modules/libphp5.so /usr/lib64/libphp5.so /usr/lib64/php/modules/phpcups.so /usr/lib64/libphp5-5.3.3.so - módulos do PHP: php-dev php-embedded php-pear etc.. Att, Moisés P. Sena http://moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Shared_buffer startup error
2010/7/17 Moisés P. Sena moisesps...@gmail.com Boa tarde pessoal! Tenho um VPS, CentOS 5.5, com 1,5 GB de RAM e Postgresql 8.4 alterei shared_buffer de 32MB para 368MB e o mesmo nao quer mais iniciar. Obrigado a todos vocês, eu realmente estava com muito pouca informação a respeito, ia acabar fazendo besteira no servidor ..rs *Joao Cosme de Oliveira Junior, *Tem como você me passar uma base destes calculso relativos a numero de conexoes, que poderá influenciar no parametro share_buffer? -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.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
[pgbr-geral] Shared_buffer startup error
Boa tarde pessoal! Tenho um VPS, CentOS 5.5, com 1,5 GB de RAM e Postgresql 8.4 alterei shared_buffer de 32MB para 368MB e o mesmo nao quer mais iniciar. Veja o Log: # tail /var/lib/pgsql/pgstartup.log - FATAL: could not create shared memory segment: Invalid argument DETAIL: Failed system call was shmget(key=5432001, size=395280384, 03600). HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 395280384 bytes), reduce PostgreSQL's shared_buffers parameter (currently 47104) and/or its max_connections parameter (currently 103). If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for. The PostgreSQL documentation contains more information about shared memory configuration. - -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Shared_buffer startup error
2010/7/17 Joao Cosme de Oliveira Junior joao.co...@serpro.gov.br Opa... Altere os parametros do kernel :) http://www.postgresql.org/docs/8.4/static/kernel-resources.html Alterei o paramentro kernel.shmmax para 368MB: # joe /etc/sysctl.conf kernel.shmmax = 385875968 # echo '385875968' /proc/sys/kernel/shmmax Funcionou perfeitamente! Obrigado! João Cosme de Oliveira Júnior Seja inteligente, use Software livre!!! LPI Certified LPI000185554 -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] BotecoNet 4Linux amanhã sobre Postg reSQL
Valeu Flávio!! Faz tempo que esperava um destes!! Grande Abraço Em 30 de junho de 2010 11:05, Gurgel, Flavio fla...@4linux.com.brescreveu: Olá a todos Amanhã tem BotecoNet 4Linux e gostaria de convidar a comunidade PostgreSQL a participar. A inscrição é gratuita e o evento é online, ao vivo. Os detalhes estão abaixo Abraços a todos Flavio Gurgel BotecoNet Novidades sobre o PostgreSQL apresentadas na PGCon do Canadá PostgreSQL 9.0 – vem aí a alta disponibilidade e performance que você esperava. Participe amanhã, 01/07/2010 a partir das 21h00 (horário de Brasília), ao vivo pela internet, bate papo com Flávio Gurgel, palestrante da edição PGCon 2010 no Canadá. Além de outras novidades, Flávio comentará sobre a funcionalidade mais interessante e que causou maior frisson na PGCon: hot-standby. Vejam outros assuntos que serão abordados nesta edição do BotecoNet: O que é um cluster de alta disponibilidade? O que é um cluster de alta performance? Como era no PostgreSQL até 8.x e como será no 9.0? Como aplicar isso nos ambientes de produção? Projeto Postgres-XC? Algumas perguntas que serão respondidas: O PostgreSQL poderá compartilhar discos como no Oracle RAC? Por que a escalabilidade horizontal é tão difícil de atingir num ambiente com muita escrita? Existe alguma restrição para usar o hot-standby? Posso usar a replicação para servidores remotos? Existe ferramenta de gerenciamento gráfico para o PostgreSQL 9.0? Flavio Henrique Araque Gurgel é instrutor e consultor de bancos de dados da 4Linux, engenheiro eletricista pela Universidade Federal do Paraná (UFPR). Atua em projetos de dimensionamento, tuning de bases de dados e no suporte aos cliente. Para participar, basta fazer sua inscrição gratuita, através do link: http://www.4linux.com.br/boteco-4linux Alguns minutos antes do inicio do BotecoNet, a 4Linux enviará um e-mail aos inscritos com o link para que possam acessar e participar ao vivo. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Instalar Linguagem procedural C
Em 24 de junho de 2010 18:03, Andre Fernandes fernandes.an...@gmail.comescreveu: A linguagem C não é apresentada mesmo pela pg_languages. Mas não precisa se preocupar, poderás escrever funções em C tranquilamente. Obrigado, André! vou fazer uns testes aqui. André de Camargo Fernandes ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Instalar Linguagem procedural C
Em 23 de junho de 2010 11:17, Andre Fernandes fernandes.an...@gmail.comescreveu: Bom dia, não é necessário instalar, a linguagem C já vem instalada em qualquer instalação do postgreSQL. quando executo SELECT * FROM pg_languages, a linguagem C não é exibida ... -- André de Camargo Fernandes __ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] [meio off] Nagios e PostgreSQL
Pro Em 18 de junho de 2010 16:34, André Ormenese ( Yahoo ) ormen...@yahoo.com.br escreveu: Luigi, a permissão já estava em 0600. Consigo executar, inclusive, o psql logado como nagios sem precisar passar a senha. O .pgpass é utilizado sem problema. Na linha de comando também funcionam os comandos do check_postgres. Só a interface web que não vai !!! Valeu pela dica André Verifique qual o usuário está executando PHP, normalmente é daemon ou www ou ainda www-root, ou ainda www-data. Você pode verificar isto criando um arquivo em php que crie um diretorio qualquer, acesso pelo navegador e veja qual é o usuário dono do novo diretório. De permissão a este usuário para acessar o .pgpass. pode ser que resolve. Exemplo de script (usei no kubuntu 10.04): $ echo '?php mkdir(/tmp/teste-dir); ' ~/public_html/teste.php http://localhost/~moi/teste.php O diretório teste-dir foi criado em /tmp. Se exibir informações avançadas do arquivo: $ ls -l /tmp drwxr-xr-x 2 www-data www-data 4096 2010-06-23 00:03 teste-dir observe que o dono do arquivo é o www-data. neste caso a permissão de acesso ao arquivo .pgpass talvez tem que ser aplicada a este usuário, como no exemplo. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] ajuda - INSERT mensagens de erro
Em 1 de junho de 2010 11:50, Rodrigo Justina rodrigodellajust...@gmail.comescreveu: Existe Log sim no caso de desenvolvimento você pode habilitar o log da seguinte maneira no arquivo postgresql.conf que fica na pasta data tanto para windows como para linux habilite as seguintes opções removendo o # da frente da mesmas. O arquivo postgresql.conf, considerando ubuntu 9.10 e PostgreSQL 8.4, fica no diretório /etc/postgresql/8.4/main. Outros arquivos de configuração do postgresql também ficam neste mesmo diretório. #log_statement = 'none' # none, ddl, mod, all altere para log_statement = 'all' defina qual é a pasta que irá gravar os arquivos de logs log_directory = 'pg_log' e mande executar o mesmo todos os comandos, insert,update,delete,select estarão sendo armazenados neste log aí você pode avaliar qual é o erro que está ocorrendo. att Rodrigo Della Justina rodrigodellajust...@gmail.com -- Moisés P. Sena (Programador WEB) http://www.moisespsena.com http://blog.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: RES: quantiade de caracteres
2010/5/12 José Carlos Messias zehkar...@gmail.com ou ainda postgres=# select length(regexp_replace('222.123.333.5','[0-9]','','g')); length 3 (1 row) O problema é que RegExp vicia .hehe -- Moisés P. Sena (Programador WEB) http://www.moisespsena.com http://blog.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] conexao com remota no postgreSQL 8.4.3/Linux
Em 28 de abril de 2010 22:46, Flávio Alves Granato digitaldr...@gmail.comescreveu: Boa noite, Estou tendo um problema para conectar ao postgresql em uma máquina remota no ec2 da amazon. ocorre este erro abaixo e eu não sei o que fazer: FATAL: no pg_hba.conf entry for host 187.35.220.44, user postgres, database postgres, SSL on FATAL: no pg_hba.conf entry for host 187.35.220.44, user postgres, database postgres, SSL off Meu pg_hba.conf local all postgres ident # TYPE DATABASEUSERCIDR-ADDRESS METHOD # local is for Unix domain socket connections only local all all ident # IPv4 local connections: hostall all 127.0.0.1/32 md5 hostall all 0.0.0.0/32md5 # IPv6 local connections: hostall all ::1/128 md5 e configurei o postgresql.conf também com listen_addresses = '*' # what IP address(es) to listen on; se alguém puder me ajudar. atenciosamente, Já tentou trocar hostall all 0.0.0.0/32md5 por hostall all 0/0 http://0.0.0.0/32 md5 ? -- Moisés P. Sena (Programador WEB) http://www.moisespsena.com http://blog.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] conexao com remota no postgreSQL 8.4.3/Linux
Em 28 de abril de 2010 23:06, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: hostall all 0.0.0.0/32md5 Não seria 0.0.0.0/0? 0/0 também funciona, pelo menos comigo. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Moisés P. Sena (Programador WEB) http://www.moisespsena.com http://blog.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Problema de conexão PGSQL em CentOS 4.7
Em 25 de abril de 2010 09:54, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Creio que o CIDR-ADDRESS especificado no pg_hba.conf deva ser: 0.0.0.0/0 Osvaldo PS.: Não se esqueça de dar um pg_ctl reload após a modificação. Fiz isto também mas não resolveu -- Moisés P. Sena (Programador WEB) http://www.moisespsena.com http://blog.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Problema de conexão PGSQL em CentOS 4.7
Em 25 de abril de 2010 14:59, JotaComm jota.c...@gmail.com escreveu: Olá, Tem algum firewall no servidor? Não tenho certeza, mas mesmo assim já executei o comando abaixo no IPTABLES: # iptables -A INPUT -p tcp --dport 5432 -j ACCEPT A não ser que exista outro, que eu desconheça. Conhece algum comando para verificar isto? As máquinas estão na mesma rede ou estão em redes separadas por alguma VPN? É um servidor de hospedagem VPS, em datacenter nos EUA, a conexão é remota, sem VPN. []s -- JotaComm http://jotacomm.wordpress.com -- Moisés P. Sena (Programador WEB) http://www.moisespsena.com http://blog.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Problema de conexão PGSQL em CentOS 4.7
Boa noite pessoal, Tenho um servidor linux, Cent'OS 4.7, com o PostgreSQL 8.4.3 rodando perfeitamente. Entretanto, não consigo acessar o mesmo remotamente, recebo a mensagem de erro psql: could not connect to server: Connection timed out (0x274C/10060) Is the server running on host moisespsena.com and accepting TCP/IP connections on port 5432? arquivos: pg_hba.conf local all alltrust hostall all 0/0 trust postgresql.conf: listen_addresses = '*' #port = 5432 max_connections = 100 Quando executo o coamando #netstat -nap | grep 5432: - tcp0 0 0.0.0.0:54320.0.0.0:* LISTEN 13363/postmaster unix 2 [ ACC ] STREAM LISTENING 3116966196 13363/postmaster/tmp/.s.PGSQL.5432 Alguém tem alguma idéia de como resolver isto? -- Moisés P. Sena (Programador WEB) http://www.moisespsena.com http://blog.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Otimizações Sistema/PostgreSQL
Em 22 de março de 2010 08:41, Euler Taveira de Oliveira eu...@timbira.comescreveu: Geralmente não é o PHP e sim o Apache. Por isso disse para verificar as configurações do Apache (pois ele não libera imediatamente os recursos). -- Euler Taveira de Oliveira http://www.timbira.com/ Estes dias ouvi falar do Ngix, uma alternativa ao Apache e que tem feito um sucesso extraordinário ultimamente, principalmente em relação a desempenho. Usuários tem tem tido mais de 1000 acessos simultaneos com o Ngix contra media de 200 do apache. Ainda nao fiz testes sobre esta ferramento, mas pretendo fazer em breve. mais informações voce pode encontrar no site oficial[1] e até um tutorial de instalação e configuração do mesmo[2]. Acredito que valha a pena dar uma pesquisada. [1] http://nginx.org/ [2] http://ferrari.eti.br/php-5-3-php-fpm-xcache-nginx-no-debian-lenny-performance-extrema/ [3] http://ferrari.eti.br/nginx-webserver-proxy-reverso-e-perfeito/ [4] http://www.vivaolinux.com.br/artigo/Nginx-Poderoso-servidor-WEB-para-Linux/?pagina=3 [5] http://blog.caelum.com.br/tag/nginx/ -- Moisés P. Sena (Programador WEB) http://blog.moisespsena.com http://www.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PgMail - Sistema de Login para site de Intranet
Em 20 de março de 2010 01:31, tiago gomes tiagotecno...@gmail.comescreveu: Olá pessoal, Sou novo no Postgres e quero saber como se faz um sistema de login com níveis de acesso para um site intranet. Eu sei faser em MySQL mas quero entrar no mundo Postgres. O Sistema de login está relacionado com o servidor web, e nao com o banco de dados diretamente. Quem vai definir se o usuário tem ou não permissao de acesso é a sua aplicação no servidor (por exemplo uma pagina PHP), e esta aplicacao é quem decide se os dados de usuario em questao (normalmente vindo de um formulario) deverao ser encontrados em base de dados ou simplesmente em um arquivo texto, ou ainda, ver se este usuario esta cadastrado em um outro servidor. O Banco de Dados é portanto apenas um lugar onde estes dados podem ficar para serem consultados pela aplicação. Se voce tem uma aplicacao que funciona muito bem com MySQL, pode portanto utilizar a mesma para o PostgreSQL. Passos para a implementação: - Instar e habilitar o modulo php-pgsql do php [1][2] - Criar o BD no servidor PostgreSQL - Criar as tabelas que estao no MySQL no BD PostgreSQL - Nas funcoes/objetos que você usa para conectar com o MySQL, alterá-las para conectar com o PostgreSQL. Por exemplo: Se voce usa a funcao mysql_connect, devera ser trocada por pg_connect Para utilizacao e implementacao das funcoes do PostgeSQL, voce pode ver [3] [1] Instalacao no Windows: http://www.php.net/manual/pt_BR/pgsql.setup.php [2] Instalacao no Linux: Ubuntu/Debian: # apt-get install php5-pgsql libpq-dev http://ribafs.org/portal/colaboracoes/1-ribamar-fs/82-instalar-apache-php-mysql-e-postgresql-no-ubuntu Cent'OS/RedHat/Fedore: http://dickrips.wordpress.com/2009/01/16/apache-php-postgresql-no-centos-e-fedora/ [3] http://www.php.net/manual/pt_BR/ref.pgsql.php -- Moisés P. Sena (Programador WEB) http://blog.moisespsena.com http://www.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral