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

== Notiziario settimanale PostgreSQL - 1 marzo 2009 ==

From: Gianni Ciolli <gianni(dot)ciolli(at)2ndquadrant(dot)it>
To: pgsql-it-generale <pgsql-it-generale(at)postgresql(dot)org>
Cc: Gianluca Riccardi <gianluca(at)moonwatcher(dot)it>
Subject: == Notiziario settimanale PostgreSQL - 1 marzo 2009 ==
Date: 2009-03-06 10:22:45
Message-ID: 20090306102245.GA8250@fune (view raw or flat)
Thread:
Lists: pgsql-it-generale
(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>)

Il PUG di Denver (USA) si incontrerà il 27 marzo. Prossimamente
ulteriori dettagli.

Michael Renner terrà un workshop sulla replica con PostgreSQL a 
Netways OSDC 2009 in Norimberga, Germania.
http://www.netways.de/english/osdc/y2009/programm/w/michael_renner_postgresql_repliziert_ein_ueberblick/

PostgreSQLFr avrà uno stand a Solutions Linux 2009, Parigi.
Iscriviti tramite sas AT postgresql DOT fr oppure dal wiki in lingua francese:
http://postgresql.fr/sl2009:start

== Novità sul prodotto PostgreSQL ==

Rilasciata la versione 2.0.3 di Npgsql2, un provider di dati .NET per
PostgreSQL.
http://www.npgsql.org

Rilasciata la versione 2.2 di pgpool-II, connection pooler (e non
solo), e di pgpoolAdmin, front-end grafico per pgpool-II.
http://pgfoundry.org/projects/pgpool/

Rilasciato Simpycity, un sistema di mappatura per PostgreSQL.
https://projects.commandprompt.com/public/simpycity/

== La novità della settimana di PostgreSQL 8.4 == 

pg_stat_statements.  Questo modulo contrib realizzato da Itagaki
Takahiro permette dei report sull'attività del vostro DB "á la
pg_fouine", del tipo di "Le 25 query più popolari"; il tutto pressoché
in tempo reale.

== Il suggerimento della settimana == 

L'autovacuum dovrebbe essere attivato per la gran parte delle
applicazioni del database, mentre dovrebbe essere invece spento in
occasione di grandi caricamenti in blocco di dati, tipo ETL o il
restore di un database.

== Offerte di lavoro su PostgreSQL per marzo 2009 ==

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

== Notizie locali su PostgreSQL ==

Il PostgreSQL User Group tedesco avrà uno stand, due talk e un
workshop presso il Linuxdays Chemnitz, il 14 e 15 marzo 2009. Maggiori
informazioni in lingua tedesca qui:
http://andreas.scherbaum.la/blog/archives/525-PostgreSQL-auf-den-Chemnitzer-Linuxtagen.html                    

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

Segnatevi la data: pgDay San Jose (USA). Domenica 19 luglio subito
prima di OSCON. Saranno presto annunciate ulteriori informazioni!
(incluso il call for papers)

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, Josh Berkus 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 ==

Heikki Linnakangas ha effettuato i seguenti commit:

- Cmabiato l'invio dei segnali di end-of-recovery. Il processo di
  startup ora indica il termine del recovery in uscita con codice di
  ritorno 0, com nei precedenti rilasci. Coma da suggerimento di Tom.

- In pgsql/src/backend/postmaster/postmaster.c, reinserito un
  "continue" che era andato perso nei cambiamenti all'avvio del
  bgwriter nel recovery WAL.

- In pgsql/src/pl/plpgsql/src/pl_exec.c, per le variabili locali errm
  e sqlstate viene impostato isnull al momento del free; lasciare
  isnull impostato a true sembra essere inoffensivo, poiché in seguito
  esse sono fuori dallo scope di qualsiasi codice.  Comunque sia, il
  debugger di PL/pgSQL non sembra tenere conto dello scope, producendo
  così un crash, come da report di Robert Walker (bug #4635). È
  inoltre bene essere ordinati per il debugging. Errore corretto nei
  rami 8.3, 8.2 e 8.1, CVS HEAD era stato corretto in
  precedenza. Analisi e risoluzione da Ashesh Vashi e Dave Page.

- In pgsql/src/backend/commands/conversioncmds.c, in CREATE
  CONVERSION, controlla che la funzione data sia una funzione di
  conversione valida per le codifiche sorgente e destinazione. Tale
  controllo viene effettuato chiamando la funzione con una stringa
  vuota. Se la conversione richiesta non può essere eseguita, allora
  sarà prodotto un errore. Porting alle versioni 7.4 - 8.3. Come da
  segnalazione del bug #4680 da Denis Afonin.

Peter Eisentraut ha effettuato i seguenti commit:

- In pgsql/src/pl/plpgsql/src/pl_exec.c, aggiunti apici al messaggio.

- Aggiunta la possibilità di specificare una funzione esplicita di
  validazione per i wrappers a dati esterni (similmente ai linguaggi
  procedurali). In questo modo non è necessario conservare le librerie
  quasi vuote, e siamo più liberi nelle scelte sull'implementazione
  della API per i wrapper in futuro.

- Non appendere epoch a log_filename in assenza di una specificazione
  di formato. Robert Haas

- Classificato l'output di --help in modo quasi alfabetico, migliorato
  l'allineamento, resi gli help di pg_dump e pg_dumpall più simili.

- Rimosse le chiamate a feof(stdin) in relazione alla richiesta di
  inserimento password, rimasugli dal tempo in cui la password veniva
  letta da stdin.

- In pgsql/contrib/vacuumlo/vacuumlo.c, sistemato l'output
  dell'opzione di help (-?).

- In pgsql/src/bin/pg_config/pg_config.c, usato lo stesso stile usato
  da altri programmi nella sinossi dello help.

- Aggiunta l'opzione -w/--no-password, che evita ogni richiesta
  d'inserimento della password a tutti i programmi che hanno l'opzione
  -W/--password. Di passaggio, rimosse le antiche opzioni di
  compilazione PSQL_ALWAYS_GET_PASSWORDS.

- Rimozione finale delle opzioni -q che erano state disattivate dalla
  versione 8.3 ed erano iscritte tra le cose rimuovere per la 8.4.

- Risolte la dichiarazioni errone e inconsistenti sulla necessità o
  meno del valore dell'opzione in CREATE FOREIGN DATA
  WRAPPER/SERVER/USER MAPPING.

- I programmi installati con contrib sono stati equipaggiati con
  opportune opzioni --help e --version, e l'output di help è stato
  impaginato normalmente.

- In pgsql/src/bin/psql/help.c, aggiunte le opzioni lunghe al display
  di --help di psql, da cui curiosamente mancavano. Dal momento che
  così si toccano molte linee dell'output di help, l'accozzaglia di
  chiamate a puts e printf è stata cambiata ovunque in printf, per
  facilitare modifica e riesame del codice.

Tom Lane ha effettuato i seguenti commit:

- In pgsql/src/bin/psql/describe.c, corretto il comando \dD di psql al
  fine di mostrare una sola riga per dominio, anche quando il dominio
  ha più di un vincolo di tipo CHECK.

- Riparato un vecchio bug in CLUSTER e le varianti di ALTER TABLE che
  usano la riscrittura: se il comando viene eseguito da qualcuno che
  non sia il proprietario della tabella (p.e. un superuser), e la
  tabella ha una tabella toast, allora la riga pg_type della tabella
  toast si ritrova con il typeowner sbagliato, i. e. chi ha eseguito
  il comando e non il proprietario della tabella.  Si tratta di un
  errore pressoché inoffensivo per molti scopi, in quanto non ci sono
  controlli interessanti dei permessi che consultano la riga pg_type.
  Tuttavia, ciò potrebbe condurre a fallimenti inaspettati qualora si
  cercasse di effettuare il drop del ruolo che ha eseguito il comando
  (in 8.1 o 8.2), oppure potrebbe essere la causa di strani avvisi in
  seguito da parte di pg_dump (in 8.3 e successive, che consentiranno
  DROP ROLE perché non creiamo una dipendenza ridondante dal
  proprietario per i tipi di riga delle tabelle).  Problema
  identificato da Cott Lang. Correzione riportata indietro fino alla
  versione 8.1. Il problema è in effetti più vecchio - la variante
  CLUSTER può esser dimostrata in 7.0 - ma è principalmente un
  problema di tipo cosmetico prima della 8.1, poiché allora non
  venivano tracciate le dipendenze riguardo all'identità del
  proprietario.  In più, risolvere il problema prima della 8.1
  richiederebbe una modifica della segnatura della funzione
  heap_create_with_catalog(), la quale comporterebbe un rischio non
  banale di incompatibilità coi moduli add-on.

- Rimosso il tipo di nodo FlattenedSubLink, definito in modo piuttosto
  impreciso, in favore della costruzione, ad opera di
  pull_up_sublinks(), di una rappresentazione completa ad albero
  JoinExpr dei SubLinks IN/EXIST che sia convertibile in semi o anti
  join.  Così si rende pull_up_sublinks() un po' più complesso, ma il
  guadagno in chiarezza semantica giustifica la spesa.  C'è ancora
  molto da fare in quest'area per risolvere i problemi discussi in
  precedenza, ma questo commit risolve in se almeno un bug in HEAD,
  come dimostrato dal caso di test di regressione aggiunto.

- In pgsql/src/backend/utils/adt/ruleutils.c, risolto un vecchio
  problema nella decompilazione del costrutto CASE: il codice
  ruleutils.c cerca una CaseTestExpr per capire cosa ha fatto il
  parser, ma non riesce a considerare la possibilità che possa essere
  inserita una coercizione implicita sopra la CaseTestExpr. Ciò
  potrebbe risultare in un errore di Assert in alcuni casi (ma i
  risultati sarebbero comunque corretti se gli Assert sono
  disattivati), o un errore di tipo "unexpected CASE WHEN clause" nei
  casi rimanenti. Come da report di Alan Li. Patch riportata indietro
  alla 8.1; il problema non esiste prima perchè CASE era implementato
  diversamente.

- Rimosso il file di paragone del test di regressione join_1.out non
  aggiornato. Era malfunzionante da più di un mese, perciò
  evidentemente non era necessario, almeno per nessuna delle
  configurazioni nella buildfarm. Possiamo correggerlo e rimpiazzarlo
  in seguito se troviamo casi in cui se ne abbia bisogno.

- In pgsql/src/backend/optimizer/util/pathnode.c, migliorato
  create_unique_path al fine di non essere più imbrogliato da clausole
  che si trovano ad essere sintatticamente parte di una clausola
  semijoin pur non essendo legate a quest'ultima. Per esempio, dato
  WHERE EXISTS(SELECT ... WHERE upper.var = lower.var AND
  some-condition) dove some-condition è solo una restrizione sulla
  relazione "lower", possiamo effettuare l'unificazione su lower.var
  dopo aver applicato some-condition nella scansione di lower.

- Rese più restrittive le regole di join per tenere conto della
  recente analisi un po' più accurata dell'associatività delle
  antijoin. Migliorata anche la discussione optimizer/README delle
  regole di ordinamento delle outer join.

- In pgsql/src/backend/optimizer/prep/prepjointree.c, disabilitato
  temporaneamente (spero) l'appiattimento dei sublinks IN/EXISTS che
  sono nella clausola ON di una outer join. Ciò è semanticamente
  corretto, ma produce la de-ottimizzazione delle query che sono
  strutturate per avvantaggiarsi dello stile di esecuzione á la
  sublinks, come visto nella recente lamentela di Kevin Grittner. Dal
  momento che l'utente può ottenere l'altro comportamento tramite una
  riorganizzazione della propria query, l'appiattimento in automatico
  è solo una comodità che non giustifica il peggioramento delle
  applicazioni esistenti.  Più in avanti sarebbe bello riabilitare
  questa funzionalità; tuttavia sembra che ciò richieda nell'esecutore
  un approccio significativamente differente alle outer join.

- Ridotti i valori massimi di vacuum_cost_delay e
  autovacuum_vacuum_cost_delay a 100ms (da 1000). Questi valori
  sembrano ancora ampiamente maggiori dell'intervallo utile di questo
  parametro, e quindi dovrebbero aiutare nel dissuadere le persone
  dalla scelta di valori inutilmente grandi.  Modificata la
  documentazione per raccomandare l'uso di valori piccoli. Come da
  discussione avvenuta un paio di settimane fa.

- In pgsql/src/backend/optimizer/path/pathkeys.c, tolti un paio di
  cicli in compare_pathkeys() attraverso la verifica di liste di input
  aventi puntatori identici prima di scorrere le liste. Non si
  risparmia molto, ma il test dimostra che il caso in cui entrambi gli
  input sono NIL è sufficientemente comune da risparmiare qualcosa.

- Corretta l'allocazione dei buffer nelle routines di conversione
  delle codifiche, in modo che non falliscano in caso di input di
  lunghezza zero. Non è un caso in uso normalmente perchè
  l'infrastruttura non chiama il convertitore per le stringhe
  vuote. Comunque, la patch di ieri ha creato un problema nel
  controllare se in CREATE CONVERSION viene fornita la giusta funzione
  di conversione. La correzione più valida guardando al futuro sembra
  sia di rendere i convertitori a prova di questo caso particolare.

Magnus Hagander ha effettuato i seguenti commit:

- In pgsql/src/tools/msvc/Mkvcbuild.pm, rimossi i riferimenti alle
  librerie dei wrappers dei dati esterni, le quali sono state
  rimosse. Così il build msvc dovrebbe funzionare di nuovo.

Andrew Dunstan ha effettuato i seguenti commit:

- In pgsql/src/backend/utils/adt/xml.c, nella funzione xpath(), evita
  di modificare irreversibilmente xml e xpath, a meno che xml non sia
  di fatto un documento formalmente corretto. In caso di tale
  modifica, fai un tentativo un po' più salutare qualora l'espressione
  xpath non inizi con '/'.

== Patch rifiutate (per adesso) ==

La patch di James Pye che modifica il comportamento di xpath per
tenere conto dei frammenti. Richiesta una revisione poiché modifica
una funzionalità in un modo che non si classifica come risoluzione di
bug.

La patch di Sushint Sinhas per aggiungere lo spazio quando in tsearch2
si specifica FragmentDelimiter.  Tale funzionalità è già disponibile
con metodi meno invasivi.

La patch di Pavel Stehule per il supporto a parametri nominali e
valori di default per le funzioni. Troppa ambiguità
nell'interpretazione.

== Patch in coda ==

KaiGai Kohei ha consegnato due ulteriori revisioni delle sue patch
SE-PostgreSQL.

Alan Li ha consegnato una patch che corregge un errore di assertion
nel backend, che può occorrere definendo una vista con CASE su una
tabella.

Martin Pihlak ha consegnato una patch affinché i comandi \d facciano
considerare i dati nell'information schema come se fossero oggetti di
sistema, rendendoli invisibili per default. Essi sono comunque
visibili tramite i comandi \d*S.

Damien Clochard ha consegnato una patch per psql che mostra le tabelle
che ereditano una tabella data quando \d viene eseguito su una
tabella.

Heikki Linnakangas ha consegnato una patch WIP per Hot Standby che
mostra come il tracciamento delle transazioni potrebbe funzionare
usando solo le "unobserved xids," che al momento sono tutte le
transazioni master.

Robert Lor ha consegnato una patch alla documentazione per le sonde
DTrace recentemente aggiunte.

Dave Page ha consegnato una patch proveniente da Ashesh Vashi che
risolve un bug di PL/PgSQL nella 8.3 (impostando state_var->value e
errm_var->value a null, state_var->isnull e errm_var->isnull non erano
impostate di conseguenza).

Peter Eisentraut ha consegnato una patch per aggiungere i codici di
errore SQL:2008 ai valori LIMIT e OFFSET.

Peter Eisentraut ha consegnato una patch che impedisce a PostgreSQL di 
violare il limite di sistema sul numero massimo di files aperti.


pgsql-it-generale by date

Next:From: Gianni CiolliDate: 2009-03-15 15:38:15
Subject: == Notiziario settimanale PostgreSQL - 8 marzo 2009 ==
Previous:From: Gianni CiolliDate: 2009-02-27 11:10:32
Subject: == Notiziario settimanale PostgreSQL - 22 febbraio 2009 ==

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