Notiziario settimanale PostgreSQL – 22 aprile 2012

La conferenza europea di PostgreSQL (PostgreSQL Conference Europe 2012) si terrà a Praga, in Repubblica Ceca, dal 22 al 26 ottobre 2012. Per informazioni:

La conferenza PGNext è stata cancellata.

Novità sul prodotto PostgreSQL

pgbouncer 1.5.1, un leggero gestore di connessioni per PostgreSQL, è stato rilasciato.
Per informazioni:

Le versioni 3.1.3 e 3.0.7 di pgpool-II, un potente middleware per la gestione di connessioni, replica, bilanciamento del carico, esecuzione parallela di query e molto altro, sono state rilasciate. Per il download:

Skytools 3.0.1, un insieme di strumenti sviluppato da Skype per la replica e il failover che comprendono PgQ – un generico framework per la gestione di code – e Londiste – un sistema di replica master-slave basato su righe, è stato rilasciato. Per informazioni:

Offerte di lavoro per PostgreSQL nel mese di aprile

Per informazioni:

Notizie locali su PostgreSQL

Il secondo incontro dell’Arizona PostgreSQL Users Group è fissato alle 6:30 PM di mercoledì 25 aprile ed inizierà con pizza e bibite. Puoi unirti alla mailing list e aderire dal sito. Per informazioni:

PGCon 2012 si terrà nei giorni 17 e 18 maggio 2012 ad Ottawa, Canada, presso l’Università di Ottawa. Sarà preceduto da due giorni di tutorial dal 15 al 16 maggio. Per informazioni:

PGDay France si terrà a Lione il 7 giugno 2012. Per informazioni:

Rassegna stampa su PostgreSQL

Planet PostgreSQL:

Questo notiziario settimanale PostgreSQL è stato realizzato da David Fetter; traduzione parziale in lingua italiana a cura di Gabriele Bartolini.

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; per le lingue inglese o tedesca, si scriva rispettivamente a o a Per lo spagnolo a

Patch applicate

Peter Eisentraut pushed:

– PL/Python: Improve documentation of nrows() method. Clarify that
nrows() is the number of rows processed, versus the number of rows
returned, which can be obtained using len. Also add tests about

– Fix typo. Kyotaro HORIGUCHI

– Add compatibility information for prepared transaction commands

– psql: Add tab completion for CREATE/ALTER ROLE name WITH.
Previously, the use of the optional key word WITH was not supported.
Josh Kupershmidt

– Untabify DSSSL and XSL files and add to check-tabs target. Like
with SGML files, using tabs in these files is confusing and

– Fix some typos. Josh Kupershmidt

Heikki Linnakangas pushed:

– Install plpgsql.h to to include/server at “make install”. The
header file is needed by any module that wants to use the PL/pgSQL
instrumentation plugin interface. Most notably, the pldebugger
plugin needs this. With this patch, it can be built using pgxs,
without having the full server source tree available.

– Don’t wait for the commit record to be replicated if we wrote no
WAL. When using synchronous replication, we waited for the commit
record to be replicated, but if we our transaction didn’t write any
other WAL records, that’s not required because we don’t even flush
the WAL locally to disk in that case. This lead to long waits when
committing a transaction that only modified a temporary table. Bug
spotted by Thom Brown.

Andrew Dunstan pushed:

– Don’t override arguments set via options with positional arguments.
A number of utility programs were rather careless about paremeters
that can be set via both an option argument and a positional
argument. This leads to results which can violate the Principal Of
Least Astonishment. These changes refuse to use positional arguments
to override settings that have been made via positional arguments.
The changes are backpatched to all live branches.

Robert Haas pushed:

– Doc clarification for synchronous_commit. Fujii Masao

– Fix various infelicities in node functions. Mostly, this consists
of adding support for fields which exist in the structure but aren’t
handled by copy/equal/outfuncs; but the create foreign table case
can actually produce garbage output. Noah Misch

– Fix copyfuncs/equalfuncs support for ReassignOwnedStmt. Noah Misch

– Fix incorrect comment in SetBufferCommitInfoNeedsSave(). Noah Misch
spotted the fact that the old comment is in fact incorrect, due to
memory ordering hazards.

– After PageSetAllVisible, use MarkBufferDirty. Previously, we used
SetBufferCommitInfoNeedsSave, but that’s really intended for
dirty-marks we can theoretically afford to lose, such as hint bits.
As for 9.2, the PD_ALL_VISIBLE mustn’t be lost in this way, since we
could then end up with a heap page that isn’t all-visible and a
visibility map page that is all visible, causing index-only scans to
return wrong answers.

– Tighten up error recovery for fast-path locking. The previous code
could cause a backend crash after BEGIN; SAVEPOINT a; LOCK TABLE foo
(interrupted by ^C or statement timeout); ROLLBACK TO SAVEPOINT a;
LOCK TABLE foo, and might have leaked strong-lock counts in other
situations. Report by Zoltán Böszörményi; patch review by Jeff

– Finish rename of FastPathStrongLocks to FastPathStrongRelationLocks.
Commit 8e5ac74c1249820ca55481223a95b9124b4a4f95 tried to do this
renaming, but I relied on gcc to tell me where I needed to make
changes, instead of grep. Noted by Jeff Davis.

– Remove bogus comment from HeapTupleSatisfiesNow. This has been
wrong for a really long time. We don’t use two-phase locking to
protect against serialization anomalies. Per discussion on
pgsql-hackers about 2011-03-07; original report by Dan Ports.

Tom Lane pushed:

– Revise parameterized-path mechanism to fix assorted issues. This
patch adjusts the treatment of parameterized paths so that all paths
with the same parameterization (same set of required outer rels) for
the same relation will have the same rowcount estimate. We cache
the rowcount estimates to ensure that property, and hopefully save a
few cycles too. Doing this makes it practical for add_path_precheck
to operate without a rowcount estimate: it need only assume that
paths with different parameterizations never dominate each other,
which is close enough to true anyway for coarse filtering, because
normally a more-parameterized path should yield fewer rows thanks to
having more join clauses to apply. In add_path, we do the full nine
yards of comparing rowcount estimates along with everything else, so
that we can discard parameterized paths that don’t actually have an
advantage. This fixes some issues I’d found with add_path rejecting
parameterized paths on the grounds that they were more expensive
than not-parameterized ones, even though they yielded many fewer
rows and hence would be cheaper once subsequent joining was
considered. To make the same-rowcounts assumption valid, we have to
require that any parameterized path enforce *all* join clauses that
could be obtained from the particular set of outer rels, even if not
all of them are useful for indexing. This is required at both base
scans and joins. It’s a good thing anyway since the net impact is
that join quals are checked at the lowest practical level in the
join tree. Hence, discard the original rather ad-hoc mechanism for
choosing parameterization joinquals, and build a better one that has
a more principled rule for when clauses can be moved. The original
rule was actually buggy anyway for lack of knowledge about which
relations are part of an outer join’s outer side; getting this right
requires adding an outer_relids field to RestrictInfo.

– Adjust join_search_one_level’s handling of clauseless joins. For an
initial relation that lacks any join clauses (that is, it has to be
cartesian-product-joined to the rest of the query), we considered
only cartesian joins with initial rels appearing later in the
initial-relations list. This creates an undesirable dependency on
FROM-list order. We would never fail to find a plan, but perhaps we
might not find the best available plan. Noted while discussing the
logic with Amit Kapila. Improve the comments a bit in this area,
too. Arguably this is a bug fix, but given the lack of complaints
from the field I’ll refrain from back-patching.

– Use fuzzy not exact cost comparison for the final tie-breaker in
add_path. Instead of an exact cost comparison, use a fuzzy
comparison with 1e-10 delta after all other path metrics have proved
equal. This is to avoid having platform-specific roundoff behaviors
determine the choice when two paths are really the same to our cost
estimators. Adjust the recently-added test case that made it
obvious we had a problem here.

Alvaro Herrera pushed:

– Recast “ONLY” column CHECK constraints as NO INHERIT. The original
syntax wasn’t universally loved, and it didn’t allow its usage in
CREATE TABLE, only ALTER TABLE. It now works everywhere, and it
also allows using ALTER TABLE ONLY to add an uninherited CHECK
constraint, per discussion. The pg_constraint column has
accordingly been renamed connoinherit. This commit partly reverts
some of the changes in 61d81bd28dbec65a6b144e0cd3d0bfe25913c3ac,
particularly some pg_dump and psql bits, because now
pg_get_constraintdef includes the necessary NO INHERIT within the
constraint definition. Author: Nikhil Sontakke. Some tweaks by me

Patch rifiutate (per adesso)

Nessuno è stato scontentato questa settimana. :-)

Patch in attesa

Heikki Linnakangas sent in a patch to fix some infelicities in
localized error context messages.

Etsuro Fujita sent in another revision of the patch to validate
file_fdw tables for not-NULL constraints.

Kyotaro HORIGUCHI sent in three revisions of a fix for a bug where the
checkpointer on hot standbys runs without looking checkpoint_segments.
Fujii Masao sent in another fixing an infelicity in the last.

Noah Misch sent in a patch to fix an issue where {ts,array}_typanalyze
consumed much more memory than needed.

Jameison Martin sent in a patch to optimize the case of tables with
large numbers of columns, truncating the NULL bitmap at the last
non-NULL column.

Alexander Shulgin sent in two more revisions of a patch to add libpq
URIs to the regression tests.

Alvaro Herrera sent in a patch to add ALTER EXTENSION … OWNED.

Robert Haas sent in a patch to fix a bug in lazy_scan_heap() that
could cause index-only scans to give wrong results.

Laurenz Albe sent in a patch to fix a place where foreign table scan
estimates were frozen at 1000 rows, independent of statistics gathered
on same.

Noah Misch sent in a patch to fix an issue in B-tree page deletion.

Jan Urbanski sent in a patch to fix an issue with PL/PythonU triggers
on composite-type columns.

This Post Has 0 Comments

Leave A Reply