== PostgreSQL Weekly News - June 09 2013 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - June 09 2013 ==
Date: 2013-06-10 06:50:14
Message-ID: 20130610065014.GB1586@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - June 09 2013 ==

The first Commitfest for the next version of PostgreSQL will start
soon. Dust off those patches and prepare to help others dust off
theirs!
https://commitfest.postgresql.org/action/commitfest_view?id=18

== PostgreSQL Product News ==

Slony-I 2.2.0 beta 4 released.
http://www.slony.info/

psqlODBC 09.02.0100 released.
http://www.postgresql.org/ftp/odbc/versions/

== PostgreSQL Jobs for June ==

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

== PostgreSQL Local ==

PG Day France is the major French-speaking PostgreSQL community event.
It will be held June 13, 2013 in Nantes, France.
http://pgday.fr/

We're going to have a booth at OSCON this year. Please sign up and
hang out at the booth for an hour or two:
https://wiki.postgresql.org/wiki/Oscon_2013_signup

PGDay UK 2013 is July 12, 2013. Registration is open.
http://postgresqlusergroup.org.uk

PostgreSQL Brazil will be held August 15-17, 2013 in Porto Velho, RO,
Brazil.
http://pgbr.postgresql.org.br/2013/chamada.en.php

Save The Date!
Postgres Open 2013 will be in Chicago, IL, USA, September 16-18.
Hotel Sax:
https://reservations.ihotelier.com/crs/g_reservation.cfm?groupID=888761&hotelID=6865
Early Bird registration open through June 30, 2013:
http://postgresopen-eac2.eventbrite.com/
Presentations are due by July 1, 2013.
http://www.postgresopen.org/2013/speaker/

pgconf.EU 2013 will be held on Oct 29-Nov 1, 2013 at the Conrad Hotel
in downtown Dublin, Ireland. The CfP 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/

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

Noah Misch pushed:

- Don't emit non-canonical empty arrays in array_remove(). Dean
Rasheed
http://git.postgresql.org/pg/commitdiff/97c4d9b7c71519d9dc281394af2c4bcb28bdf136

Heikki Linnakangas pushed:

- Code review of recycling WAL segments in a restartpoint. Seems
cleaner to get the currently-replayed TLI in the same call to
GetXLogReplayRecPtr that we get the WAL position. Make it more
clear in the comment what the code does when recovery has already
ended (RecoveryInProgress() will set ThisTimeLineID in that case).
Finally, make resetting ThisTimeLineID afterwards more explicit.
http://git.postgresql.org/pg/commitdiff/e1e2bb34f1237cbec396bcaa795f0fa955af0e72

- Put back allow_system_table_mods check in heap_create(). This
reverts commit a475c6036752c26dca538632b68fd2cc592976b7. Erik
Rijkers reported back in January 2013 that after the patch, if you
do "pg_dump -t myschema.mytable" to dump a single table, and restore
that in a database where myschema does not exist, the table is
silently created in pg_catalog instead. That is because pg_dump uses
"SET search_path=myschema, pg_catalog" to set schema the table is
created in. While allow_system_table_mods is not a very elegant
solution to this, we can't leave it as it is, so for now, revert it
back to the way it was previously.
http://git.postgresql.org/pg/commitdiff/15386281a62071f322155b74cb32c2fea92e8350

- Fix off-by-one in pg_xlogdump -r option. Because of the bug, -r
would not accept the rmgr with the highest ID.
http://git.postgresql.org/pg/commitdiff/79e15c7d86d3f781cc390a5a04db18254ce97b79

- Fix typo in comment.
http://git.postgresql.org/pg/commitdiff/f73cb5567c2e27d9a02c7ddba9da8d8557cf08dd

Stephen Frost pushed:

- Additional spelling corrections. A few more minor spelling
corrections, no functional changes. Thom Brown
http://git.postgresql.org/pg/commitdiff/f129615fe72f70868a86862b663dd7d78dd5cb71

Tom Lane pushed:

- Add semicolons to eval'd strings to hide a minor Perl behavioral
change. "eval q{foo}" used to complain that the error was on line 2
of the eval'd string, because eval internally tacked on "\n;" so
that the end of the erroneous command was indeed on line 2. But as
of Perl 5.18 it more sanely says that the error is on line 1. To
avoid Perl-version-dependent regression test results, use "eval
q{foo;}" instead in the two places where this matters. Per
buildfarm. Since people might try to use newer Perl versions with
older PG releases, back-patch as far as 9.0 where these test cases
were added.
http://git.postgresql.org/pg/commitdiff/035a5e1e8c346efe25df6be4627b5f24cc3736b1

- Fix memory leak in LogStandbySnapshot(). The array allocated by
GetRunningTransactionLocks() needs to be pfree'd when we're done
with it. Otherwise we leak some memory during each checkpoint, if
wal_level = hot_standby. This manifests as memory bloat in the
checkpointer process, or in bgwriter in versions before we made the
checkpointer separate. Reported and fixed by Naoya Anzai.
Back-patch to 9.0 where the issue was introduced. In passing,
improve comments for GetRunningTransactionLocks(), and add an Assert
that we didn't overrun the palloc'd array.
http://git.postgresql.org/pg/commitdiff/dbc6eb1f4b840d252031419d4bf694316812124f

- Add ARM64 (aarch64) support to s_lock.h. Use the same gcc atomic
functions as we do on newer ARM chips. (Basically this is a copy
and paste of the __arm__ code block, but omitting the SWPB option
since that definitely won't work.) Back-patch to 9.2. The patch
would work further back, but we'd also need to update
config.guess/config.sub in older branches to make them build
out-of-the-box, and there hasn't been demand for it. Mark Salter
http://git.postgresql.org/pg/commitdiff/5c7603c318872a42e1665b228f68fdf58714d945

- Provide better message when CREATE EXTENSION can't find a target
schema. The new message (and SQLSTATE) matches the corresponding
error cases in namespace.c. This was thought to be a "can't happen"
case when extension.c was written, so we didn't think hard about how
to report it. But it definitely can happen in 9.2 and later, since
we no longer require search_path to contain any valid schema names.
It's probably also possible in 9.1 if search_path came from a
noninteractive source. So, back-patch to all releases containing
this code. Per report from Sean Chittenden, though this isn't
exactly his patch.
http://git.postgresql.org/pg/commitdiff/530acda4dabe26a4345eccd28a92dd23b1e7a94a

- Put analyze_keyword back in explain_option_name production. In
commit 2c92edad48796119c83d7dbe6c33425d1924626d, I broke "EXPLAIN
(ANALYZE)" syntax, because I mistakenly thought that ANALYZE/ANALYSE
were only partially reserved and thus would be included in
NonReservedWord; but actually they're fully reserved so they still
need to be called out here. A nicer solution would be to demote
these words to type_func_name_keyword status (they can't be less
than that because of "VACUUM [ANALYZE] ColId"). While that works
fine so far as the core grammar is concerned, it breaks ECPG's
grammar for reasons I don't have time to isolate at the moment. So
do this for the time being. Per report from Kevin Grittner.
Back-patch to 9.0, like the previous commit.
http://git.postgresql.org/pg/commitdiff/3f783c882712db5a5e0056f271ff765edeb2571a

- Prevent pushing down WHERE clauses into unsafe UNION/INTERSECT
nests. The planner is aware that it mustn't push down upper-level
quals into subqueries if the quals reference subquery output columns
that contain set-returning functions or volatile functions, or are
non-DISTINCT outputs of a DISTINCT ON subquery. However, it missed
making this check when there were one or more levels of UNION or
INTERSECT above the dangerous expression. This could lead to
"set-valued function called in context that cannot accept a set"
errors, as seen in bug #8213 from Eric Soroos, or to silently wrong
answers in the other cases. To fix, refactor the checks so that we
make the column-is-unsafe checks during subquery_is_pushdown_safe(),
which already has to recursively inspect all arms of a set-operation
tree. This makes qual_is_pushdown_safe() considerably simpler, at
the cost that we will spend some cycles checking output columns that
possibly aren't referenced in any upper qual. But the cases where
this code gets executed at all are already nontrivial queries, so
it's unlikely anybody will notice any slowdown of planning. This
has been broken since commit
05f916e6add9726bf4ee046e4060c1b03c9961f2, which makes the bug over
ten years old. A bit surprising nobody noticed it before now.
http://git.postgresql.org/pg/commitdiff/964c0d0f80e485dd3a4073e073ddfd9bfdda90b2

- Minor docs wordsmithing. Swap the order of a couple of phrases to
clarify what the adjective "subsequent" applies to. Joshua Tolley
http://git.postgresql.org/pg/commitdiff/7b1e893acd4b7637de93631781f82e0f6834b621

- Remove fixed limit on the number of concurrent AllocateFile()
requests. AllocateFile(), AllocateDir(), and some sister routines
share a small array for remembering requests, so that the files can
be closed on transaction failure. Previously that array had a fixed
size, MAX_ALLOCATED_DESCS (32). While historically that had seemed
sufficient, Steve Toutant pointed out that this meant you couldn't
scan more than 32 file_fdw foreign tables in one query, because
file_fdw depends on the COPY code which uses AllocateFile(). There
are probably other cases, or will be in the future, where this
nonconfigurable limit impedes users. We can't completely remove any
such limit, at least not without a lot of work, since each such
request requires a kernel file descriptor and most platforms limit
the number we can have. (In principle we could "virtualize" these
descriptors, as fd.c already does for the main VFD pool, but not
without an additional layer of overhead and a lot of notational
impact on the calling code.) But we can at least let the array size
be configurable. Hence, change the code to allow up to
max_safe_fds/2 allocated file requests. On modern platforms this
should allow several hundred concurrent file_fdw scans, or more if
one increases the value of max_files_per_process. To go much
further than that, we'd need to do some more work on the data
structure, since the current code for closing requests has
potentially O(N^2) runtime; but it should still be all right for
request counts in this range. Back-patch to 9.1 where
contrib/file_fdw was introduced.
http://git.postgresql.org/pg/commitdiff/007556bf08e6153c442fe3742adb3685fca3a0e0

- Remove ALTER DEFAULT PRIVILEGES' requirement of schema CREATE
permissions. Per discussion, this restriction isn't needed for any
real security reason, and it seems to confuse people more often than
it helps them. It could also result in some database states being
unrestorable. So just drop it. Back-patch to 9.0, where ALTER
DEFAULT PRIVILEGES was introduced.
http://git.postgresql.org/pg/commitdiff/f3839ea117fba6fdb69c75a1fe145aa86a4c8ae3

- Remove unnecessary restrictions about RowExprs in
transformAExprIn(). When the existing code here was written, it
made sense to special-case RowExprs because that was the only way
that we could handle row comparisons at all. Now that we have
record_eq() and arrays of composites, the generic logic for "scalar"
types will in fact work on RowExprs too, so there's no reason to
throw error for combinations of RowExprs and other ways of forming
composite values, nor to ignore the possibility of using a
ScalarArrayOpExpr. But keep using the old logic when comparing two
RowExprs, for consistency with the main transformAExprOp() logic.
(This allows some cases with not-quite-identical rowtypes to
succeed, so we might get push-back if we removed it.) Per bug #8198
from Rafal Rzepecki. Back-patch to all supported branches, since
this works fine as far back as 8.4. Rafal Rzepecki and Tom Lane
http://git.postgresql.org/pg/commitdiff/a4424c57c3da52efa212b21521abff4bf129b19e

- Tweak postgres_fdw regression test so autovacuum doesn't change
results. Autovacuum occurring while the test runs could allow some
of the inserts to go into recycled space, thus changing the output
ordering of later queries. While we could complicate those queries
to force sorting of their output rows, it doesn't seem like that
would make the test better in any meaningful way, and conceivably it
could hide unexpected diffs. Instead, tweak the affected queries so
that the inserted rows aren't updated by the following UPDATE. Per
buildfarm.
http://git.postgresql.org/pg/commitdiff/e0b451e43250558b3c1ac830e067b39e25e0e348

Peter Eisentraut pushed:

- Update SQL features list
http://git.postgresql.org/pg/commitdiff/a3bd6096bdc6db70ec267116ba52a4cccbd34c2a

- doc: Clarify description of VALUES command. Greg Smith
http://git.postgresql.org/pg/commitdiff/58617e4dc131561f4b6ba492d6a404b05bd0b968

- doc: Fix <synopsis> in <term> markup. Although the DTD technically
allows this, the resulting HTML is invalid because it puts block
elements inside inline elements. DocBook 5.0 also doesn't allow it
anymore, so it's fair to assume that this was never really intended
to work. Replace <synopsis> with <literal>, which is the markup
used elsewhere in the documentation in similar cases.
http://git.postgresql.org/pg/commitdiff/c99d5d1bcc137c15058458bbdcdd2789b56e4c66

Bruce Momjian pushed:

- pg_upgrade: document that --link should be used with --check
Backpatch to 9.2.
http://git.postgresql.org/pg/commitdiff/e2c84bc9f5f1f2f9570c882d10c2cbdf6fe9e47d

Robert Haas pushed:

- Ensure that XLOG_HEAP2_VISIBLE always targets an initialized page.
Andres Freund
http://git.postgresql.org/pg/commitdiff/a6370fd9ed3dbad6070b789eae916d6a037e4773

Kevin Grittner pushed:

- Correct the documentation of pg_rewrite.ev_attr. It claimed the
value was always zero; it is really always -1. Per report from Hari
Babu
http://git.postgresql.org/pg/commitdiff/734fbbd1d2d1babfbd195414e2445024ad549ae3

Andrew Dunstan pushed:

- Handle Unicode surrogate pairs correctly when processing JSON. In
9.2, Unicode escape sequences are not analysed at all other than to
make sure that they are in the form \uXXXX. But in 9.3 many of the
new operators and functions try to turn JSON text values into text
in the server encoding, and this includes de-escaping Unicode escape
sequences. This processing had not taken into account the
possibility that this might contain a surrogate pair to designate a
character outside the BMP. That is now handled correctly. This
also enforces correct use of surrogate pairs, something that is not
done by the type's input routines. This fact is noted in the docs.
http://git.postgresql.org/pg/commitdiff/94e3311b97448324d67ba9a527854271373329d9

- Don't downcase non-ascii identifier chars in multi-byte encodings.
Long-standing code has called tolower() on identifier character
bytes with the high bit set. This is clearly an error and produces
junk output when the encoding is multi-byte. This patch therefore
restricts this activity to cases where there is a character with the
high bit set AND the encoding is single-byte. There have been
numerous gripes about this, most recently from Martin Schäfer.
Backpatch to all live releases.
http://git.postgresql.org/pg/commitdiff/d535136b5d60b19f7ffa777b97ed301739c15a9d

Joe Conway pushed:

- Fix ordering of obj id for Rules and EventTriggers in pg_dump.
getSchemaData() must identify extension member objects and mark them
as not to be dumped. This must happen after reading all objects that
can be direct members of extensions, but before we begin to process
table subsidiary objects. Both rules and event triggers were wrong
in this regard. Backport rules portion of patch to 9.1 -- event
triggers do not exist prior to 9.3. Suggested fix by Tom Lane,
initial complaint and patch by me.
http://git.postgresql.org/pg/commitdiff/33a4466f767be8b153ef1ef78433ad9b1867dab8

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Noah Misch sent in a patch to improve partitioning performance by
caching stringToNode() of pg_constraint.ccbin.

Robert Haas sent in another revision of a patch to enable MVCC catalog
access.

Pavel Raiskup sent in a patch to add support for the TAS/S_UNLOCK
instructions for aarch64.

Michael Paquier sent in another revision of a patch to add support for
REINDEX CONCURRENTLY.

Andres Freund sent in a WIP patch to add extensible external toast
tuples and add the "snappy" compression algorithm as a contrib module.

Gurjeet Singh and Heikki Linnakangas traded patches to introduce a new
automatic variable to pgbench: client_id.

Amit Kapila sent in another revision of a patch to move unused buffers
to freelist.

Gurjeet Singh sent in another revision of a patch to make processing
of long AND/OR lists more efficient.

Greg Smith and Heikki Linnakangas traded patches to redesign how
checkpoint segments are done.

Dean Rasheed sent in two more revisions of a patch to make sure they
catalog knows when a relation is updateable.

Amit Kapila sent in another revision of a patch to reduce the amount
of WAL for an update operation.

Greg Smith sent in another revision of a patch to add a --throttle
option to pgbench.

Simon Riggs sent in a patch to batch trigger executions together to
avoid execution overhead.

Simon Riggs sent in a patch to make it possible to do ALTER TABLE ...
ALTER CONSTRAINT.

Dean Rasheed sent in another revision of a patch to add WITH CHECK
OPTION to updateable views.

Noah Misch sent in a flock of patches dealing with memory errors in
9.3.

Noah Misch sent in two more revisions of a patch to do Valgrind memory
checking.

Tatsuo Ishii sent in a patch to rationalize client-side large object
accessors.

Jeff Davis sent in another revision of a patch to eliminate
PD_ALL_VISIBLE.

Jeff Davis sent in a patch to update pg_filedump to deal with current
technologies like checksums.

Browse pgsql-announce by date

  From Date Subject
Next Message Benoît Carpentier 2013-06-10 18:27:55 Benetl, a free ETL tool for postgreSQL, out in version 4.4
Previous Message Steve Singer 2013-06-07 14:53:15 Slony 2.2.0 beta 4 released