Sunday, July 20, 2008

[ANNOUNCE] == PostgreSQL Weekly News - July 20 2008 ==

== PostgreSQL Weekly News - July 20 2008 ==

New Survey: How do you usually install or update PostgreSQL?
http://www.posgresql.org/community

Peter Eisentraut of the Core Team today took a PostgreSQL development
job at Sun Microsystems. At the same time, Josh Berkus left Sun, but
he hasn't said yet where he's going.

== PostgreSQL Product News ==

check_postgres 2.0.1 released.
http://bucardo.org/check_postgres/

Code Factory 8.7 for Windows released.
http://www.sqlmaestro.com/products/postgresql/codefactory/

Markus Wanner (ne Schiltknecht) has released a patch vs. CVS HEAD for Postgres-R.
http://www.postgres-r.org/downloads/

2ndQuandrant PostgreSQL Administration using Navicat training released.
http://www.2ndQuadrant.com/training.htm

== PostgreSQL Jobs for July ==

http://archives.postgresql.org/pgsql-jobs/2008-07/threads.php

== PostgreSQL Local ==

Sponsor the European PGDay!
http://www.pgday.org/en/sponsors/campaign

The Call for Papers for European PGDay has begun.
http://www.pgday.org/en/call4papers

TorontoPUG meeting will be on July 28.
http://pugs.postgresql.org/torontopug

pgDay San Francisco will be August 5. Schedule:
http://pugs.postgresql.org/node/447
Register here:
http://www.linuxworldexpo.com/live/12/ehall//SN460564

PGCon Brazil 2008 will be on September 26-27 at Unicamp in Campinas.
http://pgcon.postgresql.org.br/index.en.html

PGDay.(IT|EU) 2008 will be October 17 and 18 in Prato.
http://www.pgday.org/it/

== PostgreSQL in the News ==

Planet PostgreSQL: http://www.planetpostgresql.org/

General Bits, Archives and occasional new articles:
http://www.varlena.com/GeneralBits/

PostgreSQL Weekly News is brought to you this week by David Fetter
and Josh Berkus.

Submit news and announcements by Sunday at 3:00pm Pacific time.
Please send English language ones to david@fetter.org, German language
to pwn@pgug.de, Italian language to pwn@itpug.org.

== Applied Patches ==

Tom Lane committed:

- pgsql/src/include/storage/bufpage.h, clean up buildfarm failures
arising from the seemingly straightforward page macros patch :-(.
Results from both baiji and mastodon imply that MSVC fails to
perceive offsetof(PageHeaderData, pd_linp[0]) as a constant
expression in some contexts where offsetof(PageHeaderData, pd_linp)
works fine. Sloth, thy name is Macro.

- Support "variadic" functions, which can accept a variable number of
arguments so long as all the trailing arguments are of the same
(non-array) type. The function receives them as a single array
argument (which is why they have to all be the same type). It might
be useful to extend this facility to aggregates, but this patch
doesn't do that. This patch imposes a noticeable slowdown on
function lookup --- a follow-on patch will fix that by adding a
redundant column to pg_proc. Pavel Stehule

- Add a "provariadic" column to pg_proc to eliminate the remarkably
expensive need to deconstruct proargmodes for each pg_proc entry
inspected by FuncnameGetCandidates(). Fixes function lookup
performance regression caused by yesterday's variadic-functions
patch. In passing, make pg_proc.probin be NULL, rather than a dummy
value '-', in cases where it is not actually used for the particular
type of function. This should buy back some of the space cost of
the extra column.

- In pgsql/src/backend/commands/tablecmds.c, fix previous patch so
that it actually works --- consider TRUNCATE foo, public.foo.

- In pgsql/src/backend/nodes/outfuncs.c, add dump support for SortBy
nodes. Needed this while debugging a reported problem with
DISTINCT, so might as well commit it.

- Implement SQL-spec RETURNS TABLE syntax for functions. (Unlike the
original submission, this patch treats TABLE output parameters as
being entirely equivalent to OUT parameters -- tgl) Pavel Stehule.

- In pgsql/src/bin/psql/describe.c, suppress compiler warning, and not
incidentally make the code more robust. The previous coding was
quite risky because it was testing conditions different from 'is the
array really allocated?'.

- In pgsql/src/backend/storage/ipc/sinvaladt.c, fix a race condition
that I introduced into sinvaladt.c during the recent rewrite. When
called from SIInsertDataEntries, SICleanupQueue releases the write
lock if it has to issue a kill() to signal some laggard backend.
That still seems like a good idea --- but it's possible that by the
time we get the lock back, there are no longer enough free message
slots to satisfy SIInsertDataEntries' requirement. Must recheck,
and repeat the whole SICleanupQueue process if not. Noted while
reading code.

- Provide a function hook to let plug-ins get control around
ExecutorRun. ITAGAKI Takahiro

- Adjust things so that the query_string of a cached plan and the
sourceText of a portal are never NULL, but reliably provide the
source text of the query. It turns out that there was only one
place that was really taking a short-cut, which was the 'EXECUTE'
utility statement. That doesn't seem like a sufficiently critical
performance hotspot to justify not offering a guarantee of validity
of the portal source text. Fix it to copy the source text over from
the cached plan. Add Asserts in the places that set up cached plans
and portals to reject null source strings, and simplify a bunch of
places that formerly needed to guard against nulls. There may be a
few places that cons up statements for execution without having any
source text at all; I found one such in ConvertTriggerToFK(). It
seems sufficient to inject a phony source string in such a case, for
instance ProcessUtility((Node *) atstmt, "(generated ALTER TABLE ADD
FOREIGN KEY command)", NULL, false, None_Receiver, NULL); We should
take a second look at the usage of debug_query_string, particularly
the recently added current_query() SQL function. ITAGAKI Takahiro
and Tom Lane

- Avoid substituting NAMEDATALEN, FLOAT4PASSBYVAL, and FLOAT8PASSBYVAL
into the postgres.bki file during build, because we want that file
to be entirely platform- and configuration-independent; else it
can't safely be put into /usr/share on multiarch machines. We can
do the substitution during initdb, instead. FLOAT4PASSBYVAL and
FLOAT8PASSBYVAL are new breakage as of 8.4, while the NAMEDATALEN
hazard has been there all along but I guess no one tripped over it.
Noticed while trying to build "universal" OS X binaries.

- Add a pg_dump option --lock-wait-timeout to allow failing the dump
if unable to acquire shared table locks within a specified amount of
time. David Gould.

- Code review for array_fill patch: fix inadequate check for array
size overflow and bogus documentation (dimension arrays are int[]
not anyarray). Also the errhint() messages seem to be really
errdetail(), since there is nothing heuristic about them. Some
other trivial cosmetic improvements.

Bruce Momjian committed:

- Mark TODO as done, per Simon Riggs: "Fix server restart problem when
the server was shutdown during a PITR backup."

- Add URL for TODO: "Consider allowing control of upper/lower case
folding of unquoted identifiers."

- Mark TODO as done: "Add temporal versions of generate_series()."

- In psql, rename trans_* variables to translate_* for clarity.

- In pgsql/src/bin/psql/describe.c, add column storage type to psql
\d+ display. Gregory Stark.

- Add to TODO: "Improve ability to modify views via ALTER TABLE."

- In pgsql/src/bin/psql/describe.c, add comment about literal strings
in our syntax not being translated in psql.

- In pgsql/doc/src/sgml/charset.sgml, clarify that locale names on
Windows are more verbose. Report from Martin Saschek

- In pgsql/src/bin/psql/describe.c, have psql \d show the value of
sequence columns. Dickson S. Guedes.

- Mark TODO as done: "Have psql show current values for a sequence."

- Add TODO: "Consider decreasing the I/O caused by updating tuple hint
bits."

- In pgsql/src/bin/psql/describe.c, addendum: psql sequence value
display patch was originally written by Euler Taveira de Oliveira.

- Add to TODO: "Reduce PITR WAL file size by removing full page writes
and by removing trailing bytes to improve compression."

- In pgsql/doc/src/sgml/charset.sgml, add Swedish_Sweden.1252 Windows
locale example to docs.

- In pgsql/doc/src/sgml/func.sgml, fix alignment of SGML array docs.

- Add array_fill() to create arrays initialized with a value. Pavel
Stehule.

- Add to TODO: "Add external tool to auto-tune some postgresql.conf
parameters."

- In pgsql/src/backend/commands/tablecmds.c, allow TRUNCATE foo, foo
to succeed, per report from Nikhils.

- Add URL for TODO: "Implement SQL:2003 window functions."

- Add to TODO: "Reduce locking requirements for creating a trigger."

- Add URL for TODO: "Implement SQL:2003 window functions."

- In psql, run .psqlrc _after_ printing warnings and banner.

- Properly document archive/restore command examples on Windows.
ITAGAKI Takahiro

- In pgsql/src/bin/psql/startup.c, revert patch so .psqlrc can
suppress startup banner. Run .psqlrc _after_ printing warnings and
banner.

Alvaro Herrera committed:

- In pgsql/src/backend/postmaster/autovacuum.c, avoid crashing when a
table is deleted while we're on the process of checking it. Per
report from Tom Lane based on buildfarm evidence.

- Add MSVC++ debug libraries to .cvsignore.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

ITAGAKI Takahiro sent in another revision of his patch executor_hook
for pg_stat_statements patch.

Xiao Meng sent in three revisions of his patch to improve the
performance of hash indexes.

David Wheeler sent in another revision of his case-insensitive text
patch.

Sushant Sinha sent in three patches to update the tsearch2
documentation and add regression testing for the case when cover size
is larger than MaxWords.

Simon Riggs sent in two revisions of a patch designed to report when
we're doing an anti-wraparound VACUUM.

Jan Urbanski sent in a WIP patch to create an oprrest function for
tsvector @@ tsquery and tsquery @@ tsvector.

Simon Riggs sent in another revision of his patch to add pg_dump
options --schema-pre-load and --schema-post-load.


---------------------------(end of broadcast)---------------------------
-To unsubscribe from this list, send an email to:

pgsql-announce-unsubscribe@postgresql.org

No comments: