== PostgreSQL Weekly News - May 20 2007 ==
PgCon is happening in Ottawa this week.
== PostgreSQL Product News ==
PGCluster 1.7.0rc7 released.
EMS SQL Manager for PostgreSQL 7.0 released.
== PostgreSQL Jobs for May ==
== PostgreSQL Local ==
Get on the Road to PgDay!
== PostgreSQL in the News ==
Planet PostgreSQL: http://www.planetpostgresql.org/
General Bits, Archives and occasional new articles:
PostgreSQL Weekly News is brought to you this week by David Fetter
and Devrim GUNDUZ
To get your submission into the upcoming issue, make sure it arrives
at david(at)fetter(dot)org or in German at pwn(at)pgug(dot)de by Sunday at 3:00pm
== Applied Patches ==
Peter Eisentraut committed:
- In pgsql/doc/src/sgml/Makefile, mark some intermediate targets as
.PRECIOUS, to replace the recently removed .SECONDARY target. This
makes experimentation with the PDF builds easier.
- Fix inappropriate comments in pgsql/doc/src/sgml/Makefile.
Michael Meskes committed:
- Tackling Vista problem - another try.
- Removed mktime() call to hopefully get rid of some compatibility
Neil Conway committed:
- Tweaks for SGML markup.
- Fix a bunch of bad grammar in the docs: "<link>, which see for more
information" is un-good English.
- Various fixes for the SGML docs. Consistently use spaces
before/after parentheses in syntax descriptions. Consistently use
the present tense when describing the basic purpose of each "DROP"
command. Add a few more hyperlinks.
- Make a few marginal improvements to the documentation for the
autovacuum launcher daemon.
- Add a note to the documentation to clarify that even when
"autovacuum = off", the system may still periodically start
autovacuum processes to prevent XID wraparound. Patch from David
Fetter, with editorializing.
Andrew Dunstan committed:
- Remove directory qualification in <ossp/uuid.h> because it's not
always installed in ossp. Workaround for when it is: include the
ossp directory using --with-includes.
- In pgsql/src/tools/msvc/Solution.pm, fix perl thinko.
- Use configured pgport in MSVC config file.
Tom Lane committed:
- To support external compression of archived WAL data, add a flag bit
to WAL records that shows whether it is safe to remove full-page
images (ie, whether or not an on-line backup was in progress when
the WAL entry was made). Also make provision for an XLOG_NOOP
record type that can be used to fill in the extra space when
decompressing the data for restore. This is the portion of Koichi
Suzuki's "full page writes" patch that has to go into the core
database. The remainder of that work is two external compression
and decompression programs, which for the time being will undergo
separate development on pgfoundry. Per discussion. Also, twiddle
the handling of BTREE_SPLIT records to ensure it'll be possible to
compress them (the previous coding caused essential info to be
omitted). The other commonly-used record types seem OK already,
with the possible exception of GIN and GIST WAL records, which I
don't understand well enough to opine on.
- Remove redundant logging of send failures when SSL is in use. While
pqcomm.c had been taught not to do that ages ago, the SSL code was
helpfully bleating anyway. Resolves some recent reports such as bug
#3266; however the underlying cause of the related bug #2829 is
still unclear. Backpatched through 7.4.
- Temporary fix for the problem that pg_stat_activity,
inet_client_addr(), and inet_server_addr() fail if the client
connected over a "scoped" IPv6 address. In this case getnameinfo()
will return a string ending with a poorly-standardized "%something"
zone specifier, which these functions try to feed to network_in(),
which won't take it. So that we don't lose functionality
altogether, suppress the zone specifier before giving the string to
network_in(). Per report from Brian Hirt. TODO: probably someday
the inet type should support scoped IPv6 addresses, and then this
patch should be reverted. Backpatch to 8.2 ... is it worth going
- Fix parameter recalculation for Limit nodes: during a ReScan call we
must recompute the limit/offset immediately, so that the updated
values are available when the child's ReScan function is invoked.
Add a regression test for this, too. Bug is new in HEAD (due to the
bounded-sorting patch) so no need for back-patch. I did not do
anything about merging this signaling with chgParam processing, but
if we were to do that we'd still need to compute the updated values
at this point rather than during the first ProcNode call. Per
observation and test case from Greg Stark, though I didn't use his
- Get rid of the pg_shdepend entry for a TOAST table; it's unnecessary
since there's an indirect dependency on the owner via the parent
table. We were already handling indexes that way, but not toast
tables for some reason. Saves a little catalog space and cuts down
the verbosity of checkSharedDependencies reports.
- Fix up grammar and translatability of recent checkSharedDependencies
patch; also make the code logic a bit more self-consistent.
- Prevent RevalidateCachedPlan from making any permanent change in
ActiveSnapshot. Having it affect ActiveSnapshot only in the unusual
case of needing to replan seems a bad idea, and there's also the
problem that the created snap might be in a relatively short-lived
context, as noted by Jan Wieck. Also, there's no need to force a
new snap at all unless we are called with no snap currently set,
which is an unusual case in itself.
Alvaro Herrera committed:
- Fix dumb compile error in the last patch.
- Have CLUSTER advance the table's relfrozenxid. The new frozen point
is the FreezeXid introduced in a recent commit, so there isn't any
data loss in this approach. Doing it causes ALTER TABLE (or rather,
the forms of it that cause a full table rewrite) to be affected as
well. In this case, the frozen point is RecentXmin, because after
the rewrite all the tuples are relabeled with the rewriting
transaction's Xid. TOAST tables are fixed automatically as well, as
fallout of the way they were already being handled in the respective
code paths. With this patch, there is no longer need to VACUUM
tables for Xid wraparound purposes that have been cleaned up via
TRUNCATE or CLUSTER.
- Move the tuple freezing point in CLUSTER to a point further back in
the past, to avoid losing useful Xid information in not-so-old
tuples. This makes CLUSTER behave the same as VACUUM as far a
tuple-freezing behavior goes (though CLUSTER does not yet advance
the table's relfrozenxid). While at it, move the actual freezing
operation in rewriteheap.c to a more appropriate place, and document
it thoroughly. This part of the patch from Tom Lane.
- Have TRUNCATE advance the affected table's relfrozenxid to
RecentXmin, to avoid a later needless VACUUM for Xid-wraparound
purposes. We can do this since the table is known to be left empty,
so no Xid remains on it.
- Heikki Linnakangas's patch which makes the rewriteheap code freeze
old tuples. This is safe because it is only applied to live tuples
older than a recent Xmin, not to tuples that may be part of an
update chain. Those still keep their original markings. This patch
makes it possible for CLUSTER to advance relfrozenxid, thus avoiding
the need of vacuuming the table for Xid wraparound purposes. That
will be patched separately.
- Avoid emitting empty role names in the GRANTED BY clause of GRANT
ROLE when the grantor has been dropped. This is a workaround for
the fact that we don't track the grantor as a shared dependency.
- Report all dependent objects to the server log when a shared object
is dropped, and only a truncated log of the objects in the current
database to the client. Also, instead of reporting object counts
for all databases on which the user might own objects, report only
as many as fit in the predefined line count. This is to avoid
flooding the client when the user owns too many objects, which could
cause problems. Per report from Ed L. on April 4th and subsequent
Bruce Momjian committed:
- Mark TODO as done: "Fix problem with excessive logging during SSL
- Add to TODO: "Support scoped IPv6 addresses."
- Add URL for TODO: "Implement the SQL standard mechanism whereby
REVOKE ROLE revokes only the privilege granted by the invoking role,
and not those granted by other roles."
- Per Alvaro Herrera, add to TODO: "Implement the SQL standard
mechanism whereby REVOKE ROLE revokes only the privilege granted by
the invoking role, and not those granted by other roles."
- Add to TODO: "Fix problem with excessive logging during SSL
- Add CVS comment for recent commit "Moved page-level functions from
pgstattuple to contrib/pageinspect."
- Simon and Heikki's patch which adds database page inspection
- Gregory Stark's patch which updates comments for PG_DETOAST_PACKED
and VARDATA_ANY on a structures that require alignment and adds a
paragraph to the "User-Defined Types" chapter on using these macros
since it seems like they're a hit.
- Add URLs for TODO: "Add support for SQL-standard GENERATED/IDENTITY
- Update instructions on creating TODO entry.
== Rejected Patches (for now) ==
No one was disappointed this week :-)
== Pending Patches ==
Gregory Stark sent in another revision of his concurrent psql patch,
pgsql-announce by date
|Next:||From: David Fetter||Date: 2007-05-28 18:55:32|
|Subject: == PostgreSQL Weekly News - May 28 2007 ==|
|Previous:||From: Dan Langille||Date: 2007-05-14 14:00:54|
|Subject: PGCon - next week!|