== PostgreSQL Weekly News - September 18 2011 ==
PostgreSQL 9.1.0 released! More cutting-edge features, more
performance...what's not to like?
The next Commitfest of the 9.2 cycle started September 15, 2011.
Round Robin Reviewers needed!
== PostgreSQL Product News ==
pgfincore, 1.1, a set of functions to handle low-level management of
relations using mincore to explore cache memory, released.
PL/Java 1.4.3 has been released.
Veil 9.1.0, a fine-grained access control system for PostgreSQL, released.
== PostgreSQL Jobs for September ==
== PostgreSQL Local ==
PostgreSQL Conference West (#PgWest) will be held September 27th-30th,
2011 at the San Jose Convention center in San Jose, California, USA.
PostgreSQL Conference Europe 2011 will be held on October 18-21 in
PG-Day Denver 2011 will be held on Friday, October 21st, 2011 at
the Auraria Campus near downtown Denver, Colorado.
pgbr will be in Sao Paulo, Brazil November 3-4, 2011.
PGConf.DE 2011 is the German-speaking PostgreSQL Conference and will
take place on November 11th in the Rheinisches Industriemuseum in
Oberhausen, Germany. Call for Papers is open.
The fifth edition of the Italian PostgreSQL Day (PGDay.IT 2011) will
be held on November 25, 2011 in Prato, Italy.
The Call for Papers for is open for FLOSS UK, which will be held in
Edinburgh from the 20th to the 22nd March 2012. The deadline for
proposals is the 18th November 2011 and selected speakers will be
notified by the 25th November 2011. Proposals should be submitted to
postgresql2012 AT flossuk DOT org. More information at:
== PostgreSQL in the News ==
Planet PostgreSQL: http://planet.postgresql.org/
PostgreSQL Weekly News is brought to you this week by David Fetter
Submit news and announcements by Sunday at 3:00pm Pacific time.
Please send English language ones to david(at)fetter(dot)org, German language
to pwn(at)pgug(dot)de, Italian language to pwn(at)itpug(dot)org(dot) Spanish language
== Reviews ==
== Applied Patches ==
Heikki Linnakangas pushed:
- In the final emptying phase of the new GiST buffering build, set the
queuedForEmptying flag correctly on buffer when adding it to the
queue. Also, don't add buffer to the queue if it's there already.
These were harmless oversights; failing to set the flag just means
that a buffer might get added to the queue twice if more tuples are
added to it (although that can't actually happen at this point
because all the upper buffers have already been emptied), and having
the same buffer twice in the emptying queue is harmless. But better
- In the manual section on primary_conninfo, recommend using a role
with REPLICATION privileges, not SUPERUSER. Fujii Masao
- Teach the makefile used to build stand-alone libpq on Windows that
libpq needs win32setlocale.c now. The cygwin and MSVC build scripts
were changed earlier, but this was neglected. This should fix bug
report #6203 by Steve.
Tom Lane pushed:
- Propagate with_system_tzdata setting into initdb build.
findtimezone.c needs to know this setting too. Per Peter
- deflist_to_tuplestore dumped core on an option with no value. Make
it return NULL for the option_value, instead. Per report from Frank
van Vugt. Back-patch to 8.4 where this code was added.
- Redesign the plancache mechanism for more flexibility and
efficiency. Rewrite plancache.c so that a "cached plan" (which is
rather a misnomer at this point) can support generation of custom,
parameter-value-dependent plans, and can make an intelligent choice
between using custom plans and the traditional generic-plan
approach. The specific choice algorithm implemented here can
probably be improved in future, but this commit is all about getting
the mechanism in place, not the policy. In addition, restructure
the API to greatly reduce the amount of extraneous data copying
needed. The main compromise needed to make that possible was to
split the initial creation of a CachedPlanSource into two steps.
It's worth noting in particular that SPI_saveplan is now deprecated
in favor of SPI_keepplan, which accomplishes the same end result
with zero data copying, and no need to then spend even more cycles
throwing away the original SPIPlan. The risk of long-term memory
leaks while manipulating SPIPlans has also been greatly reduced.
Most of this improvement is based on use of the recently-added
- gistendscan() forgot to free so->giststate. This oversight led to a
massive memory leak --- upwards of 10KB per tuple --- during
creation-time verification of an exclusion constraint based on a
GIST index. In most other scenarios it'd just be a leak of 10KB
that would be recovered at end of query, so not too significant;
though perhaps the leak would be noticeable in a situation where a
GIST index was being used in a nestloop inner indexscan. In any
case, it's a real leak of long standing, so patch all supported
branches. Per report from Harald Fuchs.
- Ensure generic plan gets used for a plpgsql expression with no
parameters. Now that a NULL ParamListInfo pointer causes
significantly different behavior in plancache.c, be sure to pass it
that way when the expression is known not to reference any plpgsql
variables. Saves a few setup cycles anyway.
- Avoid unnecessary page-level SSI lock check in heap_insert(). As
observed by Heikki, we need not conflict on heap page locks during
an insert; heap page locks are only aggregated tuple locks, they
don't imply locking "gaps" as index page locks do. So we can avoid
some unnecessary conflicts, and also do the SSI check while not
holding exclusive lock on the target buffer. Kevin Grittner,
reviewed by Jeff Davis. Back-patch to 9.1.
- Add FORCE_NOT_NULL support to the file_fdw foreign data wrapper.
This is implemented as a per-column boolean option, rather than
trying to match COPY's convention of a single option listing the
column names. Shigeru Hanada, reviewed by KaiGai Kohei
- Remove debug logging for pgstat wait timeout. This reverts commit
79b2ee20c8a041a85dd230c4e787bef22edae57b, which proved to not be
very informative; it looks like the "pgstat wait timeout" warnings
in the buildfarm are just a symptom of running on heavily loaded
machines, and there isn't any weird mechanism causing them to
appear. To try to reduce the frequency of buildfarm failures from
this effect, increase PGSTAT_MAX_WAIT_TIME from 5 seconds to 10.
Also, arrange to not send a fresh inquiry message every single time
through the loop, as that seems more likely to cause problems (by
swamping the collector) than fix them. We'll now send an inquiry
the first time through the delay loop, and every 640 msec
- Fix Assert failure in new plancache code. The regression tests were
failing with CLOBBER_CACHE_ALWAYS enabled, as reported by buildfarm
member jaguar. There was an Assert in BuildCachedPlan that asserted
that the CachedPlanSource hadn't been invalidated since we called
RevalidateCachedQuery, which in theory can't happen because we are
holding locks on all the relevant database objects. However,
CLOBBER_CACHE_ALWAYS generates a false positive by making an
invalidation happen anyway; and on reflection, that could also occur
as a result of a badly-timed sinval reset due to queue overflow. We
could just remove the Assert and forge ahead with the
not-really-stale querytree, but it seems safer to do another
RevalidateCachedQuery call just to make real sure everything's OK.
- Fix another Assert issue exposed by CLOBBER_CACHE_ALWAYS. plpgsql's
exec_stmt_execsql was Assert'ing that a CachedPlanSource was
is_valid immediately after exec_prepare_plan. The risk factor in
this case is that after building the prepared statement,
exec_prepare_plan calls exec_simple_check_plan, which might try to
generate a generic plan --- and with CLOBBER_CACHE_ALWAYS or other
unusual causes of invalidation, that could result in an
invalidation. However, that path could only be taken for a SELECT
query, for which we need not set mod_stmt. So in this case I think
it's best to just remove the Assert; it's okay to look at a
slightly-stale querytree for what we need here. Per buildfarm
Alvaro Herrera pushed:
- Split walsender.h in public/private headers. This dramatically cuts
short the number of headers the public one brings into whatever
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Jun Ishiduka sent in another revision of the patch to allow taking a
base backup from a hot standby.
KaiGai Kohei sent in another revision of the patches to fix leaky
Alvaro Herrera sent in a patch splitting walsender into public and
Marko (johto) Tiikkaja sent in another revision of the patch to add
nfiltered to EXPLAIN output.
KaiGai Kohei sent in a patch which enables the control/sepgsql to
assign security label to pg_database objects which are then used as a
basis to compute a default security label of schema objects.
Etsuro Fujita sent in a WIP patch to allow collecting statistics on
CSV files attached via FDW.
Kyotaro HORIGUCHI sent in a patch to create an encoding-specific
Joachim Wieland sent in another revision of the patch to enable and
export synchronized snapshots.
Jeff Davis sent in another revision of the patch to add range types.
Hans-Juergen Schoenig sent in another WIP patch to allow cross-column
Heikki Linnakangas sent in a patch to allow inserting heap tuples in
bulk during COPY.
Shigeru HANADA sent in a patch to allow pushing JOINs to foreign
tables when using FDWs.
Robert Haas sent in another revision of the patch to put up some
memory barriers for the case of machines with weak memory ordering.
Fujii Masao sent in another revision of the patch to add a
Fujii Masao sent in another revision of the patch to unite
recovery.conf and postgresql.conf
Yeb Havinga sent in another revision of the patch to enable calling a
scroll cursor with named parameters.
Andrew Dunstan sent in a patch to create a \setenv utility in psql.
David Wheeler sent in two revisions of a patch to use xsubpp in modern
Simon Riggs sent in a patch to separate the bgwriter and the
checkpointer into separate components.
Alexander Korotkov sent in another revision of the double sorting
Marti Raudsepp sent in another revision of the patch to cache
stable expressions with constant arguments.
Peter Eisentraut sent in another revision of the patch to test
Marti Raudsepp sent in another revision of the patch to generate
column names for subquery expressions.
pgsql-announce by date
|Next:||From: Pavel Golub||Date: 2011-09-20 10:02:39|
|Subject: MicrOLAP Database Designer with PostgreSQL 9.1 support is out!|
|Previous:||From: Tim Clarke||Date: 2011-09-16 18:14:46|
|Subject: Re: PL/Java 1.4.3 Released|