== Notiziario settimanale PostgreSQL, 7 dicembre 2008 ==

From: Gianni Ciolli <gianni(dot)ciolli(at)2ndquadrant(dot)it>
To: pgsql-it-generale(at)postgresql(dot)org
Cc: Gianluca Riccardi <gianluca(at)moonwatcher(dot)it>
Subject: == Notiziario settimanale PostgreSQL, 7 dicembre 2008 ==
Date: 2008-12-09 09:36:08
Message-ID: 20081209093608.GA9482@fune
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-it-generale

== Notiziario settimanale PostgreSQL - 7 dicembre 2008 ==

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

Lorenzo Alberton ha scritto un articolo in cui effettua un'analisi
comparativa di vari RDBMS in merito alla sensibilità rispetto ai
caratteri minuscoli o maiuscoli negli identificatori.
http://www.alberton.info/dbms_identifiers_and_case_sensitivity.html

Fedora 10 adesso ha la sua repository pgsqlrpms.
http://yum.pgsqlrpms.org/

== Novità sul prodotto PostgreSQL ==

Rilasciata la versione 2.11.6 di perl-DBD-PG.
http://search.cpan.org/dist/DBD-Pg/

Rilasciata la versione 2.5.0 di check_postgres.
http://bucardo.org/check_postgres/

Hubert (depesz) Lubaczewski ha rilasciato uno strumento per analizzare
l'output di EXPLAIN ANALYZE.
http://www.depesz.com/index.php/2008/12/04/explaindepeszcom/

== Offerte di lavoro su PostgreSQL per dicembre 2008 ==

http://archives.postgresql.org/pgsql-jobs/2008-12/threads.php

== Notizie locali su PostgreSQL ==

Si è aperto il Call for Paper per FOSDEM 2009. PostgreSQL avrà uno
stand e condividerà una developer room con i gruppi di BSD. Inviate i
vostri talks a "fosdem (at) postgresql (dot) eu" non oltre il 2
gennaio 2009.

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 Devrim GUNDUZ; 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(at)itpug(dot)org; per le lingue inglese o tedesca, si scriva
rispettivamente a david(at)fetter(dot)org o a pwd(at)pgug(dot)de(dot)

== Patch applicate ==

Peter Eisentraut ha effettuato i seguenti commit:

- Risolto un errore di battitura in
pgsql/doc/src/sgml/installation.sgml.

- In pgsql/doc/src/sgml/ref/psql-ref.sgml, piccola correzione.

- In pgsql/doc/src/sgml/ref/select.sgml, aggiunte graffe per rendere
chiara la sintassi.

- In pgsql/doc/src/sgml/keywords.sgml, aagiornate le tabelle keywords
alla 8.4 e a SQL:2008.

- In pgsql/GNUmakefile.in, genhtml viene invocato con l'opzione
--prefix in modo che non appaiano nell'output i percorsi dei build
locali.

- Valori di default per gli argomenti delle funzioni. Pavel Stehule,
con qualche miglioria di Peter Eisentraut.

- In pgsql/src/backend/utils/adt/misc.c, descrizioni migliori in
pg_get_keywords(), in modo coerente con l'appendice alla
documentazione sulle keywords. catdesc era originariamente intesa
per esser letta da dei calcolatori, ma visto che poi abbiamo
aggiunto catcode, possiamo avere delle descrizioni più elaborate.

- Settati ar, dlltool, dllwrap e windres per il cross-compiling
qualora necessario. In più alcune pulizie dei makefile. Parte di una
patch di Richard Evans.

Michael Meskes ha effettuato i seguenti commit:

- Rimosso il test delle porte da ecpg.

Tom Lane ha effettuato i seguenti commit:

- In pgsql/src/tools/msvc/vcregress.pl, rimosse le ultime tracce di
--temp-port.

- Ci siamo assicurati che i contenuti di un cursore di tipo HOLD non
dipendano da valori TOAST obsoleti, i quali possono essere scartati
una volta che la transazione del cursore è terminata. Per bug #4553
da Andrew Gierth. Riportato sulle versioni precedenti fino alla
8.1. Il bug esiste dalla versione 7.4 quando furono introdotti i
cursori di tipo HOLD, ma senza aggiustamenti significativi questa
patch non funziona per versioni precedenti alla 8.1. Vista
l'insufficienza di lamentele sul campo, sembra che non valga la pena
fare delle patch sui branch più vecchi (con il rischio di introdurre
nuovi bugs).

- Risolta una disattenzione che faceva delle deduzioni di eguaglianza
transitiva usando clausole di outer join. Ad esempio, dato ... FROM
a LEFT JOIN b ON a.a1 = b.b1 WHERE a.a1 = 42; dedurremo una clausola
b.b1 = 42 e poi marcheremo la join originale ridondante (non
possiamo rimuoverla completamente per ragioni che non me la sento di
sintetizzare in questo log). Comunque, la implementazione originale
non era blindata, perché clause_selectivity() non rispettava
this_selec nel caso in cui varRelid fosse stato diverso da zero --
il che in pratica voleva dire che funzionava come desiderato eccetto
il caso in cui si considerano delle qualificazioni di scansioni di
indici. Questo produceva delle sottostime della dimensione dei
risultati degli indexscan per un indexscan interno ad una outer
join, e conseguentemente una scelta possibilmente errata fra
indexscan e bitmap scan. Risolto introducendo un test esplicito in
clause_selectivity(). E al fine d'assicurarsi che tale test non sia
attivato in casi limite, cambiata la convenzione: adesso è nel caso
this_selec > 1 e non this_selec = 1 che il test viene marcato
ridondante. Su segnalazione del problema da parte di Scara
Maccai. Patch riportata fino alla versione 8.2 dove era stato
introdotto il problema.

- In pgsql/src/backend/optimizer/plan/subselect.c, non proviamo ad
ottimizzare le sottoquery EXISTS prive di FROM: infatti abbiamo
bisogno di formare una join e in questo caso non c'è nulla da
utilizzare per il join. (Potremmo probabilmente farlo funzionare se
non sollevassimo la sottoquery, ma non mi sembra che il caso sia
meritevole di codice extra). Segnalazione di Greg Stark.

Heikki Linnakangas ha effettuato i seguenti commit:

- In pgsql/src/backend/utils/adt/formatting.c, modificata la nuova
implementazione to_timestamp in modo che la stringa di fine formato
sia trattata come un separatore non numerico. Questo risolve
l'inconsistenza negli esempi come il seguente:
to_timestamp('2008-01-2', 'YYYY-Michael Meskes-DD') non funzionava
mentre to_timestamp('2008-1-02', 'YYYY-Michael Meskes-DD')
funzionava.

- In pgsql/src/backend/utils/adt/tsginidx.c, usa PG_GETARG_TEXT_PP
invece di PG_GETARG_TEXT_P nelle nuove funzioni gin_cmp_tslexeme e
gin_cmp_prefix. Si dovrebbero tagliare alcuni cicli dalle operazioni
GIN.

- In pgsql/src/backend/access/transam/xlog.c, se pg_stop_backup()
viene chiamata subito dopo aver commutato ad un nuovo file xlog,
attendi che sia archiviato il precedente file invece del
nuovo. Basata sulla patch di Simon Riggs.

- Piccole correzioni di commenti in
pgsql/src/backend/storage/freespace/freespace.c.

- Introdotta la mappa di visibilità. Si tratta di una bitmap con un
bit per ciascuna pagina dell'heap; se il bit è impostato a 1 allora
tutte le tuple sulla pagina sono visibili a tutte le transazioni e
quindi la pagina non ha bisogno di vacuum. È memorizzata in un fork
di una nuova relazione. Il vacuum di tipo lazy usa le mappe di
visibilità per evitare le pagine che non hanno bisogno di vacuum. Lo
stesso vacuum è anche il responsabile dell'impostazione dei bits
nella mappa. In futuro ciò potrebbe auspicabilmente essere usato per
implementare scansioni index-only, ma al momento attuale non
possiamo garantire che la mappa di visibilità sia al 100%
aggiornata. In più c'è un nuovo flag PD_ALL_VISIBLE su ciascuna
pagina dell'heap, il quale indica se tutte le tuple della pagina
siano visibili a tutte le transazioni. È importante che questo flag
sia mantenuto aggiornato. Esso è anche usato per evitare il test di
visibilità negli scans sequenziali, dando alcuni miglioramenti di
prestazione.

- In pgsql/src/include/catalog/catversion.h, dimenticato di aggiornare
la versione del catalogo nella patch della mappa di visibilità.

- Utilizzare la mappa di visibilità anche nell'autovacuum. C'era una
disattenzione nella patch della visibility map; dato che autovacuum
imposta sempre VacuumStmt->freeze_min_age, la mappa di visibilità
non veniva mai usata per l'autovacuum, ma soltanto per vacuum
lanciati manualmente. Con questa patch è stato introdotto un nuovo
campo scan_all a VacuumStmt, il quale indica esplicitamente se, per
spostare relfrozenxid in avanti, si possa usare la mappa di
visibilità oppure se debba essere scandita l'intera relazione. I
vacuum volti ad impedire il wraparound hanno ancora bisogno di
scandire tutte le pages.

- In pgsql/src/backend/access/heap/visibilitymap.c, la macro MAPSIZE
necessita di usare MAXALIGN(SizeOfPageHeaderData) invece di
SizeOfPageHeaderData, così come fa PageGetContents. Su segnalazione
di Pavan Deolasee.

Alvaro Herrera ha effettuato i seguenti commit:

- In pgsql/src/backend/utils/misc/guc.c, alcuni minori abbellimenti di
codice.

- Risolti un paio di bugs di gestione delle snapshots nel nuovo mondo
ResourceOwner: un oggetto non scrivibile di dimensioni grandi
necessita che la propria snapshot sia registrata sul resowner della
transazione, non del portale attuale, in quanto essa deve persistere
fino a che tale oggetto non viene chiuso (cosa che il portale non
fa). In più, ci siamo assicurati che la snapshot serializzabile sia
registrata anche dal resource owner della transazione, compreso il
caso in cui una sottotransazione abbia cambiato il resource owner
attuale prima che venga selezionato quello serializzabile. Su bug
report di Pavan Deolasee.

- Qua e là alcune tags di programlisting sono state racchiuse in
CDATA, così da liberarsi di certi escaping SGML.

Magnus Hagander ha effettuato i seguenti commit:

- Cambiato il mapping delle wildcard nel certificato; adesso è molto
più piccolo, viene considerato soltanto il carattere '*' all'inizio
di un pattern e non si considerano i sottodominii. Questo implica
che non abbiamo più bisogno di fnmatch; rimosse quindi sia
l'implementazione importata dal port, che il check di autoconf.

- In pgsql/doc/src/sgml/libpq.sgml, aggiunta la documentazione per la
patch delle wildcard nei certificati.

- De-registrate le callbacks OpenSSL quando libpq ha finito con la sua
connessione. Ciò è richiesto dalle applicazioni che scaricano la
libreria libpq (p.e. PHP), per evitare di avere puntatori a queste
funzioni quando esse non esistono più. La patch non è stata
riportata sulle versioni precedenti, poiché prima di fare ciò si
ritiene necessario effettuare ulteriori test. Di passaggio, rimosse
delle funzioni inutilizzate da backend/libpq. Bruce Momjian e Magnus
Hagander, su segnalazione e analisi di Russell Smith.

- In pgsql/src/interfaces/libpq/fe-secure.c, il commento diceva che
non si liberava il lockarray e spiegava il perché. La correzione
appropriata è stata di far fare al codice le cose descritte dal il
commento...

Bruce Momjian ha effettuato i seguenti commit:

- In pgsql/src/interfaces/libpq/fe-secure.c, corretto un errore di
digitazione nella recente patch di unload di SSL. Kris Jurka

- In pgsql/doc/src/sgml/wal.sgml, documentato che il journaling
non-data è una opzione di mount raccomandata.

- Consenti a CREATE OR REPLACE VIEW di aggiungere colonne alla _fine_
della view. Robert Haas.

Teodor Sigaev ha effettuato i seguenti commit:

- In pgsql/src/backend/access/gist/gistscan.c, inizializza
GISTScanOpaque->qual_ok anche se non ci sono condizioni.

== Patch rifiutate (per adesso) ==

Nessuno è stato scontentato questa settimana :-)

== Patch in coda ==

Hitoshi Harada ha consegnato quattro nuove versioni delle sue funzioni
di windowing.

Pavel Stehule ha consegnato una nuova revisione della sua patch per i
valori di default nei parametri delle funzioni.

Zdenek Kotala ha consegnato una patch che aggiorna lo script
pg_upgrade.

Magnus Hagander ha consegnato una patch che aggiorna la documentazione
di work_mem aggiungendo il riferimento ad autovacuum_max_workers.

Hannes Eder ha consegnato una patch per aggiungere un operatore
"skyline".

Heikki Linnakangas ha consegnato una patch che velocizza la
costruzione di indici GIN.

ITAGAKI Takahiro ha consegnato una nuova patch che implementa
pg_stat_statements.

Alvaro Herrera ha consegnato due versioni di una patch che ripara un
bug di assert in lo_open().

Euler Taveira da Oliviera ha consegnato una patch che migliora la
portabilità degli "inizializzatori designati".

KaiGai Kohei ha consegnato altri due insiemi di patch SE-PostgreSQL.

David Rowley ha inviato qualche "massaggio" per la documentazione
della patch sulle funzioni di windowing di Hitoshi Harada.

Martin Pihlak ha consegnato una nuova revisione della sua patch per il
gestore di connessioni SQL/MED.

Heikki Linnakangas ha consegnato una nuova versione della mappa di
visibilità.

Heikki Linnakangas ha consegnato una patch che sistema pg_stop_backup.

Emmanuel Cecchet ha consegnato una nuova patch che sistema il
comportamento delle tabelle temporanee nelle transazioni.

Josh Williams ha consegnato una patch che aggiunge a psql la
visualizzazione del proprietario di una sequenza in occasione del
comando \d.

Kurt Harriman ha consegnato uno stormo di patch che consentono tra le
altre cose l'utilizzo del C++ nel codice SPI. La discussione è in
corso.

Browse pgsql-it-generale by date

  From Date Subject
Next Message Gianni Ciolli 2008-12-17 20:47:05 == Notiziario settimanale PostgreSQL, 14 dicembre 2008 ==
Previous Message Gianni Ciolli 2008-12-03 13:34:45 == Notiziario settimanale PostgreSQL, 30 novembre 2008 ==