Notiziario settimanale PostgreSQL – 18 gennaio 2009


Il suggerimento della settimana

Per fare il log delle query relativamente a un solo database:

ALTER SET log_statement = ‘all’

Offerte di lavoro su PostgreSQL per gennaio 2009

http://archives.postgresql.org/pgsql-jobs/2009-01/threads.php

Notizie locali su PostgreSQL

Richard Broersma sta coordinando i volontari per uno stand a SCALE (vedi sotto). Mettersi in contatto con lui scrivendo a richard DOT broersma AT gmail DOT com.

I gruppi PostgreSQL e MySQL di Mosca (Russia) organizzano un evento insieme il prossimo 22 gennaio, nella loro città. Per maggiori dettagli e iscrizioni: http://forum.postgresqlrussia.org/viewtopic.php?f=6&t=96

SYDPUG si riunirà il 3 febbraio 2009 alle 6:30 pm. Controllare periodicamente questa pagina per i dettagli. http://archives.postgresql.org/sydpug/

JNBPUG si riunirà il 9 febbraio alle ore 19:00 presso il News Cafe in località New Road, Midrand, Johannesburg, Sudafrica.

Molti dei soliti sospetti parteciperanno al FOSDEM il prossimo 7-8 febbraio a Bruxelles, in Belgio. http://wiki.postgresql.eu/wiki/FOSDEM_2009

PostgreSQL sarà presente a SCALE, che si terrà a Los Angeles (USA), dal 20 al 22 febbraio prossimi. http://www.socallinuxexpo.org/

Il 25 febbraio Andreas ‘ads’ Scherbaum terrà una comunicazione al Perl Workshop 2009, a Frankfurt am Main, in Germania. http://www.perl-workshop.de/talks/151/view

La PostgreSQL Conference U. S. organizzerà un PgDay nell’ambito della LinuxFest Northwest (25, 26 aprile). Informazioni su come proporre una comunicazione sono disponibili sul sito http://www.postgresqlconference.org/

Nei giorni 21 e 22 maggio 2009 all’università di Ottawa, in Canada, si terrà PGCon 2009. Nei due giorni precedenti si terranno dei tutorials. http://www.pgcon.org/2009/papers.php

Il 23 e 24 ottobre 2009 si svolgerà PGCon Brazil, presso Unicamp, nella città di Campinas, stato di San Paolo.

Rassegna stampa su PostgreSQL

Planet PostgreSQL: http://planet.postgresql.org/

Questo notiziario settimanale PostgreSQL è stato realizzato da David Fetter e Josh Berkus; traduzione in lingua italiana a cura di Gianni Ciolli e Gianluca Riccardi.

Notizie o annunci destinati a questo notiziario dovranno pervenire entro la mezzanotte di domenica (le 15 nel fuso orario della California). I comunicati in lingua italiana dovranno essere inviati a pwn@itpug.org; per le lingue inglese o tedesca, si scriva rispettivamente a david@fetter.org o a pwd@pgug.de.

Patch Applicate

Peter Eisentraut ha effettuato i seguenti commit:

  • Aggiunto il supporto per ONLY a LOCK e TRUNCATE. Per default questi comandi sono ora ricorsivi. Annotata questa incompatibilità nelle note di rilascio.

  • In pgsql/src/backend/parser/gram.y, usa qualified_name invece di relation_expr per comandi che non hanno a che fare con la ricorsione di ereditarietà: ALTER INDEX, ALTER SEQUENCE, ALTER TRIGGER, ALTER VIEW. Essi semplicemente ignorerebbero silenziosamente ONLY. ALTER TABLE ha un comportamento misto e non può essere trattato in questo modo a causa dei conflitti di tipo shift/reduce.

  • In pgsql/doc/src/sgml/ref/select.sgml, aggiunta documentazione minima sul fatto che lo standard SQL richiede parentesi dopo ONLY.

  • In pgsql/src/tools/make_etags, rimossa una inutile (e insicura) gestione di files temporanei.

  • In pgsql/src/interfaces/ecpg/ecpglib/Makefile, misc.o dipende da pg_config_paths.h quando si usa –enable-nls.

  • In pgsql/src/pl/tcl/pltcl.c, usato il backend style per i messaggi d’errore.

  • In pgsql/src/backend/catalog/information_schema.sql, adesso le colonne is_insertable_into e is_updatable si comportano correttamente in modo uniforme. Esse dovrebbero esaminare il tipo di rules presenti, cosa che facevano solo in alcune delle viste dell’information schema.

  • In pgsql/src/tools/make_etags, quando si creano TAGS adesso si evitano le directory del sistema di controllo di versione. Oltre che essere inutili, esse possono collidere con i metadati del repository sui filesystem case-insensitive.

  • In pgsql/src/nls-global.mk, fatti dipendere i files .pot dai makefiles, in modo che essi vengono aggiornati quando cambiano le liste delle funzioni trigger o dei file.

  • In pgsql/src/interfaces/ecpg/test/Makefile, innanzi tutto effettua il build di ciò che è necessario in src/test/regress/ . Normalizzazione di alcune regole di build.

  • Ripulito NLS in ecpglib, rimpiazzate le istanze rimaste di _() con ecpg_gettext(); è quest’ultimo il modo corretto per riferirsi al catalogo dei messaggi della libreria, invece di quello del programma che usa la libreria stessa. Dismesso supporto NLS per ecpg_log(), il quale è uno strumento di debug simile a elog() nel backend. Non possiamo supportare NLS nella compatlib di ecpg perché richiede ecpg_gettext, che è in ecpglib, la quale non è una dipendenza di compatlib. Non sembra il caso di preoccuparsene, poiché l’unica stringa traducibile è "out of memory", e gettext probabilmente non sarebbe capace di fare granché senza memoria. Adeguati i messaggi allo stile del progetto.

  • In pgsql/src/pl/tcl/nls.mk, rimossi dei GETTEXT_TRIGGERS inutili.

  • Nel mentre ripulito NLS di PL/Python. Aggiunto supporto di traduzione a PLy_elog e PLy_exception_set e chiariti alcuni messaggi d’errore.

  • In pgsql/src/bin/pg_ctl/pg_ctl.c, rimosso il punto dal messaggio d’errore primario.

  • Migliorata chiarezza e leggibilità in pgsql/src/interfaces/ecpg/ecpglib/error.c.

  • plpython_error.out è per Python 2.4, plpython_error_3.out è per Python 2.5, così com’era in precedenza.

  • In pgsql/src/pl/plpython/expected/plpython_error_1.out, tentativo manuale di aggiornare questo file.

Tom Lane ha effettuato i seguenti commit:

  • In pgsql/src/backend/executor/nodeBitmapHeapscan.c, modificato l’ordine delle operazioni in BitmapHeapNext() per evitare il caso di prefetching della pagina che leggeremo comunque qualche nanosecondo più tardi. Prima di considerare il prefetch occorrerebbe che avessimo qualcosa ancora da fare alla pagina attuale.

  • Risolto un problema di ordinamento di output di pg_dump introdotto in 8.3 dall’aggiunta dei tipi array di tipi compositi. Benché pg_dump abbia capito che non ci si aspettava che facesse il dump di questi tipi array come oggetti separati, deve comunque includerli nell’analisi dell’ordine delle dipendenze, e inoltre assegnava loro in modo improprio la stessa priorità di ordinamento relativamente alta che assegna ai tipi regolari. Questo produceva l’innalzamento di fatto della priorità di tipi compositi e tabelle, violando ogni requisito di ordinamento che non fosse fatto rispettare esplicitamente da delle dipendenze. In particolare le classi di operatori definite dall’utente non comparivano prima delle tabelle, come invece dovrebbe essere. Su segnalazione di Brendan Jurd. Corretta di passaggio una decisione malconsiderata di dare agli oggetti di ricerca testuale la stessa priorità di ordinamento di funzioni e operatori — il risultato dell’ordinamento pare assai migliore se i diversi tipi di oggetto vengono mantenuti separati. La recente patch foreign-data ha copiato tale decisione, rendendo l’ordinamento ancora più confuso. :-(

Alvaro Herrera ha effettuato i seguenti commit:

  • Semplificata la scrittura delle routine amoptions introducendo una routine di convenienza fillRelOptions che immagazzina i valori nella struct usando un approccio basato su una tabella. Come da suggerimento di Tom.

Rimossi anche gli inutili "continue" nelle macro HANDLE_*_RELOPTION, i quali nello spirito facevano troppe assunzioni riguardo all’utilizzo di tali macro.

(Notare che queste macro ora sono inutilizzate, ma l’intenzione è di introdurne l’uso in una futura patch auto-vacuum, che è poi il motivo per cui non sono state completamente rimosse).

In più, non invocare la routine di convalidazione delle stringhe quando non si sta convalidando. Questo approccio pare a minore rischio di errori, come da commento nella documentazione SGML su amoptions.

  • Riportata all’indietro fino alla 7.4 la parte 1.84 (dalla timeline 8.0) che non era ancora stata riportata, cioè str_numth(). Il resto di quella patch era già stato applicato come parte della 1.69.2.1. Come da segnalazione e patch di Andreas ‘ads’ Scherbaum.

Bruce Momjian ha effettuato i seguenti commit:

  • In pgsql/doc/src/sgml/backup.sgml, documentato come pglesslog possa essere usato per ridurre i requisiti di storage di PITR.

  • Riabilitato il build del threading per Solaris 2.5, come da report di Andrew Chernow.

  • Verificata libreria nsl per gethostbyname_r() su tutte le piattaforme (la usa anche HP-UX).

  • In pgsql/src/port/thread.c, rimosso un blocco #ifdef vuoto.

  • Resa la sintassi di ‘find’ consistente; aggiunta l’esclusione di .git da make_ctags.

  • In pgsql/doc/src/sgml/wal.sgml, aggiunta menzione nella documentazione sul fatto che le scritture di pagine intere debbano essere abilitate affinché le pagine intere siano ripristinate durante il recupero. Su segnalazione in privato di Michael Renner.

  • In pgsql/GNUmakefile.in, modificata la regola distdir per scansare le directory .git.

Magnus Hagander ha effettuato i seguenti commit:

  • In pgsql/src/interfaces/libpq/fe-auth.c, rimossa la gestione speciale per gli username con autenticazione Kerberos. Adesso useremo sempre l’username di sistema come default, e non proveremo a prenderlo dal ticket kerberos. Con ciò si risolvono i messaggi d’errore spurii che compaiono nelle build con kerberos abilitato quando non si usa realmente kerberos, e ci si allinea inoltre al comportamento degli altri metodi di autenticazione.

  • In pgsql/src/bin/pg_dump/pg_backup_archiver.c, lancia un errore quando si usano simultaneamente -C e -1 in pg_restore. Non è possibile eseguire CREATE DATABASE all’interno di una transazione, e quindi prima si manifestava un errore server. Correzione riportata all’indietro fino alla 8.2, dove è apparsa l’opzione -1.

Heikki Linnakangas ha effettuato i seguenti commit:

  • In pgsql/src/pl/plpgsql/src/pl_exec.c, rimosse Assert sbagliate che fallivano se uno statement eseguito in PL/pgSQL diveniva tramite riscrittura un altro tipo di statement, per esempio se un INSERT è trasformato in un UPDATE. Correzione riportata sulle 8.3 ed 8.2.

Per la HEAD, Tom ha suggerito l’introduzione di un nuovo codice di ritorno SPI_OK_REWRITTEN ma non è una soluzione portabile all’indietro. Lo farò come patch separata, mentre nel frattempo questa patch colmerà la lacuna anche in HEAD.

  • In pgsql/doc/src/sgml/func.sgml, cambiata la spiegazione del valore di ritorno di pg_switch_xlog() in modo da riflettere il codice.

  • Aggiunta l’opzione GUC vacuum_freeze_table_age per controllare quando VACUUM dovrebbe ignorare la mappa di visibilità e scandire l’intera tabella per far avanzare relfrozenxid.

Teodor Sigaev ha effettuato i seguenti commit:

Neil Conway ha effettuato i seguenti commit:

  • In pgsql/doc/src/sgml/ref/create_user_mapping.sgml, corretto un errore di digitazione.

  • In pgsql/doc/src/sgml/ref/create_server.sgml, modificato uno statement sgrammaticato.

Patch rifiutate (per adesso)

Nessuno è stato scontentato questa settimana :-)

Patch in coda

Koichi Suzuki ha consegnato una nuova versione della patch per migliorare PITR.

Bernd Helmle ha consegnato una nuova versione della sua patch per rendere aggiornabili le viste.

Magnus Hagander ha consegnato una patch che migliora l’errore e il messaggio quando si usano insieme le opzioni incompatibili -1 e -c.

KaiGai Kohei ha consegnato una patch WIP per risolverre alcuni casi limite nella patch per i privilegi a livello di colonna.

KaiGai Kohei ha consegnato cinque ulteriori versioni della sua patch SE-PostgreSQL.

Alvaro Herrera ha consegnato una patch che aggiunge i namespace a reloptions.

Robert Haas ha consegnato una patch che aiuta a correggere la rotazione dei log.

Fujii Masao ha consegnato una nuova versione della sua patch per la replica sincrona.

KaiGai Kohei ha consegnato una patch che fa contrassegnare le colonne utilizzate quando si invoca markColumnForSelectPriv() dall’interno di transformJoinUsingClause().

Stephen Frost ha consegnato quattro ulteriori versioni della sua patch per la gestione dei privilegi a livello di colonna.

Ramon Lawrence e Bryce Cutt hanno consegnato una nuova versione della patch che migliora le prestazioni dei multi-batch hash join sugli insiemi di dati sghembi.

Simon Riggs ha consegnato tre nuove versioni della patch per Hot Standby.

Alvaro Herrera ha consegnato una patch per spostare una chiamata a tablespace.c da smgr.c nel nuovo storage.c.

Teodor Sigaev ha consegnato una nuova versione della patch che aggiunge a GIN l’emulazione degli indici B-Tree.

Teodor Sigaev ha consegnato una nuova versione di una patch con dei miglioramenti agli indici GIN.

Peter Eisentraut ha consegnato un aggiornamento alla patch di Bernd Helmle per le viste aggiornabili.

Alan Li ha consegnato una patch che corregge alcuni warning del compilatore che capitano con la versione 4.3.2 di gcc.

This Post Has 0 Comments

Leave A Reply