Notiziario settimanale PostgreSQL – 8 febbraio 2009

(Traduzione in lingua italiana delle PostgreSQL Weekly News a cura di Gianni Ciolli gianni.ciolli@2ndquadrant.it e Gianluca Riccardi gianluca@moonwatcher.it)

Rilasciato PostgreSQL 8.3.6, 8.2.12, 8.1.16, 8.0.20 e 7.4.24. Aggiornate! http://www.postgresql.org/docs/current/static/release.html

Il secondo Call for Papers per la PostgreSQL Conference East termina il 23 febbraio 2009. http://www.postgresqlconference.org/

Se vorresti confezionare le cartelline al LAPUG Pizza Party, venerdì 20 febbraio al Westin in Los Angeles (USA), scrivi a lapug AT postgresql DOT org per proporti come volontario.

Novità sul prodotto PostgreSQL

Rilasciata la versione 2.2 beta2 di pgpool-II. http://pgfoundry.org/projects/pgpool/

Il suggerimento della settimana

La funzione aggregato array_accum() permette di aggregare una qualsiasi colonna in un array, il quale potrà ad esempio essere usato da una applicazione, oppure visualizzato come una lista usando la funzione array_to_string().

Nella versione 8.4 comparirà una implementazione nativa e super-efficiente di array_accum() ; nell’attesa tuttavia è possibile implementare tale funzione come aggregato definito dall’utente seguendo le istruzioni nella documentazione di PostgreSQL: http://www.postgresql.org/docs/current/static/xaggr.html

Offerte di lavoro su PostgreSQL per febbraio 2009

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

Notizie locali su PostgreSQL

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

Stephen Frost parlerà dei permessi a livello di colonna al BWPUG il 9 febbraio alle 6:30pm negli uffici di OmniTI. http://pugs.postgresql.org/bwpug

Il Prague PostgreSQL Developers’ Day 2009 si terrà il 12 febbraio 2009 http://www.postgresql.org/about/event.808 Programma: http://www.postgres.cz/p2d2/2009/sched_en.html

Il PostgreSQL Users’ Group Bulgaro si riunirà il 12 febbraio 2009 alle 7pm a Vinarnata, 19 Lavele str., Sofia. http://www.doodle.com/participation.html?pollId=vb788q7v8ybi4z39

SFPUG presenta: Reece Hart su un database Unison per la Biologia Computazionale. data da stabilire (10 o 11 febbraio 2009), presso UCSF. http://postgresql.meetup.com/1/calendar/9351228/

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:

  • In pgsql/doc/src/sgml/catalogs.sgml, la sezione pg_user_mapping è stata posta nell’ordine giusto (alfabetico).

  • In pgsql/src/backend/catalog/sql_features.txt, segnato il fatto che sono supportati i privilegi a livello di colonna.

Michael Meskes ha effettuato i seguenti commit:

  • Risolto un bug nella manipolazione di %s in ecpg.

  • Risolta auto-allocazione per i tipi di dati binari in ecpg.

  • In pgsql/src/interfaces/ecpg/test/sql/binary.pgc, impostato il segmento di memoria a ‘0’, tanto per essere sicuri.

  • In ecpg, quando si cambia un file di test di regressione si dovrebbe anche cambiare il file con l’output atteso.

  • In pgsql/src/interfaces/ecpg/ecpglib/execute.c, risolto un errore di copia+incolla che faceva usare alla libreria una variabile non inizializzata.

  • In pgsql/src/interfaces/ecpg/ecpglib/execute.c, argh, copiata di nuovo la riga sbagliata.

  • In ecpg, aggiunti i controlli sui risultati per le chiamate a gmtime().

  • In pgsql/src/interfaces/ecpg/pgtypeslib/dt_common.c, mescolare le variabili di tipo long e int in una union funziona soltanto su alcune architetture.

Alvaro Herrera ha effettuato i seguenti commit:

  • Consentito ai nomi in reloption di avere qualificatori, inizialmente per il supporto di un qualificatore TOAST, e aggiunto poi tale supporto anche in pg_dump. Ciò consente alle tabelle TOAST di avere un fillfactor definito dall’utente, e ci permetterà anche di spostare in reloptions i parametri autovacuum senza togliere la possibilità di impostare dei valori per le tabelle TOAST.

  • Risolti alcuni avvisi del compilatore SGML nella modalità -wxml.

Andrew Dunstan ha effettuato i seguenti commit:

  • Fornito ripristino parallelo da un formato custom dell’archivio. Ogni step di tipo dati o post-dati viene eseguito in un worker figlio separato (un thread in windows, un processo figlio altrove) fino al numero di concorrenza specificato dalla nuova opzione –multi-thread | -m del comando pg_restore. Andrew Dunstan, con qualche editing di Tom Lane.

  • Consentiti nomi altrnativi per tclsh usati in Windows.

Tom Lane ha effettuato i seguenti commit:

  • In pgsql/src/pl/plpgsql/src/gram.y, corretto plpgsql al fine di evitare di trattare INSERT INTO come una clausola di variabili INTO collocata in una parte qualsiasi nella stringa, non soltanto all’inizio. Come da bug #4629 da Martin Blazek. Correzione riportata all’indietro fino alla 8.2; le versioni precedenti non hanno il problema, perlomeno non nel caso riportato, perchè non tentano di riconoscere gli INTO nei comandi non SELECT. (in altre parole: questo è proprio un effetto collaterale della patch RETURNING)

  • In pgsql/doc/src/sgml/ref/select.sgml, documentato il comportamento di lunga data di LIMIT NULL e OFFSET NUL, su osservazione di David Wheeler che ciò non era menzionato da nessuna parte. Di passaggio, eseguito un minimo lavoro editoriale sulla descrizione della sintassi equivalente SQL:2008.

  • In pgsql/src/backend/postmaster/syslogger.c, aggiunto un controllo sul fallimento dell’uso di _beginthreadex() da parte del syslogger, e rimosso l’inutile parametro di output dell’indirizzo del thread, al fine di rendere questo codice più rassomigliante al codice di pg_restore.

  • In pgsql/src/backend/optimizer/path/joinpath.c, risolto un vecchio errore in match_unsorted_outer() che si verifica in un caso limite: il percorso interno più conveniente non va considerato come un nuovo candidato mentre si tronca la lista delle chiavi di ordinamento, qualora già si sappia che esso corrisponde all’intera lista delle chiavi di ordinamento. Si tratta di un caso così tanto limite che non vale la pena di riportare la correzione nelle versioni precedenti, poiché è insolito che il cammino totale più conveniente venga ordinato, e comunque ciò non fa alcun danno (ad eccezione dei casi JOIN_SEMI/ANTI dove cost_mergejoin al momento non funziona benissimo). Ad ogni modo, il comportamento non era quello inteso, per cui l’errore è stato corretto. Notato mentre esaminavo un caso di test da Kevin Grittner. Questo errore non spiega il suo problema, ma spiega come mai mi sembrava che "set enable_seqscan = off" lo riproducesse.

  • Ripulite alcune parti dalla patch dei privilegi a livello colonna: aggiunte le funzioni SQL has_column_privilege e has_any_column_privilege; corrette le viste dell’information_schema che si suppone siano attente ai privilegi colonna; aggiustato pg_stats al fine di mostrare le statistiche per ogni colonna su cui si abbiano privilegi select; e corretto COPY al fine di copiare un sottoinsieme di colonne nel caso in cui l’utente abbia i privilegi colonna necessari per tutte quelle colonne. Al fine di migliorare l’efficienza di alcune viste information_schema, estese le funzioni has_xxx_privilege per consentire di indagare sull’OR di un insieme di privilegi in una sola chiamata. In questo modo si espongono semplicemente delle funzionalità che esistevano già nelle routine aclcheck sottostanti. Di passaggio, fatto sì che le viste information_schema riportino il fatto che i privilegi del proprietario stesso possono essere conferiti, dal momento che Postgres assume ciò anche quando il bit del’opzione grant non è impostato nella ACL. Questa era una disattenzione di lungo corso. Inoltre, adesso le nuove funzioni has_xxx_privilege per oggetti dati esterni seguono le convenzioni di coding usate dalle più vecchie. Stephen Frost e Tom Lane

  • In pgsql/doc/src/sgml/ref/copy.sgml, ops, ho dimenticato di aggiornare la pagina di riferimento di COPY con le menzioni ai privilegi a livello di colonna.

  • Corretta l’incapacità di cost_mergejoin di eseguire una nuova scansione delle chiavi di merge join non uniche quando si considera una join di tipo semi o anti. Questo richiede di stimare la selettività del qualificatore di merge come se fosse una condizione regolare di inner join. Per consentire il caching sia di ciò che della vera selettività consapevole delle outer-join, è stato separato RestrictInfo.this_selec in due campi. Così si risolve uno dei problemi riportati da Kevin Grittner.

  • In pgsql/src/backend/executor/execMain.c, assicurato che INSERT … SELECT in una tabella con OIDs non copi mai gli OIDs delle righe della tabella origine. Ciò non poteva accadere in nessun modo prima della versione 8.4 perchè l’esecutore invariabilmente applicava un "filtro anti-spazzatura" alle righe che stavano per essere inserite; ma adesso che evitiamo di fare ciò quando non è necessario, tale caso può accadere. Problema notato da KaiGai Kohei (27/11/2008), benché io non avessi capito cosa stava facendo a quel tempo (l’opacità della patch che propose non è stata d’aiuto).

Bruce Momjian ha effettuato i seguenti commit:

  • In pgsql/doc/src/sgml/mvcc.sgml, aggiornata la documentazione per spiegare meglio il comportamento indesiderato di comandi concorrenti nei casi in cui vengono aggiunte e rimosse righe da criteri corrispondenti nella query in esecuzione. Minori aggiustamenti di testo.

  • Aggiunto in PL/PgSQL il supporto per FOUND e GET DIAGNOSTICS nel comando RETURN QUERY. Pavel Stehule

  • In pgsql/doc/src/sgml/libpq.sgml, documentati i modi per evitare l’overhead di WSACleanup() di libpq in Windows. Andrew Chernow.

  • In pgsql/doc/src/sgml/libpq.sgml, risolti errori di battitura nella documentazione.

  • Risolto to_timestamp() al fine di non richiedere la corrispondenza esatta di maiuscole e minuscole per le denominazioni meridiane (AM/PM). Messa in ordine la corrispondenza di un meridiano con punti (e.g. A.M.) e la corrispondenza con quelli senza punti. Lo stesso per AD/BC. Brendan Jurd

  • Documentata la disabiliatazione del raccoglitore di statistiche delle attività pg_dump, e resa maggior visibilità alla variabile d’ambiente PGOPTIONS supportata da libpq. Bryce Nesbitt

  • In pgsql/doc/src/sgml/catalogs.sgml, aggiornata la descrizione di pg_constraint.conkey nella documentazione.

  • In pgsql/doc/src/sgml/ref/pg_dump.sgml, confezionato propriamente il nuovo testo della documentazione di pg_dump.

  • In pgsql/src/interfaces/ecpg/ecpglib/Makefile, ecpg richiede libpq; aggiunte regole Makefile per richiedere che libpq sia compilata prima. Alvaro Herrera.

  • In pgsql/doc/src/sgml/catalogs.sgml, menzionato CHECK in maiuscolo nelle menzioni a relchecks nella documentazione.

  • In pgsql/doc/src/sgml/indices.sgml, rimossa la menzione nella documentazione sul fatto che gli indici hash hanno prestazioni non migliori dei btree; mantenuta la menzione all’assenza di WAL logging. Kenneth Marshall

  • In pgsql/doc/src/sgml/queries.sgml, documentato che LIMIT NULL è lo stesso che non usare la clausola LIMIT. Come da report di David Wheeler.

Heikki Linnakangas ha effettuato i seguenti commit:

  • In pgsql/src/backend/access/transam/xlog.c, corretto un commento obsoleto. Zdenek Kotala.

Patch rifiutate (per adesso)

Nessuno è stato scontentato questa settimana :-)

Patch in coda

Fernando Ike de Oliveira ha consegnato una nuova versione della sua patch per aggiungere dL (elenca i linguaggi) a psql.

David Wheeler ha consegnato una patch alla documentazione per spiegare che LIMIT NULL restituisce tutte le righe.

Zdenek Kotala ha consegnato una correzione per i test di regressione nella locale Ceca (cs_CZ).

Stephen Frost ha consegnato una nuova versione della sua patch per i privilegi a livello di colonna.

Teodor Sigaev ha consegnato una nuova versione della sua patch con alcuni miglioramenti a GIN.

KaiGai Kohei ha consegnato una nuova versione delle sue patch SE-PostgreSQL.

Alvaro Herrera ha consegnato una nuova versione della patch reloptions che rimuove i parametri autovacuum.

Peter Eisentraut ha consegnato una patch che aggiunge un supporto KOI8-U di base.

Alvaro Herrera ha consegnato una patch alla documentazione per reloptions.

David Lee Lambert ha consegnato una patch che consente a Linux di usare il generatore UUID di ext2fs per gli UUID.

Tom Lane ha consegnato una patch affinché ALTER TABLE SET WITH OIDS aggiunga davvero tali OID.

This Post Has 0 Comments

Leave A Reply