== PostgreSQL Weekly News - July 14 2013 ==
== PostgreSQL Product News ==
PostgreSQL Maestro 13.7, an ODBC-based management tool which works
with PostgreSQL, released.
== PostgreSQL Jobs for July ==
== PostgreSQL Local ==
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:
PGDay UK 2013 is July 12, 2013. Registration is closing soon. Book now!
PostgreSQL Brazil will be held August 15-17, 2013 in Porto Velho, RO,
Postgres Open 2013 will be in Chicago, IL, USA, September 16-18.
The Italian PGDay (PGDay.IT) will be held on October the 25th in
Prato, Tuscany, Italy, at Monash University Center.
The International Call For Papers is open:
pgconf.EU 2013 will be held on Oct 29-Nov 1, 2013 at the Conrad Hotel
in downtown Dublin, Ireland. The CfP is open.
PGConf.DE 2013 will be held November 8th, 2013, at the Rhineland
Industrial Museum in Oberhausen. The CfP is open through September
== 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 [email protected], German language
to [email protected], Italian language to [email protected] Spanish language
to [email protected]
== Applied Patches ==
Heikki Linnakangas pushed:
- Improve scalability of WAL insertions. This patch replaces
WALInsertLock with a number of WAL insertion slots, allowing
multiple backends to insert WAL records to the WAL buffers
concurrently. This is particularly useful for parallel loading large
amounts of data on a system with many CPUs. This has one
user-visible change: switching to a new WAL segment with
pg_switch_xlog() now fills the remaining unused portion of the
segment with zeros. This potentially adds some overhead, but it has
been a very common practice by DBA's to clear the "tail" of the
segment with an external pg_clearxlogtail utility anyway, to make
the WAL files compress better. With this patch, it's no longer
necessary to do that. This patch adds a new GUC, xloginsert_slots,
to tune the number of WAL insertion slots. Performance testing
suggests that the default, 8, works pretty well for all kinds of
worklods, but I left the GUC in place to allow others with different
hardware to test that easily. We might want to remove that before
release. Reviewed by Andres Freund.
- Fix pg_test_fsync, broken by xloginsert scaling patch. I didn't
realize that ALIGNOF_XLOG_BUFFER was used in pg_test_fsync.
- Fix Windows build. Was broken by my xloginsert scaling patch.
XLogCtl global variable needs to be initialized in each process, as
it's not inherited by fork() on Windows.
- Add #include needed for _mm_mfence() intrinsic on ia64. Hopefully
this fixes the build failure on buildfarm member dugong.
- Fix memory barrier support on icc on ia64, 2nd attempt. Itanium
doesn't have the mfence instruction - that's a 386 thing. Use the
"mf" instruction instead. This reverts the previous commit to add
"#include "; the problem was not with a missing
Alvaro Herrera pushed:
- Fix mention of htup.h in pageinspect docs. It's htup_details.h now.
Peter Eisentraut pushed:
- Fix bool abuse. path_encode's "closed" argument used to take three
values: TRUE, FALSE, or -1, while being of type bool. Replace that
with a three-valued enum for more clarity.
- Fix lack of message pluralization
- Add coverage/ to .gitignore
- doc: Replace link to pgFouine with pgBadger. From: Ian Lawrence
- pg_dump: Formatting cleanup of new messages
- Add session_preload_libraries configuration parameter. This is like
shared_preload_libraries except that it takes effect at backend
start and can be changed without a full postmaster restart. It is
like local_preload_libraries except that it is still only settable
by a superuser. This can be a better way to load modules such as
auto_explain. Since there are now three preload parameters, regroup
the documentation a bit. Put all parameters into one section,
explain common functionality only once, update the descriptions to
reflect current and future realities. Reviewed-by: Dimitri Fontaine
- pg_isready: Message improvement
Bruce Momjian pushed:
- pg_upgrade: document possible pg_hba.conf options. Previously,
pg_upgrade docs recommended using .pgpass if using MD5
authentication to avoid being prompted for a password. Turns out
pg_ctl never prompts for a password, so MD5 requires .pgpass ---
document that. Also recommend 'peer' for authentication too.
Backpatch back to 9.1.
Noah Misch pushed:
- Switch user ID to the object owner when populating a materialized
view. This makes superuser-issued REFRESH MATERIALIZED VIEW safe
regardless of the object's provenance. REINDEX is an earlier
example of this pattern. As a downside, functions called from
materialized views must tolerate running in a security-restricted
operation. CREATE MATERIALIZED VIEW need not change user ID.
Nonetheless, avoid creation of materialized views that will
invariably fail REFRESH by making it, too, start a
security-restricted operation. Back-patch to 9.3 so materialized
views have this from the beginning. Reviewed by Kevin Grittner.
- Make comments reflect that omission of SPI_gettypmod() is
- Document the OVER keyword as being unreserved. It became so in
commit 5893ffa79c03824f34ae3d37f211381fd1c17283. David Fetter,
extracted from a larger patch.
Stephen Frost pushed:
- During parallel pg_dump, free commands from master. The command
strings read by the child processes during parallel pg_dump, after
being read and handled, were not being free'd. This patch corrects
this relatively minor memory leak. Leak found by the Coverity
scanner. Back patch to 9.3 where parallel pg_dump was introduced.
- pg_receivexlog - Exit on failure to parse. In
streamutil.c:GetConnection(), upgrade failure to parse the
connection string to an exit(1) instead of simply returning NULL.
Most callers already immediately exited, but pg_receivexlog would
loop on this case, continually trying to re-parse the connection
string (which can't be changed after pg_receivexlog has started).
GetConnection() was already expected to exit(1) in some cases (eg:
failure to allocate memory or if unable to determine the
integer_datetimes flag), so this change shouldn't surprise anyone.
Began looking at this due to the Coverity scanner complaining that
we were leaking err_msg in this case- no longer an issue since we
just exit(1) immediately.
- Ensure 64bit arithmetic when calculating tapeSpace. In
tuplesort.c:inittapes(), we calculate tapeSpace by first figuring
out how many 'tapes' we can use (maxTapes) and then multiplying the
result by the tape buffer overhead for each. Unfortunately, when we
are on a system with an 8-byte long, we allow work_mem to be larger
than 2GB and that allows maxTapes to be large enough that the 32bit
arithmetic can overflow when multiplied against the buffer overhead.
When this overflow happens, we end up adding the overflow to the
amount of space available, causing the amount of memory allocated to
be larger than work_mem. Note that to reach this point, you have to
set work mem to at least 24GB and be sorting a set which is at least
that size. Given that a user who can set work_mem to 24GB could
also set it even higher, if they were looking to run the system out
of memory, this isn't considered a security issue. This overflow
risk was found by the Coverity scanner. Back-patch to all supported
branches, as this issue has existed since before 8.4.
- Be sure to close() file descriptor on error case. In
receivelog.c:writeTimeLineHistoryFile(), we were not properly
closing the open'd file descriptor in error cases. While this
wouldn't matter much if we were about to exit due to such an error,
that's not the case with pg_receivexlog as it can be a long-running
process and these errors are non-fatal. This resource leak was
found by the Coverity scanner. Back-patch to 9.3 where this issue
- Fix resource leak in initdb -X option. When creating the symlink
for the xlog directory, free the string which stores the link
location. Not really an issue but it doesn't hurt to be good about
this- prior cleanups have fixed similar issues. Leak found by the
Coverity scanner. Not back-patching as I don't see it being worth
the code churn.
- Check version before allocating PQExpBuffer. In
pg_dump.c:getEventTriggers, check what major version we are on
before calling createPQExpBuffer() to avoid leaking that bit of
memory. Leak discovered by the Coverity scanner. Back-patch to 9.3
where support for dumping event triggers was added.
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
KONDO Mitsumasa sent in two more revisions of a patch to improve the
checkpoint IO scheduler for stable transaction responses.
Hari Babu sent in two more revisions of a patch to compute Max LSN of
Pavel Stehule sent in another revision of a patch to improve
performance of calculations with NUMERIC.
KaiGai Kohei sent in two more revisions of a patch to implement
row-level access control.
MauMau sent a patch intended to silence what could potentially be many
redundant error messages when statistics file is inaccessible.
James Sewell sent in another revision of a patch to add an ldapoption
to disable chasing LDAP referrals.
Bernd Helmle and Dean Rasheed traded patches to add tab completion to
write operations on both foreign tables and writeable views.
Dimitri Fontaine sent in two more revisions of a patch to implement
Pavel Stehule sent in two more revisions of a patch to add a simple
date constructor using integers.
Sawada Masahiko sent in two more revisions of a patch to enable
fail-back without creating a new backup on the previously failed node.
Kevin Grittner sent in another revision of a patch to implement
REFRESH MATERIALIZED VIEWS CONCURRENTLY.
Josh Kupershmidt sent in a patch to implement tab completion for
ivan babrou sent in another revision of a patch to implement
millisecond precision for connect_timeout in libpq.
Fabien COELHO sent in another revision of a patch to implement
a progress indicator for pgbench.
Jeevan Chalke sent in a patch to fix a misbehavior in greedy regexes.
Dean Rasheed sent in a patch to let psql see any updateable relations,
whether they're domestic tables, foreign tables, or views.
Nicholas White sent in another revision of a patch to allow LEAD and
LAG window functions to ignore NULLs.
Gibheer sent in a patch to add a new GUC, replication_reserved_connections,
to reserve connection slots for replication in the same way
superuser_reserved_connections works for superusers.
Fabien COELHO sent in another revision of a patch to add a "big" test
to make check.
Michael Paquier sent in another revision of a patch to implement
Andres Freund sent in a patch to add an Assert to catcache.c.
Stas Kelvich sent in a patch to optimize storage and lookups in
Cedric Villemain sent in another revision of a patch to to document
some changes in VPATH builds.
Karol Trzcionka sent in another revision of a patch to implement
UPDATE ... RETURNING OLD/NEW.
Abhijit Menon-Sen sent in a patch to instrument an issue where an
INSERT wrecks plans on a table.
Peter Eisentraut sent in a patch to fix an issue where ECPG has two
slightly different prototypes.
Fabrízio de Royes Mello sent in another revision of a patch to add
support for "IF NOT EXISTS" to the remaining "CREATE" statements which
don't yet have it.
Greg Smith and Fabien COELHO traded patches to add a --throttle option
Noah Misch sent in another revision of a patch to add FILTER for
Sent via pgsql-announce mailing list ([email protected])
To make changes to your subscription: