== PostgreSQL Weekly News - July 20 2008 == - Mailing list pgsql-announce
From | David Fetter |
---|---|
Subject | == PostgreSQL Weekly News - July 20 2008 == |
Date | |
Msg-id | 20080721051004.GA21917@fetter.org Whole thread Raw |
List | pgsql-announce |
== 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.
pgsql-announce by date: