== PostgreSQL Weekly News - September 29 2013 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - September 29 2013 ==
Date: 2013-09-30 05:56:55
Message-ID: 20130930055655.GA6909@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - September 29 2013 ==

The second week of four in the current Commitfest is now over, with
lots of activity. Six patches remain unclaimed. Mail RRReviewers if
you want to help.

== PostgreSQL Jobs for September ==

http://archives.postgresql.org/pgsql-jobs/2013-09/threads.php

== PostgreSQL Local ==

The Italian PGDay (PGDay.IT) will be held on October the 25th in
Prato, Tuscany, Italy, at Monash University Center.
To register to the event or get information about the accepted talks
and schedule please see the official web site: http://2013.pgday.it

The PostgreSQL Conference China for 2013 will be held October 26-27,
2013 in Hangzhou. Chinese language information here:
https://wiki.postgresql.org/wiki/Pgconf_cn2013
Registration:
http://bbs.pgsqldb.com/client/bm.php

pgconf.EU 2013 will be held on Oct 29-Nov 1, 2013 at the Conrad Hotel
in downtown Dublin, Ireland. Registration is open.
http://2013.pgconf.eu/

PGConf.DE 2013 will be held November 8th, 2013, at the Rhineland
Industrial Museum in Oberhausen. The CfP is open through September
15, 2013.
http://2013.pgconf.de/

The fourth edition of the Argentinian PostgreSQL Day will be held on
November 14 2013 in Buenos Aires, Argentina. The CfP deadline is
September 28th, 2013.
http://wiki.postgresql.org/wiki/PGDay_Argentina_2013

PGDay Cuba will be in November, 2013.
http://postgresql.uci.cu/

== 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
to pwn(at)arpug(dot)com(dot)ar(dot)

== Applied Patches ==

Heikki Linnakangas pushed:

- Fix two timeline handling bugs in pg_receivexlog. When a timeline
history file is fetched from server, it is initially created with a
temporary file name, and renamed to place. However, the temporary
file name was constructed using an uninitialized buffer. Usually
that meant that the file was created in current directory instead of
the target, which usually goes unnoticed, but if the target is on a
different filesystem than the current dir, the rename() would fail.
Fix that. The second issue is that pg_receivexlog would not take
.partial files into account when determining when scanning the
target directory for existing WAL files. If the timeline has
switched in the server several times in the last WAL segment, and
pg_receivexlog is restarted, it would choose a too old starting
point. That's not a problem as long as the old WAL segment exists in
the server and can be streamed over, but will cause a failure if
it's not. Backpatch to 9.3, where this timeline handling code was
written. Analysed by Andrew Gierth, bug #8453, based on a bug
report on IRC.
http://git.postgresql.org/pg/commitdiff/b882246e3ab4382b3c9f58e5f85dd8c9e3eb594f

- Plug memory leak in range_cmp function. B-tree operators are not
allowed to leak memory into the current memory context. Range_cmp
leaked detoasted copies of the arguments. That caused a quick
out-of-memory error when creating an index on a range column.
Reported by Marian Krucina, bug #8468.
http://git.postgresql.org/pg/commitdiff/77ae7f7c356064f5355e004b95f485358dfc1360

- Fix spurious warning after vacuuming a page on a table with no
indexes. There is a rare race condition, when a transaction that
inserted a tuple aborts while vacuum is processing the page
containing the inserted tuple. Vacuum prunes the page first, which
normally removes any dead tuples, but if the inserting transaction
aborts right after that, the loop after pruning will see a dead
tuple and remove it instead. That's OK, but if the page is on a
table with no indexes, and the page becomes completely empty after
removing the dead tuple (or tuples) on it, it will be immediately
marked as all-visible. That's OK, but the sanity check in vacuum
would throw a warning because it thinks that the page contains dead
tuples and was nevertheless marked as all-visible, even though it
just vacuumed away the dead tuples and so it doesn't actually
contain any. Spotted this while reading the code. It's difficult to
hit the race condition otherwise, but can be done by putting a
breakpoint after the heap_page_prune() call. Backpatch all the way
to 8.4, where this code first appeared.
http://git.postgresql.org/pg/commitdiff/adaba2751f617c0045f72d2ac2d5402cc184fb29

Stephen Frost pushed:

- Fix SSL deadlock risk in libpq. In libpq, we set up and pass to
OpenSSL callback routines to handle locking. When we run out of SSL
connections, we try to clean things up by de-registering the hooks.
Unfortunately, we had a few calls into the OpenSSL library after
these hooks were de-registered during SSL cleanup which lead to
deadlocking. This moves the thread callback cleanup to be after all
SSL-cleanup related OpenSSL library calls. I've been unable to
reproduce the deadlock with this fix. In passing, also move the
close_SSL call to be after unlocking our ssl_config mutex when in a
failure state. While it looks pretty unlikely to be an issue, it
could have resulted in deadlocks if we ended up in this code path
due to something other than SSL_new failing. Thanks to Heikki for
pointing this out. Back-patch to all supported versions; note that
the close_SSL issue only goes back to 9.0, so that hunk isn't
included in the 8.4 patch. Initially found and reported by
Vesa-Matti J Kari; many thanks to both Heikki and Andres for their
help running down the specific issue and reviewing the patch.
http://git.postgresql.org/pg/commitdiff/b37c90f11e3c239b999f98ffd3bbea6b8253fffa

Bruce Momjian pushed:

- pg_upgrade: fix C comment typo
http://git.postgresql.org/pg/commitdiff/f7cf5fa262f8be1bc75f390708ceed26d25f1e7d

- pg_upgrade: more C comment fixes
http://git.postgresql.org/pg/commitdiff/ff2a1f5e84ee9984b33ee31e6fb9c6f2760a820e

Robert Haas pushed:

- Don't allow system columns in CHECK constraints, except tableoid.
Previously, arbitray system columns could be mentioned in table
constraints, but they were not correctly checked at runtime, because
the values weren't actually set correctly in the tuple. Since it
seems easy enough to initialize the table OID properly, do that, and
continue allowing that column, but disallow the rest unless and
until someone figures out a way to make them work properly. No
back-patch, because this doesn't seem important enough to take the
risk of destabilizing the back branches. In fact, this will pose a
dump-and-reload hazard for those upgrading from previous versions:
constraints that were accepted before but were not correctly
enforced will now either be enforced correctly or not accepted at
all. Either could result in restore failures, but in practice I
think very few users will notice the difference, since the use case
is pretty marginal anyway and few users will be relying on features
that have not historically worked. Amit Kapila, reviewed by Rushabh
Lathia, with doc changes by me.
http://git.postgresql.org/pg/commitdiff/ba3d39c96921c96de114f6c22a9572bff24708b5

- doc: Clarify that file_fdw options require values. Mike Blackwell
and Robert Haas
http://git.postgresql.org/pg/commitdiff/54990af616ebb31fb1ae04e8aaf332d483a9e3a5

- Allow printf-style padding specifications in log_line_prefix. David
Rowley, after a suggestion from Heikki Linnakangas. Reviewed by
Albe Laurenz, and further edited by me.
http://git.postgresql.org/pg/commitdiff/4334639f4bb9fb88c13b8dd5faca22b207248504

Noah Misch pushed:

- Use @libdir@ in both of regress/{input,output}/security_label.source.
Though @libdir@ almost always matches @abs_builddir@ in this
context, the test could only fail if they differed. Back-patch to
9.1, where the test was introduced. Hamid Quddus Akhtar
http://git.postgresql.org/pg/commitdiff/b43b64caea4457c3a901e88e910f7e8badb5035f

- pgbench: Tweak documentation. Fabien COELHO
http://git.postgresql.org/pg/commitdiff/825da2aba8ae7a5824e9fb3823125c5c755ea568

- pgbench: Correct for bias in --rate schedule generation. Previous
code gave a mean delay 0.44% below target. This change also has the
effect of increasing the maximum possible delay. Fabien COELHO
http://git.postgresql.org/pg/commitdiff/c2df45a37cd9e32815fe2786cbb3ef905daaa7d2

Alvaro Herrera pushed:

- Fix pgindent comment breakage
http://git.postgresql.org/pg/commitdiff/b2fc4d6142033e361dee91388d9515be3633763c

Andrew Dunstan pushed:

- Fix erroneous statements about multiply specified JSON columns. The
behaviour in json_populate_record() and json_populate_recordset()
was changed during development but the docs were not.
http://git.postgresql.org/pg/commitdiff/d70f8d5f1b8bfa62a34b79445faae39acdb0363d

- Ensure installation dirs are built before contents are installed.
Cédric Villemain
http://git.postgresql.org/pg/commitdiff/d942f9d9283f831fc74ed3cf60e6c8362274b36e

- Use a new hstore extension version for added json functions. This
should have been done when the json functionality was added to
hstore in 9.3.0. To handle this correctly, the upgrade script
therefore uses conditional logic by using plpgsql in a DO statement
to add the two new functions and the new cast. If
hstore_to_json_loose is detected as already present and dependent on
the hstore extension nothing is done. This will require that the
database be loaded with plpgsql. People who have installed the
earlier and spurious 1.1 version of hstore will need to do: ALTER
EXTENSION hstore UPDATE; to pick up the new functions properly.
http://git.postgresql.org/pg/commitdiff/a18167510f4c385329697588ce5132cbf95779c3

- Fix makefile broken by hstore fix.
http://git.postgresql.org/pg/commitdiff/42bf7fc1de4d25c92b244fabe1a6b1cbec99f151

Fujii Masao pushed:

- Correct comment of pgbench "filler" columns. Pavan Deolasee
http://git.postgresql.org/pg/commitdiff/514b3194e80ec71bdbc92798ea946d7b51ea7ac2

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Pavel Stehule sent in two more revisions of a patch to improve the
performance of AVG on NUMERICs.

Alexander Korotkov sent in two more revisions of a patch to improve
GIN performance by adding information to what's stored.

Fabien COELHO sent in three more patches intended to improve pgbench.

Andres Freund sent in a patch to use critical section when ensuring
empty pages are initialized during vacuum.

Stas Kelvich sent in another revision of a patch to add point support
to the cube extension.

Laurenz Albe sent in another revision of a patch to fix the use of a
deprecated OpenLDAP API.

Stas Kelvich sent in a patch to implement support for different
storage types for cubes.

Stas Kelvich sent in a patch to fix the split algorithm implemented in
cube extension.

Alvaro Herrera sent in four more revisions of a patch to implement
minmax indexing.

Bruce Momjian sent in another revision of a patch to issue a warning
when calling SET TRANSACTION outside transaction block.

Kevin Grittner sent in three more revisions of a patch to implement a
record_identical operator.

Heikki Linnakangas sent in two more revisions of a patch to implement
freezing without write I/O.

Michael Paquier sent in another revision of a patch to implement
REINDEX CONCURRENTLY.

Heikki Linnakangas sent in another revision of a patch to fix two bugs
exposed in the attempt to fix the SSI freezing bug. The first is in
heap_hot_search_buffer(), where the PredicateLockTuple() call is
passed wrong offset number. heapTuple->t_self is set to the tid of the
first tuple in the chain that's visited, not the one actually being
read. The second is that CheckForSerializableConflictIn() uses the
tuple's t_ctid field instead of t_self to check for exiting predicate
locks on the tuple. If the tuple was updated, but the updater rolled
back, t_ctid points to the aborted dead tuple.

Ivan Lezhnjov IV, Robert Haas, and Karl O. Pinc sent in patches
clarifying non-superuser backups.

Andres Freund sent in a patch to improve performance by creating a
wait free LW_SHARED acquisition method.

Merlin Moncure sent in a patch to fix an issue where the CPU could go
to 100% and stay there that replaces the spinlock with a read barrier
based on a suggestion made by Andres Freund.

Chris Browne sent in a patch to add a "-g / --roles" option for
createuser.

Andres Freund sent in another flock of patches intended to be
infrastructure for logical changeset replication.

Amit Kapila sent in another revision of a patch to allow changing
system parameters via SQL persistently across restarts.

Ian Lawrence Barwick sent in a patch to Allow COPY in CSV mode to
control whether a quoted zero-length string is treated as NULL.

Gilles Darold sent in another revision of a patch to make psql's pset
print out the current configuration if not given an argument.

Nicholas White sent in a patch to use repalloc in the patch that
allows LAG and LEAD functions to ignore NULLs if told to.

Browse pgsql-announce by date

  From Date Subject
Next Message Jaime Casanova 2013-10-01 05:13:10 PgDay Ecuador 2013: Call for papers
Previous Message David Fetter 2013-09-23 05:19:53 == PostgreSQL Weekly News - September 22 2013 ==