== PostgreSQL Weekly News – May 15 2011 ==
== PostgreSQL Weekly News – May 15 2011 ==
PostgreSQL Conference China 2011 will be held in Guangzhou on July
New survey: What cloud hosting do you run PostgreSQL on?
NYCPUG will meet about “Comparing PostgreSQL and MySQL” on May 25 at
6:30PM at 50 W 23rd St, New York, NY, USA.
PDXPUG is hosting PgDay on Sunday, July 24, 2011, one day before
OSCON, in Portland, Oregon, USA. Details here:
== PostgreSQL Product News ==
DBD::Pg 2.18.1, the Perl driver for Postgres, released:
tail_n_mail 1.19.0, a Postgres log watcher program, released:
Bucardo 4.4.4, a Postgres multi-master replication system, released.
boxinfo 1.3.3, a server information gathering program, released:
MicroOLAP Database Designer 1.8.0-RC for PostgreSQL released.
PaGoDump and PaGoRestore 9.0.4 GUI utilities for Windows released.
psqlODBC 09.00.0300, an ODBC driver for PostgreSQL, released.
SQL/PSM, an implementation of the eponymous part of the SQL standard, released.
== PostgreSQL Jobs for May ==
== PostgreSQL Local ==
PGCon will be May 19-20, 2011 at the University of Ottawa, preceded by
two days of tutorials on May 17-18.
PG Session 2, on PostGIS, will be held on June 23rd in Paris. The CfP
CHAR(11), the PostgreSQL Conference on Clustering, High Availability
and Replication is now open for online registration and bookings.
July 11-12 2011 in Cambridge, UK.
PostgreSQL Confernece 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
pgbr will be in Sao Paulo, Brazil November 3-4, 2011.
== 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 firstname.lastname@example.org, German language
to email@example.com, Italian language to firstname.lastname@example.org. Spanish language
== Applied Patches ==
Bruce Momjian pushed:
– In pg_upgrade, add status message about superuser check.
– Update documentation to state there is three-value logic, not
three-value boolean logic. Backpatch to 9.0.X since we just got
another bug report about this today.
– Documentation cleanup for the possible values of the datatype
– In pg_upgrade, remove suggestion of setting pg_hba.conf to ‘trust’,
now that we report the libpq connection failure string. Per
suggestion from Robert Haas.
– For create/dropdb, only connect once to the server since we now have
a shared description table for pg_database comments. Also update
comments about database name selection.
– Mention “backslash” escape processing change in 9.1 release notes.
Tom Lane pushed:
– Remove “make check” target in src/test/isolation/Makefile. This
doesn’t work as expected because the isolationtester program
requires libpq to already be installed. While it works when you’ve
already installed libpq, having to already have done “make install”
defeats most of the point of a check with a temp installation. And
there are weird corner cases if the dynamic linker picks up an old
libpq.so from system library directories. Remove the target (or
more precisely, make it print a helpful message) so people don’t
expect the case to work.
– Be more wary in initdb’s creation of platform-dependent collations.
Discard any collation aliases that match the built-in pg_collation
entries (ie, “default”, “C”, “POSIX”). Such aliases would be
refused by a CREATE COLLATION command, but since initdb is injecting
them via a simple INSERT, it has to make the corresponding check for
itself. Per Martin Pitt’s report of funny behavior in a machine
that had a bogus “C.UTF-8″ locale. Also, use E” syntax for the
output of escape_quotes, as per its header comment.
– Adjust documentation with respect to “unknown” timezone setting.
The recent cleanup of GUC assign hooks got rid of the kludge of
using “unknown” as a magic value for timezone and log_timezone. But
I forgot to update the documentation to match, as noted by Martin
– Prevent datebsearch() from crashing on base == NULL && nel == 0.
Normally nel == 0 works okay because the initial value of “last”
will be less than “base”; but if “base” is zero then the calculation
wraps around and we have a very large (unsigned) value for “last”,
so that the loop can be entered and we get a SIGSEGV on a bogus
pointer. This is certainly the proximate cause of the recent
reports of Windows builds crashing on ‘infinity’::timestamp —
evidently, they’re either not setting an active timezonetktbl, or
setting an empty one. It’s not yet clear to me why it’s only
happening on Windows and not happening on any buildfarm member. But
even if that’s due to some bug elsewhere, it seems wise for this
function to not choke on the powerup values of
timezonetktbl/sztimezonetktbl. I also changed the copy of this code
in ecpglib, although I am not sure whether it’s exposed to a similar
hazard. Per report and stack trace from Richard Broersma.
– Be more explicit about the meaning of the change in
– Clean up parsing of CREATE TRIGGER’s argument list. Use ColLabel in
place of ColId, so that reserved words are accepted as if they were
not reserved. Also, remove BCONST and XCONST, which were never
documented as allowed. Allowing those exposes to users an
implementation detail, namely the format in which the lexer outputs
such constants, that seems unwise to expose. No documentation
change needed, since this just makes the code act more like you’d
expect from reading the CREATE TRIGGER man page. Per complaint from
Szymon Guz and subsequent discussion.
– Split PGC_S_DEFAULT into two values, for true boot_val vs computed
default. Failure to distinguish these cases is the real cause
behind the recent reports of Windows builds crashing on
‘infinity’::timestamp, which was directly due to failure to
establish a value of timezone_abbreviations in postmaster child
processes. The postmaster had the desired value, but
write_one_nondefault_variable() didn’t transmit it to backends. To
fix that, invent a new value PGC_S_DYNAMIC_DEFAULT, and be sure to
use that or PGC_S_ENV_VAR (as appropriate) for “default” settings
that are computed during initialization. (We need both because
there’s at least one variable that could receive a value from either
source.) This commit also fixes ProcessConfigFile’s failure to
restore the correct default value for certain GUC variables if they
are set in postgresql.conf and then removed/commented out of the
file. We have to recompute and reinstall the value for any GUC
variable that could have received a value from PGC_S_DYNAMIC_DEFAULT
or PGC_S_ENV_VAR sources, and there were a number of oversights.
(That whole thing is a crock that needs to be redesigned, but not
today.) However, I intentionally didn’t make it work “exactly right”
for the cases of timezone and log_timezone. The exactly right
behavior would involve running select_default_timezone, which we’d
have to do independently in each postgres process, causing the whole
database to become entirely unresponsive for as much as several
seconds. That didn’t seem like a good idea, especially since the
variable’s removal from postgresql.conf might be just an accidental
edit. Instead the behavior is to adopt the previously active
setting as if it were default. Note that this patch creates an ABI
break for extensions that use any of the PGC_S_XXX constants;
they’ll need to be recompiled.
– Fix write-past-buffer-end in ldapServiceLookup(). The code to
assemble ldap_get_values_len’s output into a single string wrote the
terminating null one byte past where it should. Fix that, and make
some other cosmetic adjustments to make the code a trifle more
readable and more in line with usual Postgres coding style. Also,
free the “result” string when done with it, to avoid a permanent
memory leak. Bug report and patch by Laurenz Albe, cosmetic
adjustments by me.
Peter Eisentraut pushed:
– Put options in more alphabetical order
– Add bug report line to pg_upgrade –help output
– Put pg_test_fsync –help and –version output in line with
conventions. Foremost, it should go to stdout.
– Add some punctuation
– Format pg_upgrade –version in line with conventions
Heikki Linnakangas pushed:
– Shut down WAL receiver if it’s still running at end of recovery. We
used to just check that it’s not running and PANIC if it was, but
that can rightfully happen if recovery stops at recovery target.
Alvaro Herrera pushed:
– Fix assorted typos
Robert Haas pushed:
– Kill stray “not”.
– More cleanup of FOREIGN TABLE permissions handling. This commit
fixes psql, pg_dump, and the information schema to be consistent
with the backend changes which I made as part of commit
be90032e0d1cf473bdd99aee94218218f59f29f1, and also includes a
related documentation tweak. Shigeru Hanada, with slight
Andrew Dunstan pushed:
– Build and run isolation test programs under MSVC.
– Add missing check function lookup.
– Fix bad macro call noticed by MSVC compiler.
== Rejected Patches (for now) ==
No one was disappointed this week 🙂
== Pending Patches ==
KaiGai Kohei sent in a patch to implement SECURITY LABELs on shared
Merlin Moncure sent in two more revisions of the hint bit cache patch.
Shigeru HANADA sent in a patch to fix some infelicities in foreign
Fujii Masao sent in a patch to fix an issue that arose in the attempt
to time-delay standbys.
Peter Geoghegan sent in a PoC patch demonstrating the named pipe
trick on Windows.
Robert Haas sent in another revision of the patch to make visibility
Yeb Havinga sent in a patch to allow domains over composite types.
Bruce Momjian sent in two revisions of a patch to decouple
pg_upgrade’s behavior from environment variables.
Peter Geoghegan sent in an updated version of the patch to detect and
alert on the death of the postmaster.
Tom Lane sent in a WIP patch to refactor the Param typmod in PL/pgsql.
Alexey Klyukin sent in a patch to fix a concurrency issue with ALTER
Alexey Klyukin sent in another revision of the patch to make a
validator for configuration files.
Jaime Casanova sent in a patch to improve the interaction of DOMAINs
Comments are closed.