hum... no quesito procedures no Postgres um dificuldade que tive foi fazer um 
laço que percorresse as colunas de uma tabela, exemplo:

No AfterPOST

while EOF  -- percorre o registro
   for i ate tabela.colunas.conta
        se old.campo[i].valor <> new.campo[i].valor
            ...

No Firebird isso é facim com Fields se não me engano 
isso é muito usado pra guardar logs de alteração em determinadas tabelas
hoje faço isso via sistema


Marcelo Silva
-------------------------------


From: Matheus de Oliveira 
Sent: Friday, August 17, 2012 1:50 PM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral] firebirs X postgres


2012/8/17 Alberto Radtke <albert...@gmail.com>

  Bom, vou tentar esclarecer o ambiente e dai a problemática.

  # Temos uma aplicação web, onde a partir do login (cliente) é
  identificado qual base de dados ele deve acessar.
  # As bases de dados ficam todas em um mesmo servidor e na mesma
  estrutura de diretório.
  # Cada base de dados corresponde a um arquivo separado


Então sem dúvida você terá um único cluster do PostgreSQL.

Quanto à usar bases de dados ou esquemas, vai ser uma questão de escolha, 
parece que pra você qualquer um vai ter o mesmo trabalho na mudança.
Mas acho que vai ter muito mais vantagens com esquemas, já que você tem dados 
que são "globais", ou seja, usado por todos.
Uma dica no caso de esquemas, seria que deixe um esquema para dados "globais" e 
um para cada cliente, daí após o login você altera o search_path para casar com 
o esquema do cliente.

Exemplo:

SET search_path TO esquema_cliente_xxx, esquema_global;

Estudo um pouco sobre schemas e search_path para entender melhor.

 

  # Hoje o ambiente é Microsoft mas está em movimentação para Linux.


Ótimo!
 

  # É utilizado intensamente procedures e trigres, então o maior
  trabalho não é a migração da estrutura e os dados, mas sim as
  procedures e trigres, que em alguns casos são bem complexas.


Não tem muito jeito, terás de fazer isso na "mão". Eu recomendo a PL/pgSQL 
mesmo, que a sintaxe é semelhange à do Firebird.

Só uma dica, a forma de retorno de funções do Firebird seguem "exatamente" o 
mesmo modelo que o RETURNS TABLE do PostgreSQL, isso vai te ajudar na 
conversão. Daí você simplesmente trocará o comando SUSPEND por RETURN NEXT.

Não seria legal se alguém criasse uma linguagem para o PostgreSQL baseada na 
sintaxe do Firebird?
Na teoria seria só adaptar a gramática da pgSQL, na prática eu dúvido que seja 
tão simples assim.
 


  Meu problema é que com o Firebird é em achar mão de obra e suporte
  documental. Então estamos analisando o custo benefício da migração
  para o PostgreSQL.

  Ai vem a discussão que estou levantando aqui, para eu poder ter a
  visão de muitas pessoas para tomar alguma decisão, pois em termos de
  documentação oficial e números não achei nada para ajudar.



Não entendi. De que números está falando? 


 
--
Matheus de Oliveira




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

Responder a