== Notícias Semanais PostgreSQL — 13 de novembro de 2006 == Foi liberado o PostgreSQL 8.2 β3. Testai-o! :-)
Simon RIGGS começou uma discussão na lista -hackers sobre como abordar o problema das ‘tabelas quentes’. Ele também propôs um projeto. A discußão continua. Lorenzo ALBERTON montou uma ‘página de dicas’ (/cheat sheet/) para o PostgreSQL, http://www.alberton.info/postgresql_cheat_sheet.html == PostgreSQL Product News == Nairo, http://www.nairo.eu./, é um sistema de jogos para navegadores da Teia que roda sobre Apache, PHP4 e PostgreSQL 8.1.x ou posterior. Esse projeto NairoGMS (Sistema Gestor de Jogos Nairo, /Nairo Game Management System/) foi projetado para ajudar as pessoas a criarem seus próprios jogos para a Teia. Veja atualizações no sítio PgFoundry: http://pgfoundry.org/projects/nairogms/ Lançado o Navicat PostgreSQL 7.2.8 para MS Windows: http://pgsql.navicat.com/ Liberada a versão candidata 2 do pgAdmin III v1.6 (/Release Candidate 2/): http://www.pgadmin.org/download/ Lançado o MicroOLAP PostgresDAC 2.3.6: http://microolap.com/products/connectivity/postgresdac/ Liberado o β do Continuent.org's Sequoia 3.0: http://www.continuent.com/index.php?option=com_content&task=view&id=348&Itemid=88 == Empregos PostgreSQL em novembro == http://archives.postgresql.org/pgsql-jobs/2006-11/threads.php == PostgreSQL Local == Tudo foi global esta semana. == PostgreSQL no Noticiário == Planeta PostgreSQL: http://www.planetpostgresql.org/ General Bits, arquivos e, ocasionalmente, novos artigos: http://www.varlena.com/GeneralBits/ As Notícias Semanais PostgreSQL foram compiladas para você esta semana por David FETTER e Dave PAGE. Traduzido por Leandro GFC DUTRA. == Remendos Aplicados == Por Tom LANE: - Suprime alguns avisos de ‘variável não inicializada’ emitidos pelo gcc somente em -O3 ou superior (provavelmente porque coloca mais coisas em linha). Pela reclamaçõa de Mark MIELKE. - Conserto de pg_get_serial_sequence(), que podia responder incorretamente com o nome de um índice numa coluna definida sobre o tipo serial, em vez do nome da seqüência associada. Efeito colateral das recentes mudanças nas dependências do tipo serial. Do erro #2732 de Basil EVSEENKO. - Limpeza dalgumas referências que descreviam %p incorretamente como um caminho completo, por Simon RIGGS. - Melhoria da formatação de descrições de argumento de PQexecParams, por Theo KRAMER. - Em create_function.sgml, enfatiza que funções imutáveis e estáveis não podem modificar a base de dados. xfunc.sgml já era bastante categórico a esse respeito, mas não custa esclarecer aqui também. - Corrige erros na coluna key_column_usage.position_in_unique_constraint recentemente adicionada ao information_schema (uma adição do ISO SQL:2003). O código original falhava se uma coluna referenciada participava em mais de uma entrada constante de pg_constraint. Além disso, também não funcionava se uma chave estrangeira baseava-se diretamente num índice único sem frescuras sintáticas de restrição de integridade. Esse caso está fora da especificação ISO SQL, mas o PG sempre o suportou, então é razoável que nosso information_schema lide com isso também. Do erro #2750, relatado por Stephen HABERMAN. - Corrige set_joinrel_size_estimates() para estimar tamanhos de junções externas (OUTER JOIN) mais precisamente: temos de distinguir entre os efeitos da cláusula ON da própria junção e os efeitos das cláusulas internas. Deixar de fazê-lo foi uma gambiarra antiga, mas está na hora de ser mais esperto. Do exemplo de Thomas HALLGREN. - Muda os substitutos de renomeação e desligamento do MS Windows para que vençam em 30 segundos em vez de retentar indefinidamente. Também modifica xlog.c para que, se falhar ao renomear um segmento de xlog antigo para uma posição futura, desligue o segmento. De acordo com a discussão sobre o erro #2712, no qual ficou claro que o MS Windows consegue lidar com o desligamento dum arquivo aberto, mas não com sua renomeação. - Modifica aset.c para controlar explicitamente o tamanho pretendido de alocação de bloco. O código anterior baseava-se no tamanho efetivamente alocado do último bloco, o que fazia com que se comportasse estranhamente se a primeira alocação em determinado contexto fosse maior que ALLOC_CHUNK_LIMIT: alocações subseqüentes baseariam-se nisso e não na série pretendida de tamanhos de bloco. Visto durante o estudo dum problema de desperdício de memória por Tatsuo ISHII. - Ajuste de accumArrayResult() para duplicar o tamanho de seus vetores de trabalho quando se precisa de mais espaço, em vez de incrementá-los por uma quantidade fixa; o método antigo desperdiça muito espaço e tempo quanto o tamanho final é grande. Por reclamação de Tatsuo ISHII. - Conserta problemas de desempenho em replace_text(), replace_text_regexp(), e text_to_array(): todos têm mau comportamento O(N^2) em seqüênicas de entrada longas sob codificações multi-byte, por percorrerem repetidamente o texto de entrada para identificar sub-seqüências cujas posições e comprimentos foram computadas em caracteres em vez de octetos. Corrigindo controlando a posição inicial do momento como um ponteiro caracter além de uma contagem de caracters. Também evita algumas operações palloc desnecessárias. text_to_array() também vazava chamadas internas de memória (/memory intracall/) por falhas de pfree de seqüências temporárias. Por reclamação de Tatsuo Ishii. - Consertar o erro #2694 a respeito de um ARRAY[] cujas entradas são subvetores vazios. De acordo com a discussão, se todas as entradas são vetores vazios, o resultado tem de ser um vetor vazio também, enquanto uma mistura de vetores vazios ou não deveria dar (e sempre dava) um erro. No código histórico (/back branches/), o comportamento era estrito: qualquer entrada NULL imediatamente retornava uma saída NULL; então deixei o comportamento como estava. HEAD simplesmente ignorava os subvetores NULL, o que não parecia razoável. Por falta de idéia melhor, agora trata subvetores NULL exatamente como os vazios. - Remove código de depuração específico para MS Windows; parece que o problema do fopen() não usar FILE_SHARE_DELETE era de fato o problema que procurávamos, dada a falta de reclamações recentes. - Atualizar as notas de lançamento, preparando para o candidato 1 (RC1). - Reverte para o método pré-8.2 de persquisar pela libm, quer dizer, sempre a incluir se vincula com sucesso. Parece arriscado demais pressupor que funções padrão como pow() não sejam casos especiais no compilador. Dum relatório de Andreas LANGE de que a compilação falha no cc do Sun Solaris com -fast. Mesmo que não a consideremos uma opção suportada, preocupo-me que problemas similares apareçam com outros compiladores. - Livra-se de dependências desnecessárias em DataDir: onde possível, o /backend/ deve basear-se em sua configuração de diretório de trabalho. Também policia o estilo de mensagens em contrib/adminpack. - Implementa a correção da recuperação até o momento (/PiT recovery/) retroativamente para a versão 8.1. Pode-se dizer que isso deveria ser corrigido na 8.0 também, mas precisaria de muito mais código porque a 8.0 não percorre pg_database convenientemente na inicialização. A solução manual para o problema é possível na 8.0 (é só remover os arquivos pg_internal.init antes de começar a aplicar os registros de refazer (/write-ahead logs replay/), o que parece suficiente. - Corrige riscos recentemente identificados de recuperação até o momento; a cópia de segurança usada pode conter arquivos de inicialização de relcache vencidos (pg_internal.init), e não há mecanismo para atualizá-los durante a aplicação dos registros de refazer. A solução mais fácil seria simplesmente remover os arquivos init no fim da inicialização, e deixar que o primeiro processo iniciado em cada base de dados tome conta de reconstruir os arquivos de inicialização. Simon RIGGS e Tom LANE. - Conserta problemas recentemente analisados com o manejo do congelamento de XID, particularmente em cenários de recuperação até o momento. Agora incluímos nos registros de refazer a substituição dos XIDs velhos com FrozenTransactionId, para que essa substituição propaga-se garantidamente para as bases de dados escravas via recuperação até o momento. Além disso, em vez de basear-se na preservação dos bits de dica, pc_clog não é truncado até que todas as instâncias dum XID tenham sido reconhecidamente substituídas com FrozenTransactionId. Acrescenta novas variáveis GUC e pg_autovacuum as colunas para permitir a gestão da política de congelamento, para que os usuários possam balancear o tamanho do pc_clog e a quantidade de trabalho de congelamento a se fazer. Revisa o código já existente que força o autovacuum de tabelas próximas do ponto de virada para torná-lo mais robusto; também revisa a lógica de autovacuum para que o vacuum anti-virada ocorra por tabela em vez de por base de dados. Forçado o initdb por causa de mudanças nos catálogos de pg_class, pg_database, e pg_autovacuum. Heikki LINNAKANGAS, Simon RIGGS, e Tom LANE. Por Neil Conway: - No código GIN, conserta alguns erros em comentários. - Edição do capítulo sobre catálogo de sistema. Especificamente, coloca em maiúsculas consistentemente o conteúdo da coluna ‘Descrição’ mas não inclui um ponto final, segundo a convenção no resto dos documentos. TAmbém remove a coluna ‘Referência’ do catálogo quando não há colunas referentes, para concisão. Várias outras correções de SGML e gramática. - Melhorias menores na descrição de archive_timeout. - Limpeza menor de código pgcrypto: para UDFs declaradas estritas, a conferência de se os argumentos de função são NULL é desperdício. - Dois erros tipográficos no README do tsearch2. - Corrige um vazamento de memória do psql: vazávamos umas poucas conexões PGresult se ocorresse um erro de conexão ao executar uma das consultas para ‘\d <tabela>’. Não era sério, mas valia a pena corrigir. Remendo de Brendan JURD. - Remove um comentário de 15 anos atrás questionando comportamento que agora é bem aceito: referenciar um parâmetro indefinido deve resultar em erro, não NULL. - Correção menor de autenticação LDAP: se ocorre um erro, precisamos liberar a conexão LDAP manualmente via ldap_unbind(). Isso não é um problema importante na prática porque um erro normalmente causa o encerramento do processo, mas podemos limpar corretamente sem muitos problemas. En passant, corrige um erro nas instruções do snprintf(): o parâmetro ‘tamanho’ refere-se à memória temporária (/buffer/) de destino, incluindo o espaço para o terminador NUL. Também, dependendo do valor de NAMEDATALEN, o código velho podia permitir um transbordamento de memória temporária (/buffer overflow/). Por Michael MESKES: - No ecpg, um remendo do Peter HARRIS para liberar estruturas auto_mem na conexão. Por Peter SIGAEV: - Novo README para tsearch2. == Remendos rejeitados == Ninguém ficou desapontado esta semana :-) == Remendos pendentes == Andrew DUNSTAN submeteu um remendo, e um sucedâneo, que foram projetados para contornar um problema pontecial quando módulos carregados por PL/PerlU ficam visíveis para código PL/Perl. Brendan JURD mandou um remendo que diferencia gatilhos ativados dos desativados no \d do psql. Heikki LINNAKANGAS mandou um remendo para o 8.3 que otimiza acesso de leitura a tabelas agrupadas (/CLUSTERed/) com colunas estreitas. Brendan JURD mandou um remendo que muda o remendo do Guillaume LELARGE para usar IYYY e IDDD para formatos respectivamente de ano e semana ISO. Magnus HAGANDER mandou um remendo que atualiza as perguntas-e-respostas do mingw FAQ para a situação atual. ---------------------------(fim da transmissão)--------------------------- -- Leandro Guimarães Faria Corcete DUTRA <[EMAIL PROTECTED]> http://orolix.com.br./ +55 (11) 2122 0302 Join the FSF: http://www.fsf.org/register_form?referrer=4686
signature.asc
Description: Esta é uma parte de mensagem assinada digitalmente
_______________________________________________ pgbr-dev mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-dev
