== PostgreSQL Weekly News - March 24 2013 ==
The CfPs for Char(13) and PGday UK, July 11 and 12, 2013,
respectively, are out and close April 19, 2013. For Char(13), write
speakers AT char13 DOT info; for PGday UK, speakers AT
postgresqlusergroup DOT org DOT uk.
== PostgreSQL Product News ==
MJSQLView Version 3.44, a Java-based UI which supports PostgreSQL,
== PostgreSQL Jobs for March ==
== PostgreSQL Local ==
PostgreSQL Session will be held on March 28th, 2013 in Paris,
France. The Call for Papers is open.
PGCon 2013 will be held May 23-24 2013, in Ottawa at the University of
The 6th annual "Prague PostgreSQL Developers Day" conference,
organized by CSPUG (Czech and Slovak PostgreSQL Users Group), will be
held on May 30, 2013 at Faculty of Mathematics and Physics, Charles
University (Malostranske namesti 25, Prague). The CfP is open until
April 14, 2013 . More information in Czech is at
PG Day France is the major French-speaking PostgreSQL community event.
It will be held June 13, 2013 in Nantes, France.
PostgreSQL Brazil will be held August 15-17, 2013 in Porto Velho, RO,
Save The Date!
Postgres Open 2013 will be in Chicago, IL, USA, September 16-18.
Early Bird registration:
== 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 ==
Simon Riggs pushed:
- Remove PageSetTLI and rename pd_tli to pd_checksum. Remove use of
PageSetTLI() from all page manipulation functions and adjust README
to indicate change in the way we make changes to pages. Repurpose
those bytes into the pd_checksum field and explain how that works in
comments about page header. Refactoring ahead of actual feature
patch which would make use of the checksum field, arriving later.
Jeff Davis, with comments and doc changes by Simon Riggs Direction
suggested by Robert Haas; many others providing review comments.
- Add pageinspect--1.1.sql for checksum changes
- Add pageinspect--1.0--1.sql for checksum changes
- Add reliability docs about storage/memory corruptions. Add section
to the Reliability section about what is and is not protected for
various file types. Further edits welcome. Designed to allow 1-2
line change when/if checksums are committed. Inspired by docs
written by Jeff Davis, though completely different from his patch.
- Correction that 2pc state files use CRC-32. Jeff Davis
- Clarify assumption of filesystem metadata integrity. Jeff Davis
- Change commit_delay to be SUSET for 9.3+. Prior to 9.3 the
commit_delay affected only the current user, whereas now only the
group leader waits while holding the WALWriteLock. Deliberate or
accidental settings to a poor value could seriously degrade
performance for all users. Privileges may be delegated by SECURITY
DEFINER functions for anyone that needs per-user settings in real
situations. Request for change from Peter Geoghegan
- Allow I/O reliability checks using 16-bit checksums. Checksums are
set immediately prior to flush out of shared buffers and checked
when pages are read in again. Hint bit setting will require full
page write when block is dirtied, which causes various
infrastructure changes. Extensive comments, docs and README.
WARNING message thrown if checksum fails on non-all zeroes page;
ERROR thrown but can be disabled with ignore_checksum_failure = on.
Feature enabled by an initdb option, since transition from option
off to option on is long and complex and has not yet been
implemented. Default is not to use checksums. Checksum used is WAL
CRC-32 truncated to 16-bits. Simon Riggs, Jeff Davis, Greg Smith
Wide input and assistance from many community members. Thank you.
- Add new README file for pages/checksums
Tom Lane pushed:
- Improve documentation of EXTRACT(WEEK). The docs showed that
early-January dates can be considered part of the previous year for
week-counting purposes, but failed to say explicitly that
late-December dates can also be considered part of the next year.
Fix that, and add a cross-reference to the "isoyear" field. Per bug
#7967 from Pawel Kobylak.
- Bump up timeout delays some more in timeouts isolation test. The
buildfarm members using -DCLOBBER_CACHE_ALWAYS still don't like this
test. Some experimentation shows that on my machine,
isolationtester's query to check for "waiting" state takes 2 to 2.5
seconds to bind+execute under -DCLOBBER_CACHE_ALWAYS. Set the
timeouts to 5 seconds to leave some headroom for possibly-slower
buildfarm critters. Really we ought to fix the "waiting" query,
which is not only horridly slow but outright wrong in detail; and
then maybe we can back off these timeouts. But right now I'm just
trying to get the buildfarm green again.
- Redo postgres_fdw's planner code so it can handle parameterized
paths. I wasn't going to ship this without having at least some
example of how to do that. This version isn't terribly bright; in
particular it won't consider any combinations of multiple join
clauses. Given the cost of executing a remote EXPLAIN, I'm not sure
we want to be very aggressive about doing that, anyway. In support
of this, refactor generate_implied_equalities_for_indexcol so that
it can be used to extract equivalence clauses that aren't
necessarily tied to an index.
- Avoid retrieving dummy NULL columns in postgres_fdw. This should
provide some marginal overall savings, since it surely takes many
more cycles for the remote server to deal with the NULL columns than
it takes for postgres_fdw not to emit them. But really the reason
is to keep the emitted queries from looking quite so silly ...
- Update commit_delay documentation. Commit
13fe298ca06f5390df5edf073cf401f9f0b67458 changed this GUC to be
PGC_SUSET, but neglected to update the documentation to match.
While at it, edit and rearrange the text a little for clarity.
- Suppress uninitialized-variable warning in new checksum code. Some
compilers understand that this coding is safe, and some don't.
- Fix contrib/dblink to handle inconsistent DateStyle/IntervalStyle
safely. If the remote database's settings of these GUCs are
different from ours, ambiguous datetime values may be read
incorrectly. To fix, temporarily adopt the remote server's settings
while we ingest a query result. This is not a complete fix, since
it doesn't do anything about ambiguous values in commands sent to
the remote server; but there seems little we can do about that end
of it given dblink's entirely textual API for transmitted commands.
Back-patch to 9.2. The hazard exists in all versions, but this
patch would need more work to apply before 9.2. Given the lack of
field complaints about this issue, it doesn't seem worth the effort
at present. Daniel Farina and Tom Lane
- Document cross-version compatibility issues for
contrib/postgres_fdw. One of the use-cases for postgres_fdw is
extracting data from older PG servers, so cross-version
compatibility is important. Document what we can do here, and
further annotate some of the coding choices that create
compatibility constraints. In passing, remove one unnecessary
incompatibility with old servers, namely assuming that we didn't
need to quote the timezone name 'UTC'.
- Don't put before in items. Doing
that results in a broken index entry in PDF output. We had only a
few like that, which is probably why nobody noticed before.
Standardize on putting the first. Josh Kupershmidt
- Update time zone abbreviation lists for changes missed since 2006.
Most (all?) of Russia has moved to what's effectively year-round
daylight savings time, so that the "standard" zone names now mean an
hour later than they used to. Update that, notably changing MSK as
per recent complaint from Sergey Konoplev, but also CHOT, GET, IRKT,
KGT, KRAT, MAGT, NOVT, OMST, VLAT, YAKT, YEKT. The corresponding
DST abbreviations are presumably now obsolete, but I left them in
place with their old definitions, just to reduce any possible
breakage from this change. Also add VOLT (Europe/Volgograd), which
for some reason we never had before, as well as MIST
(Antarctica/Macquarie), and fix obsolete definitions of MAWT, TKT,
- Semi-automatically detect changes in timezone abbreviations. Add an
option to zic.c to dump out all non-obsolete timezone abbreviations
defined in the Olson database. Comparing this list to its previous
state will clue us in when something happens that we may need to
account for in the tznames/ time zone abbreviation lists. The
README file's previous exhortation to "just grep for differences"
was completely useless advice, in my now-considerable experience;
but maybe this will be a bit more useful. As a starting point I
built the same list from the tzdata files as they existed in 2006,
which is committed here as known_abbrevs.txt. Comparison indeed
turned up quite a few changes we had neglected to account for, which
I will commit separately.
- Fix some unportable constructs in parallel pg_dump code. Didn't
compile on semi-obsolete gcc, and probably not on not-gcc-at-all
Kevin Grittner pushed:
- Use ORDER BY on matview definitions were needed for stable plans.
Per report from Hadi Moshayedi of matview regression test failure
with optimization of aggregates. A few ORDER BY clauses improve
code coverage for matviews while solving that problem.
- Eliminate trivial whitespace inconsistency in docs sample code.
- Fix problems with incomplete attempt to prohibit OIDS with MVs.
Problem with assertion failure in restoring from pg_dump output
reported by Joachim Wieland. Review and suggestions by Tom Lane and
Alvaro Herrera pushed:
- Allow extracting machine-readable object identity Introduce
pg_identify_object(oid,oid,int4), which is similar in spirit to
pg_describe_object but instead produces a row of machine-readable
information to uniquely identify the given object, without resorting
to OIDs or other internal representation. This is intended to be
used in the event trigger implementation, to report objects being
operated on; but it has usefulness of its own. Catalog version
bumped because of the new function.
Heikki Linnakangas pushed:
- Fix "element <@ range" cost estimation. The statistics-based cost
estimation patch for range types broke that, by incorrectly assuming
that the left operand of all range oeprators is a range. That lead
to a "type x is not a range type" error. Because it took so long for
anyone to notice, add a regression test for that case. We still
don't do proper statistics-based cost estimation for that, so you
just get a default constant estimate. We should look into
implementing that, but this patch at least fixes the regression.
Spotted by Tom Lane, when testing query from Josh Berkus.
Andrew Dunstan pushed:
- Silence compiler warnings about unused values. Per gripe from Kevin
- Avoid renaming data directory during MSVC upgrade testing. This
appears to cause some intermittent file system problems on Windows
8. Instead, set up the old data directory in its intended final
location to start with.
- Add parallel pg_dump option. New infrastructure is added which
creates a set number of workers (threads on Windows, forked
processes on Unix). Jobs are then handed out to these workers by the
master process as needed. pg_restore is adjusted to use this new
infrastructure in place of the old setup which created a new worker
for each step on the fly. Parallel dumps acquire a snapshot clone
in order to stay consistent, if available. The parallel option is
selected by the -j / --jobs command line parameter of pg_dump.
Joachim Wieland, lightly editorialized by Andrew Dunstan.
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Robins Tharakan sent in three more revisions of a patch to add
regression tests for SCHEMA-related commands.
Pavel Stehule and Hadi Moshayedi traded patches to optimize avg() and
friends on NUMERIC.
Hadi Moshayedi sent in a patch to add infrastructure which helps the
above optimization, namely an aggtransspace parameter used in creating
aggregate functions which approximates the size of the aggregate
function's internal transition (a.k.a. state) data.
Steve Singer and Bruce Momjian traded patches to fix an infelicity in
the handling of wrong PGSERVICE entries.
Nicholas White sent in four more revisions of a patch to add the
ability to ignore NULLs in windowing functions per the SQL standard.
Michael Paquier sent in three revisions of a patch to ensure that
pg_dump only dumps valid indexes.
Zoltan Boszormenyi sent in another revision of a patch to fix an
infelicity in lock_timeout on Windows.
Ants Aasma sent in three revisions of a patch to implement slice-by-8
checksums on x86_64 CPUs.
KaiGai Kohei sent in another revision of a patch to implement
OAT_POST_ALTER object access hooks.
Robins Tharakan sent in a patch to increase the regression tests'
coverage of the ROLE code.
KaiGai Kohei sent in another revision of a patch to implement
row-level access control.
Daniele Varazzo sent in some patches to fix strings for error messages
in git master.
Alvaro Herrera sent in another revision of the dropped_objects patch
vs. event triggers.
Brendan Jurd sent in a patch to disallow 0-dimensional arrays.
Andrew Dunstan sent in another revision of a patch to fix some hstore
Alvaro Herrera sent in another revision of a patch to ensure that
autovacuum sets priority on vacuums intended to prevent XID
Michael Paquier sent in two revisions of a patch to ensure that custom
bgworkers receive SIGHUP if the postmaster is notified.
Alexander Korotkov sent in another revision of a patch to make certain
(DFA) regexep searches indexable.
Kevin Grittner sent in a patch intended to correct certain situations
where pg_dump produced different results on subsequent runs from the
first after a reload.
Adriano Lange sent in a patch to add a new optimizer, Sampling and
Dynamic Programming (SDP), to PostgreSQL.
Michael Paquier sent in another revision of a patch to implement
Xi Wang sent in a patch to avoid a buffer underflow in errfinish().
Michael Paquier sent in another revision of a patch to overhaul
Sent via pgsql-announce mailing list ([email protected])
To make changes to your subscription: