== PostgreSQL Weekly News - April 08 2007 ==
Now that feature freeze has frozen, new revisions are getting
discussed in a lively fashion.
Kudos to Tom Dunstan for the new enum types.
== PostgreSQL Product News ==
Another PostgreSQL Diff Tool 1.0.0_beta20 released.
http://pgfoundry.org/projects/apgdiff/
GNUmed 0.2.5 released
http://wiki.gnumed.de
LedgerSMB 1.2.0 released.
http://www.ledgersmb.org/
pgAdmin packages for Solaris available
http://www.pgadmin.org/download/solaris.php
== PostgreSQL Local ==
Get on the Road to PgDay!
http://www.pgday.it/en/node/95
Registration is open for PGCon 2007
http://www.pgcon.org/2007/registration.php
== PostgreSQL in the News ==
Josh Berkus, David Fetter, Euler Taveira de Oliveira, Fernando Ike de
Olivera, and Fabio Telles will be speaking at FISL 8.0 in Porto
Alegre, RS, Brazil April 12-14
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
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
Pacific Time.
== Applied Patches ==
Neil Conway committed:
- Fix a few typos in the docs.
Tatsuo Ishii committed:
- Add -F option to set fillfactor for tellers, accounts and branches.
Patch contributed by Pavan Deolasee. Along with Japanese doc
modification by Tatsuo Ishii.
- Greg Smith's patch which adds an -l option to add timestamp to
pgbench. Japanese doc updates by Tasuo Ishii.
- ITAGAKI Takahiro's patch which enhances pgbench in various ways.
Andrew Dunstan committed:
- In pgsql/src/tools/msvc/vcregress.bat, only run contrib check if
there is a Makefile.
- In pgsql/src/tools/msvc/vcregress.bat, improve test headings.
- In pgsql/src/tools/msvc/Install.pm, don't install files for xml2
when building without libxml.
- Check length of enum literals on definition and input to make sure
they will fit in a name field and not cause syscache errors.
Bruce Momjian committed:
- Mark TODO as done: "-Make CLUSTER preserve recently-dead tuples per
MVCC requirements."
- Mark TODO as done: "Add more logical syntax CLUSTER table USING
index"
- Holger Schurig's patch to add support for the "CLUSTER table USING
index" syntax, which is more logical than the legacy version.
- Greg Smith's patch which adds the usage count statistics to the
information available in contrib/pgbuffercache.
- Slight wording improvement in REVOKE documentation.
- Remove example of SQL-standard syntax for GRANT/REVOKE --- was
causing confusion.
- Mark Fuhr's doc patch correcting the spelling of, "symmetric."
Backpatched to 8.2.
- Mark TODO as done: "Allow use of indexes to search for NULLs."
- Mark TODO as done: "Support a smaller header for short
variable-length fields."
- Fix some now-obsolete comments about the space used by various data
types.
- Update XML error message text for missing libxml; update regression
output to match.
- Add URL for TODO: "Reduce WAL traffic so only modified values are
written rather than entire rows."
- Improve documentation/warning when --with-libxml is not used in the
installation.
- Re-add FAQ item 3.7 lost in previous commit.
- Marko Kreen's patch which removes last remaining casts inside struct
definitions for PL/PythonU. Such usage is bad practice, as it hides
problems from compiler. The cast is popular practice in some
circles to define functions as foo(MyObj *) instead of foo(PyObject
*) thus avoiding a local variable inside functions and make direct
calling easier. As PL/PythonU does not use this style, the casts
were unnecessary from the start.
- Gregory Stark's patch which documents how to identify an invalid
index after a failed CREATE INDEX CONCURRENTLY.
- Mark TODO as done: "Allow PL/PythonU to return boolean rather than
1/0.
- Marko Kreen's patch to allow PL/pythonU >= version 2.3 to return
boolean, rather than 1/0.
- Marko Kreen's patch to allow PL/PythonU to compile on Python 2.5.
Change needed because of API changes in Python.
- In pgsql/src/port/thread.c, update comment for new thread_test
location.
- Update TODO: "Add idle_in_transaction_timeout GUC so locks are not
held for long periods of time."
- Add to TODO: "Allow all data types to cast to and from TEXT."
- Add to TODO: "Add idle_timeout GUC so locks are not held for log
periods of time."
- Add URL for TODO: "Allow UPDATE tab SET ROW (col, ...) = (SELECT...)."
- Add URL for TODO: "Allow commenting of variables in postgresql.conf
to restore them to defaults."
- Add URL for TODO: "Allow a warm standby system to also allow
read-only."
- Add URL for TODO: "Improve speed with indexes"
- Add to TODO: "Have timestamp subtraction not call justify_hours()?"
- Add to TODO: "Allow NOTIFY/LISTEN/UNLISTEN to only take relation
names, not schema.relation, because the notify code only honors the
relation name. schema.relation will now generate a syntax error."
- Add to TODO: "Fix to_date()-related functions to issue errors
consistently"
- Add to TODO: "Allow PL/PythonU to return boolean rather than 1/0."
- Add to TODO: "Consider reducing memory used for shared buffer
reference count."
- Add URL for TODO: "Allow RETURN to return row or record functions."
- Mark TODO as done: "Support a data type with specific enumerated
values (ENUM)."
- Add to TODO: "Add PQexecf() that allows complex parameter
substitution."
Magnus Hagander committed:
- In pgsql/src/tools/msvc/vcregress.bat, continue running contrib
regression tests if one fails, and exit with errorlevel 1 is >= 1
checks failed.
- In pgsql/src/tools/msvc/vcregress.bat, make sure list of tests is
cleared out before getting the new list of tests. Per Andrew
Dunstan.
- In pgsql/src/tools/msvc/Install.pm, don't install files for sslinfo
when building without openssl. Per Andrew Dunstan.
- In pgsql/src/tools/msvc/Install.pm, xcopy can only deal with
forward-slashed paths when it's quoted - needed for "vcregress
check" to work. Per report from Dave Page.
Teodor Sigaev committed:
- Fix caching of unsuccessful initialization of parser or
configuration per report from the folks at peufeu.com. Backpatched
to 7.4.
Tom Lane committed:
- Minor editorialization on CLUSTER reference page.
- Heikki Linnakangas' patch to make CLUSTER MVCC-safe.
- In pgsql/doc/src/sgml/ref/truncate.sgml, add note that TRUNCATE is
not MVCC-safe.
- Don't remove the 'alias' field from flattened rangetable entries;
there are some corner cases where this is needed by ruleutils.c for
proper display of variables during EXPLAIN.
- Make 'col IS NULL' clauses be indexable conditions. Teodor Sigaev,
with some kibitzing from Tom Lane.
- Now that core functionality is depending on autoconf's
AC_C_BIGENDIAN to be right, there seems precious little reason to
have a pile of hand-maintained endianness definitions in
src/include/port/*.h. Get rid of those, and make the couple of
places that used them depend on WORDS_BIGENDIAN instead.
- Support varlena fields with single-byte headers and unaligned
storage. This commit breaks any code that assumes that the mere act
of forming a tuple (without writing it to disk) does not "toast" any
fields. While all available regression tests pass, I'm not totally
sure that we've fixed every nook and cranny, especially in contrib.
Greg Stark with some help from Tom Lane.
- Remove the CheckpointStartLock in favor of having backends show
whether they are in their commit critical sections via flags in the
ProcArray. Checkpoint can watch the ProcArray to determine when
it's safe to proceed. This is a considerably better solution to the
original problem of race conditions between checkpoint and
transaction commit: it speeds up commit, since there's one less lock
to fool with, and it prevents the problem of checkpoint being
delayed indefinitely when there's a constant flow of commits.
Heikki Linnakangas, with some kibitzing from Tom.
- Decouple the values of TOAST_TUPLE_THRESHOLD and
TOAST_MAX_CHUNK_SIZE. Add the latter to the values checked in
pg_control, since it can't be changed without invalidating toast
table content. This commit in itself shouldn't change any behavior,
but it lays some necessary groundwork for experimentation with these
toast-control numbers. Note: while TOAST_TUPLE_THRESHOLD can now be
changed without initdb, some thought still needs to be given to
needs_toast_table() in toasting.c before unleashing random changes.
- Fix check_sql_fn_retval to allow the case where a SQL function
declared to return void ends with a SELECT, if that SELECT has a
single result that is also of type void. Without this, it's hard to
write a void function that calls another void function. Per gripe
from Peter Eisentraut. Back-patch as far as 8.0.
- Support enum data types. Along the way, use macros for the values
of pg_type.typtype whereever practical. Tom Dunstan, with some
kibitzing from Tom Lane.
Peter Eisentraut committed:
- Update catversion for new XML mapping functions.
- Update SQL conformance for SQL to XML mappings.
- Mapping schemas and databases to XML and XML Schema. Refactor and
document the remaining mapping code.
- In pgsql/src/interfaces/ecpg/preproc/Makefile, complete cleaning.
== Rejected Patches (for now) ==
Zdenek Kotala's patch to add large file support on grounds of lack of
use cases.
== Pending Patches ==
Greg Smith sent in a patch which puts entries in the log file around
some backend events that regularly cause client pauses, most of which
are visible only when running with log_min_messages = debug2.
Simon Riggs sent in another version of his "Deferred Transactions,
Transaction Guarantee and COMMIT without waiting" patch.
David Fetter sent in a patch to implement arrays of compound types.
Pavan Deolasee sent in versions 6.3 and 7.0 of his WIP HOT patch.
Marko Kreen sent in two more revisions of his RESET SESSION patch.
Heikki Linnakangas sent in two revisions of a patch intended to fix
the mdsync never-ending loop problem mentioned at
http://archives.postgresql.org/pgsql-hackers/2007-04/msg00259.php
Alvaro Herrera sent in another revision of his autovacuum multiworkers
patch.
Simon Riggs sent in a comprehensive Reviewers Guide to Deferred
Transactions/Transaction Guarantee, complete with the latest version
of the "grouped transactions" patch.
Simon Riggs sent in some changes to warm standby.