Skip site navigation (1) Skip section navigation (2)

== Notiziario settimanale PostgreSQL, 2 novembre 2008 ==

From: Gianni Ciolli <gianni(dot)ciolli(at)2ndquadrant(dot)it>
To: pgsql-it-generale(at)postgresql(dot)org
Subject: == Notiziario settimanale PostgreSQL, 2 novembre 2008 ==
Date: 2008-11-04 15:48:17
Message-ID: 20081104154817.GA4377@fune (view raw or flat)
Thread:
Lists: pgsql-it-generale
== Notiziario settimanale PostgreSQL - 2 novembre 2008 ==

(Traduzione in lingua italiana delle PostgreSQL Weekly News)

Cittadini USA: non dimenticate di votare entro martedì. La democrazia
o si usa o si perde.

La CommitFest finale per la versione 8.4 è iniziata ieri. Abbiamo più
di 50 patch in coda, tra cui SEPostgres, column-level permissions, Hot
Standby, Windowing Functions, SQL/MED, e molte altre. Abbiamo bisogno
di reviewers! Se c'è una patch che ti interessa, provala al più presto
e scrivi i risultati alla mailing list pgsql-hackers. Se non sai quale
patch esaminare, ma hai tempo disponibile, allora iscriviti alla
mailing list pgsql-rrreviewers, fai un cenno e ti assegneremo una
patch.

Le patch che verranno respinte da questa CommitFest non faranno parte
della versione 8.4, e dovranno aspettare fino al prossimo anno. Quindi
non lasciare che questo accada per mancanza di review o di test.

CommitFest
	http://wiki.postgresql.org/wiki/CommitFest_2008-11
Come fare una review
	http://wiki.postgresql.org/wiki/Reviewing_a_Patch
	http://wiki.postgresql.org/wiki/RRReviewers
Mailing List
	http://archives.postgresql.org/pgsql-hackers/
	http://archives.postgresql.org/pgsql-rrreviewers/

Log dell'incontro degli sviluppatori sul canale IRC #replicator:
https://projects.commandprompt.com/public/replicator/wiki/developermeetinglogs

Nell'ultimo podcast di Ubuntu UK è presente un'intervista a Simon
Riggs, rilasciata a Londra in occasione di LinuxLive. L'intervista
Postgres inizia dopo circa 11 minuti.
http://podcast.ubuntu-uk.org/2008/10/29/s01e17-talk-about-the-good-times/

== Novità sul prodotto PostgreSQL ==

È stato rilasciato ora2pg 4.9 .
http://pgfoundry.org/projects/ora2pg/

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

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

== Notizie locali su PostgreSQL ==

Il PgDay di Rio de la Plata sta cercando sponsor. Gli interessati si
mettano in contatto con admin AT postgres-arg DOT org.

Dickson Guedes sta cercando volontari per aiutare nell'organizzazione
di un PgMeeting a Florianópolis.  Scrivi a guediz AT gmail DOT com se
puoi essergli d'aiuto.

Il prossimo 8 novembre David Fetter e Robert Treat parleranno al Perl
Workshop che si terrà a Pechino.
http://conference.perlchina.org/bjpw2008/schedule

Il prossimo 22 novembre David Fetter parlerà al PGDay di Rio de la
Plata Buenos Aires
http://pgday.postgres-arg.org/

David Fetter parlerà a Sydney in occasione dell'OSDC che si terrà dal
3 al 5 dicembre prossimi.
http://www.osdc.com.au/2008/index.html

== 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.

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:

- In pgsql/src/backend/catalog/sql_features.txt, aggiornato l'elenco
  delle features.

- Aggiunto EXPLAIN su CREATE TABLE AS.

- Aggiunte le sintassi CURRENT_CATALOG, CURRENT_SCHEMA, SET CATALOG,
  SET SCHEMA da SQL:2008

- Aggiunta la clausola WITH [NO] DATA al comando CREATE TABLE AS, in
  conformità a SQL.  Inoltre, essendo WITH adesso una parola
  riservata, è stato semplificato il codice di gestione dei token in
  modo da ammettere solo WITH_TIME.  In collaborazione con Tom Lane.

- Unicode escapes in stringhe e identificatori.

- Si usa la macro AS_HELP_STRING di Autoconf per formattare e
  allineare automaticamente le stringhe nell'output --help. Ciò viene
  realizzato tramite il nostro layer di astrazione, così da eliminare
  ridondanza e comportamenti casuali in configure.in.

- A partire da SQL:2003, la specificazione della dimensione di un
  array nella sintassi SQL ARRAY è diventata opzionale.

- In pgsql/src/backend/catalog/sql_features.txt, aggiornate le
  caratteristiche supportate.

- Supporto per il compilatore Sun Studio su Linux. Di fatto si prende
  una parte del codice del sistema di build, originamente etichettata
  "Solaris", e la si attribuisce al compilatore invece che al sistema
  operativo.  Julius Stroffek.

- Ricollocato un commento dimenticato in contesto più adeguato.

- In pgsql/src/bin/initdb/initdb.c, migliorato un messaggio

- Mancava uno spazio in un messaggio di errore nello script configure
  di psql.

- Aggiornamenti alla traduzione.

- In pgsql/src/bin/initdb/initdb.c, migliorato un message (modifica
  riportata sulla 8.3)

- In pgsql/doc/src/sgml/Makefile, la regola di conversione da
  postgres.sgml a postgres.xml non funziona con il sed di BSD, così è
  stata riscritta in Perl, linguaggio più portabile e tra l'altro un
  po' più veloce. Utilizzavamo già Perl per la creazione della
  documentazione standard, quindi non abbiamo introdotto ulteriori
  requisiti.

Magnus Hagander ha effettuato i seguenti commit:

- Aggiornati i makefiles di libpq per far funzionare msvc e bcc con il
  nuovo codice di gestione degli eventi di libpq.  Hiroshi Saito.

- Aggiunta la gestione di messaggi di errore multipli da libpq,
  semplicemente tramite la concatenazione di tali messaggi (questo li
  rende multi-linea poiché ciascuno di essi ha già il proprio
  newline). Prima accadeva che ogni nuovo errore sovrascrivesse il
  precedente; ad esempio, avendo impostato sslmode=prefer, un nuovo
  errore dovuto a un tentativo di connessione SSL veniva sovrascritto
  dall'errore relativo alla connessione non-SSL.

- In pgsql/src/backend/libpq/hba.c, i messaggi di errori hba vengono
  analizzati in modo più specifico.

- Rimosso il supporto per l'autenticazione crypt, troppo insicura; si
  interrompe così la compatibilità con le versioni precedenti alla
  7.1.

- In pgsql/src/backend/port/win32_shmem.c, si ritorna alla versione
  precedente del patch, ponendo il segmento di memoria condivisa su
  win32 nel namespace Global\, poiché si sono verificati errori di
  permessi su molte piattaforme. Abbiamo bisogno di una soluzione
  migliore per la 8.4, ma per adesso torniamo alla situazione
  precedente alla versione 8.3.4.

Tom Lane ha effettuato i seguenti commit:

- Installata una soluzione più robusta per un problema di ricorsione
  infinita in caso di errore nella conversione nella codifica del
  client di un messaggio di errore localizzato. Questo problema non è
  nuovo, ma - come segnalato da Ibrar Ahmed - il malfunzionamento era
  ancora presente nel caso di errori legati alla conversione dello
  stesso messaggio di errore di conversione :-(. La soluzione consiste
  nell'installazione di un "interruttore" che disabilita la
  localizzazione del messaggio nel caso in cui si verifichi questo
  problema. Preparate patch che hanno risolto il problema in tutte le
  versioni supportate, poiché di fatto tutte avevano questo difetto,
  benché in modo da riprodurre l'errore nel caso di test che stavo
  usando io abbia dovuto aggiungere alle versioni più vecchie alcune
  traduzioni mancanti.

- Eliminato con lavoro certosino il MINIMAL_TUPLE_PADDING nella
  rappresentazione delle tuple nei file temporanei creati da
  tuplesort.c e tuplestore.c. Così si risparmiano 2 bytes per riga
  sulle macchine a 32 bit, e 6 bytes per riga sulle macchine a 64 bit;
  sembra quindi che ne valga la pena, anche rispetto alla maggiore
  complessità delle routine di lettura e scrittura delle tuple.

- Modificato WorkTableScan per togliere il supporto alle scansioni
  all'indietro. Di fatto tale supporto non funziona, poiché
  nodeRecursiveunion.c crea un tuplestore privo della capacità di
  gestire scansioni all'indietro; tale decisione è inoltre saggia per
  ragioni di prestazioni. Potremmo eventualmente ipotizzare l'aggiunta
  di segnali da WorkTableScan a RecursiveUnion, per trasmettere una
  eventuale richiestas di scansione all'indietro... ma dal punto di
  vista pratico sarebbe uno spreco di energie, poiché non ci sono
  scenari attuali o in un futuro plausibile nei quali WorkTableScan
  sia utilizzata per effettuare scansioni all'indietro. Riassumendo,
  abbiamo di fatto eliminato il codice che millantava tale supporto.

- Esteso ExecMakeFunctionResult() in modo da supportare una modalità
  alternativa per le funzioni set-returning (SRF), che contempla la
  restituzione di dati da parte della funzione tramite un tuplestore
  invece che con il metodo consueto "value-per-call". Alcune parti di
  codice sono state poi risistemate in modo da ridurre la conseguente
  duplicazione del codice con nodeFunctionscan.c.

  Questa modifica è la parte sostanzialmente condivisa della patch, da
  me proposta, che modificava la modalità di restituzione dati per le
  funzioni SQL imponendo l'utilizzo di un tuplestore. Per il momento le
  funzioni SQL non utilizzano ancora la nuova modalità; però con
  questa modifica è adesso possibile che le SRF dei linguaggi
  procedurali siano chiamate in  targetlists (si vedano a titolo di
  esempio le modifiche nei risultati dei test di regressione di
  plperl).

- Adesso si usa maggior rigore nel consentire la creazione di
  tuplestores aventi randomAccess = true soltanto nei casi in cui una
  scansione all'indietro possa realmente accadere. In particolare, si
  trasmette un flag alle SRF materializzate per comunicare se hanno
  necessità o meno di richiedere accesso random. Durante tale
  trasmissione, si sopprime inoltre un inutile sovraccarico dovuto a
  scansionin all'indietro per il tuplestore holdStore di un Portal.
  Mia proposta sulla riduzione dei costi di I/O per i tuplestores.

- In pgsql/src/backend/access/transam/xlog.c, correzione della logica
  di recoveryLastXTime in modo che il comportamento sia quello
  atteso. Preda catturata da Kevin Grittner. Correzione riportata
  sulla versione 8.3, in cui il bug era stato introdotto.

- Aggiornati i file dei fusi orari in seguito alla versione 2008i di
  tzdata (modifiche alla legge sull'ora legale in Argentina, Brasile,
  Mauritius, Siria).

- In pgsql/doc/src/sgml/release.sgml, aggiornate le note di rilascio
  delle versioni precedenti.

- Si permette alle funzioni SQL di restituire l'output di
  INSERT/UPDATE/DELETE RETURNING, oltre a SELECT come già avveniva in
  precedenza. Un effetto collaterale di questa modifica è il
  miglioramento delle prestazioni nel caso in cui una funzione SRF SQL
  sia utilizzata in una clausola FROM: adesso l'output è raccolto in
  un tuplestore, mentre in precedenza si usava il meccanismo
  "value-per-call", meno efficiente.

- Si semplifica la API di ExecutorRun, rendendola una funzione di tipo
  void, mentre precedentemente restituiva (talvolta) una
  TupleTableSlot; infatti tale comportamento non è più richiesto dalle
  funzioni SQL o in altra parte del codice. Così si risparmia una
  manciata di cicli, ma soprattutto si semplifica il lavoro delle
  funzioni hook di ExecutorRun che saranno supportate a partire dalla
  8.4.

- Sostituiti tutti gli utilizzi delle funzioni deprecate
  heap_formtuple, heap_modifytuple e heap_deformtuple con le nuove
  funzioni heap_form_tuple et alia (le quali fanno le stesse cose, ma
  usano flag di controllo di tipo booleano invece di valori arbitrari
  di tipo char). Eliminata di conseguenza la doppia implementazione,
  riducendo le funzioni deprecate a dei semplici wrappers intorno alle
  nuove funzioni; infatti non possiamo eliminare tout-court le
  funzioni deprecate, poiché qualche modulo aggiuntivo probabilmente
  le utilizza ancora. Kris Jurka.

- Tolte le ultime vestigia del meccanismo MAKE_PTR/MAKE_OFFSET. Oramai
  da lungo tempo non veniva consentito a processi distinti di avere
  indirizzi distinti per il segmento shmem; tuttavia in alcune parti
  del codice era ancora utilizzata la vecchia convenzione. Ripulendo
  il codice è stata ridotta la confusione e si è agevolato il
  compilatore nell'individuare errori di tipo sui puntatori. Kris
  Jurka.

- Modificata la logica di pgstat: prima il collettore di statistiche
  le scriveva sull'apposito file a intervalli fissi di 500ms, adesso
  invece ciò avviene su richiesta esplicita del backend, e comunque
  non prima di 500ms dall'ultima scrittura. Questa modifica dovrebbe
  produrre una riduzione significativa del traffico in scrittura sul
  file di statistiche in quegli scenari tipici nei quali le
  statistiche sono richieste di rado. Con questo approccio sono
  eliminate anche le difficoltà nel cambiare stats_temp_directory "al
  volo"; tale operazione non è più critica e non servono più
  particolari cautele o comportamenti frenetici (per minizzare
  l'eventualità di tali problemi). En passant, è stata anche corretta
  la funzione pgstat_report_stat() in modo da farle trasmettere
  statistiche nel caso in cui vi sono statistiche sulle chiamate di
  funzioni in assenza di statistiche su tabelle; questo corregge un
  bug nella recente patch che introduce le statistiche sulle chiamate
  di funzioni. Martin Pihlak.

Alvaro Herrera ha effettuato i seguenti commit:

- In pgsql/src/backend/access/heap/heapam.c, non serviva codice
  aggiuntivo per il log nel caso in cui si congelino zero tuple,
  poiché le funzioni chiamanti hanno già controllato che il numero di
  tuple congelate non sia pari a zero.

- In pgsql/src/backend/utils/time/snapmgr.c, la gestione di due errori
  è stata affidata a elog() invece che a ereport() trattandosi di
  errori del tipo "can't happen".

Bruce Momjian ha effettuato i seguenti commit:

- In pgsql/doc/src/sgml/syntax.sgml, tolto un tab dal file sgml.

Marc Fournier ha effettuato i seguenti commit:

- Tag 8.3.5, 8.2.11, 8.1.15, 8.0.19, 7.4.23.

Heikki Linnakangas ha effettuato i seguenti commit:

- Aggiunto il supporto per i cast di conversione I/O definiti
  dall'utente.

- In pgsql/src/test/regress/parallel_schedule, aggiunto un caso di
  test per CREATE CAST.

- Unificate le funzioni ReadBufferWithFork, ReadBufferWithStrategy e
  ZeroOrReadBuffer in un'unica funzione ReadBufferExtended,
  specificando strategia e modo come argomenti. Ci sono tre modi:
  RBM_NORMAL, il default usato da ReadBuffer(), RBM_ZERO, che
  rimpiazza ZeroOrReadBuffer, e un nuovo modo RBM_ZERO_ON_ERROR, che
  consente alle funzioni chiamanti di leggere le pagine corrotte senza
  generare un errore.  Il FSM ha bisogno di questo nuovo modo per
  recuperare le pagine corrotte, cosa che potrebbe accadere se il
  server va in crash dopo l'estensione di un file FSM con la nuova
  pagina che rimane danneggiata. Aggiunto un numero di fork ad alcuni
  messaggi di errore in bufmgr.c che ne erano tuttora privi.

- Aggiornato FSM nel replay WAL. Questa implementazione è un po'
  limitata; il FSM è aggiornato solo per records WAL non
  corrispondenti all'immagine di una pagina intera, e - in modo assai
  arbitrario - solo se, dopo l'insert/update (non HOT) c'è meno del
  20% di spazio libero nella pagina. Il limite del 20% dovrebbe
  evitare la gran parte del sovraccarico, ad esempio in occasione del
  replay di un inserimento in blocco, al contempo garantendo che le
  pagine piene siano contrassegnate come piene nel FSM. Questo serve
  quasi esclusivamente per evitare il dannoso scenario peggiore,
  quando il replay proviene da un archivio PITR e l'informazione FSM
  nel backup di base è molto disallineata: se ci fossero molte pagine
  ritenute erroneamente non piene dal FSM obsoleto, la prima
  (sfortunata) inserzione dopo il recovery dovrebbe percorrere tutte
  queste pagine per accorgersi che sono tutte piene. La vecchia
  implementazione di FSM non aveva questo problema poiché in caso di
  spegnimento non corretto le informazioni di tipo FSM venivano
  semplicemente scartate.

Michael Meskes ha effettuato i seguenti commit:

- In pgsql/src/backend/parser/gram.y, aggiunto un ';' mancante.

- In ecpg, non viene consumata memoria neanche nel caso di un errore
  di tipo "memoria finita"

- In ecpg, si usa la componente stringa nella struttura dell'indice.

- In pgsql/src/interfaces/ecpg/ecpglib/misc.c, sostituita strcmp con
  strncmp per essere più tolleranti nei confronti di modifiche al
  parser.

== Patches rifiutate (per adesso) ==

Nessuno è stato scontentato questa settimana :-)

== Patches in coda ==

ITAGAKI Takahiro ha consegnato una nuova revisione del suo modulo
contrib/pg_stat_statements.

Heikki Linnakangas ha proposto una patch WIP per la mappa di
visibilità (dead space map).

Hitoshi Harada ha consegnato una nuova revisione della sua patch
avente come oggetto OLAP e funzioni di Windowing.

Simon Riggs ha consegnato due nuove revisioni della sua patch Hot
Standby.

Koichi Suzuki ha consegnato una patch per migliorare le prestazioni
del PITR.

Kris Jurka ha consegnato due revisioni di una patch che effettua tutte
le modifiche per usare la nuova API per le heaptuples.

Simon Riggs ha consegnato una patch all'infrastruttura di subcommit
che usa il flag InRecovery per confinare un Assert a un insieme più
ristretto di casi.

Emanuel CALVO FRANCO ha inviato una versione in lingua spagnola della
FAQ Solaris.

Magnus Hagander ha consegnato una patch per implementare il supporto alle
regexp nelle usermaps (pg_ident.conf).

Kris Jurka ha consegnato una patch per assimilare ai puntatori
ordinari i puntatori alla memoria shared.

Martin Pihlak e ITAGAKI Takahiro hanno consegnato tre revisioni di una
patch per pg_stat_statements.

Alvaro Herrera ha consegnato una patch per implementare controlli CRC
a livello di blocco.

Ron Mayer ha consegnato tre revisioni di una patch per consentire a
PostgreSQL di produrre in output intervalli standard SQL.

Stephen Frost ha consegnato tre revisioni di una patch per assegnare
permessi a livello di colonne.

Teodor Sigaev ha consegnato un'altra revisione della sua patch per
l'inserimento rapido per gli indici GIN.

Jonah Harris ha consegnato una patch che utilizza i filtri Bloom per
velocizzare gli hash joins.

Hiroshi Saito ha consegnato una patch per correggere LC_TIME su
Windows.

Simon Riggs ha consegnato una patch che implementa Hot Standby.

Hannu Krosing ha consegnato due revisioni di una patch per abilitare
PL/Python alla restituzione di records basati su più parametri OUT.

Zdenek Kotala ha consegnato una patch per implementare l'upgrade
in-place.

Teodor Sigaev ha consegnato una patch per emulare gli indici B-tree
tramite gli indici GIN.

Hitoshi Harada ha consegnato un'altra revisione della sua patch per le
Window Functions.

Peter Eisentraut ha consegnato due revisioni di una patch che
implementa i "tipi distinti" secondo lo standard SQL.

Fujii Masao ha consegnato una patch che implementa la replicazione
sincrona di tipo log-shipping.

Bernd Helmle ha consegnato una patch WIP per aggiornamenti VIEW
automatici.

Gregory Stark ha consegnato una versione aggiornata della patch posx
fadvise.

Zdenek Kotala ha consegnato una patch che aggiunge alle heaptuples
delle informazioni legate alla versione.

Heikki Linnakangas ha consegnato una patch per migliorare le
prestazioni di COPY FROM rimpiazzando CopyReadLineText with memchr().

David Fetter ha consegnato due revisioni di una patch pre-MED per
esporre le clausole WHERE alle funzioni.

Andrew Dunstan ha consegnato un'altra patch WIP per il restore
parallelo.

Zdenek Kotala ha consegnato due revisioni di una patch che ripulisce
htup.h e bufpage.[ch].

Martin Pihlak ha consegnato due revisioni di una patch che implementa
un gestore di connessioni compatibile con SQL/MED.

Jeff Davis ha consegnato un'altra revisione della sua patch per
array_accum().

Robert Haas ha consegnato due revisioni della sua patch che migliora
BufferAccessStrategy per gli inserimenti in blocco.

Nikhil Sontakke ha consegnato un'altra revisione della sua patch per
l'auto-partizionamento.

Gianni Ciolli ha consegnato una patch per implementare gli indici
bitmap.

Andrew Dunstan ha consegnato due revisioni di una patch che trasforma
le UPDATEs superflue in no-ops.

Vladimir Sitnikov ha consegnato una patch per aggiungere le
statistiche del buffer pool all'output di EXPLAIN ANALYZE.

KaiGai Kohei ha consegnato un'altra revisione delle sue patch
SE-PostgreSQL.


pgsql-it-generale by date

Next:From: Gianni CiolliDate: 2008-11-12 01:31:20
Subject: == Notiziario settimanale PostgreSQL, 9 novembre 2008 ==
Previous:From: Giorgio ValotiDate: 2008-10-28 11:27:01
Subject: Re: Generare righe "intermedie"

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group