Mais um video de musica de Jonas L.A. foi divulgado. Desta vez de Closer and Closer (nao sabemos se e o nome oficial da musica). Confira no video a seguir: Pessoal,Esta aberta a chamada de trabalhos para o PGBR2013. Vamos la, se inscreva... estamos ansiosos para saber o que voce tem feito com o PostgreSQL... nos encontramos em Porto Velho/RO de 15 a 17 de agosto de 2013.--Fabrizio de Royes Mellofabriziomello [at] gmail.com Pessoal,Montei um pequeno video [1] que mostra a atividade do repositorio GIT do PostgreSQL nos ultimos meses.Para gerar o video usei o Gource [2].[1] http://www.vimeo.com/30394945[2] http://code.google.com/p/gource/---Fabrizio Mellofabriziomello [at] gmail.com Apos algumas discussoes [1] meu patch para adicionar a clausula "IF NOT EXISTS" no "CREATE SCHEMA" foi aceito e efetuado o commit na branch master do git oficial do PostgreSQL [2] pelo commiter Mr. Tom Lane.Agora na 9.3 poderemos usar a clausula "IF NOT EXISTS" no "CREATE SCHEMA" para que nao gere um erro (cancelando transacao atual) caso o esquema que esta sendo criado ja exista, por exemplo:BEGIN; CREATE SCHEMA IF NOT EXISTS foo; CREATE TABLE foo.bar();COMMIT;O exemplo acima caso o esquema "foo" ja exista nao sera gerado um erro e a transacao ira prosseguir normalmente. O comportamento e similar ao ja existente "IF NOT EXISTS" do "CREATE TABLE" [3].[1] https://commitfest.postgresql.org/action/patch_view?id=907[2] http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fb34e94d214d6767910df47aa7c605c452d11c57[3] http://www.postgresql.org/docs/9.2/interactive/sql-createtable.html---Fabrizio de Royes Mellofabriziomello [at] gmail.com Ja faz algum tempo que nao escrevo nada por aqui, mas nao e por falta de tempo ou coisa parecida, e que na realidade nao tenho muita intimidade com artigos ou posts em blogs, mas resolvi escrever um "causo" a pedido do amigo Fernando Ike sobre um tweet que lancei ha algum tempo depois de obter sucesso em um projeto.Aviso antecipadamente que o post e um pouco longo, entao se nao estiver com paciencia agora recomendo vc sair tomar um cafe (ou uma cerveja) e voltar outra hora... desculpe mesmo, tentei reduzir o maximo... :-(ContextualizacaoPara vcs entenderem porque cheguei aqui, vou comecar dos primordios... eu tenho (ou tinha...hehehe...) um problema com um ETL em uma aplicacao de um cliente (nao tenho autorizacao para "dar nome aos bois") que basicamente processava os registros de uma grande tabela com dados financeiros e gerava uma "posicao" da mesma calculando correcao monetaria, juros, multas, descontos, etc...Esse ETL sempre foi e ainda e ridiculamente simples, porque basicamente e uma PL/pgSQL dentro do PostgreSQL que faz todo esse trabalho de ler os dados de uma tabela, processar e carregar os mesmos em outra tabela. Ate aqui tudo bem, sempre funcionou maravilhosamente bem, mas com bases pequenas... mas tambem nao queremos maravilhas de desempenho processando milhares de registros em uma unica transacao ne, e obvio que isso gera problemas.Primeira tentativa... e um sucesso, digamos, opaco...Ha alguns anos eu ja tinha melhorado essa rotina dividindo o processamento em lotes menores, atraves de um shell script que fazia esse trabalho de divisao em lotes por uma coluna da tabela que categorizava os registros em um determinado tipo, entao primeiro identificamos os tipos existentes na tabela origem e processava os mesmos gerando tabelas individuais para cada tipo, e ao final juntava tudo