== 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 discussã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 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ção 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 d’algumas 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 re-tentar 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üências 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 caractere além de uma contagem de caracteres. 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 sub-vetores NULL, o que não parecia razoável. Por falta de idéia melhor, agora trata sub-vetores 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 pesquisar 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 potencial 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
