== PostgreSQL Weekly News - June 01 2008 == Core has announced the goal of including easy-to-use WAL-based replication in PostgreSQL.
== PostgreSQL Product News == Database .NET 2.1.3071 released. http://s630417.myweb.hinet.net/ Navicat ver. 7.1.1 released. http://pgsql.navicat.com/ pgDesigner 1.2.7 Released http://pgdesigner.sourceforge.net/ pg_proboscis 1.0 released. http://pgfoundry.org/projects/python/ pgsnap 0.3.3 released. http://pgfoundry.org/projects/pgsnap/ == PostgreSQL Local == The Call for Papers for PgCon.BR is open. The deadline is May 31, so get those proposals in. http://pgcon.postgresql.org.br/chamadas.en.html PGDay will be in Portland the day before OSCON. http://pugs.postgresql.org/taxonomy/term/53 Utah Open Source Conference 2008's CfP is open through June 1. This 2nd annual conference is August 28-30, 2008 in Salt Lake City, UT http://2008.utosc.com/ PGCon Brazil 2008 will be on September 26-27 at Unicamp in Campinas. http://pgcon.postgresql.org.br/index.en.html PGDay.IT 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 Submit news and announcements by Sunday at 3:00pm Pacific time. Please send English language ones to [EMAIL PROTECTED], German language to [EMAIL PROTECTED], Italian language to [EMAIL PROTECTED] == Applied Patches == Tom Lane committed: - In pgsql/src/backend/utils/misc/guc.c, fix an old corner-case bug in set_config_option: push_old_value has to be called before, not after, calling the assign_hook if any. This is because push_old_value might fail (due to palloc out-of-memory), and in that case there would be no stack entry to tell transaction abort to undo the GUC assignment. Of course the actual assignment to the GUC variable hasn't happened yet --- but the assign_hook might have altered subsidiary state. Without a stack entry we won't call it again to make it undo such actions. So this is necessary to make the world safe for assign_hooks with side effects. Per a discussion a couple weeks ago with Magnus. Back-patch to 8.0. 7.x did not have the problem because it did not have allocatable stacks of GUC values. - Alter the xxx_pattern_ops opclasses to use the regular equality operator of the associated datatype as their equality member. This means that these opclasses can now support plain equality comparisons along with LIKE tests, thus avoiding the need for an extra index in some applications. This optimization was not possible when the pattern opclasses were first introduced, because we didn't insist that text equality meant bitwise equality; but we do now, so there is no semantic difference between regular and pattern equality operators. I removed the name_pattern_ops opclass altogether, since it's really useless: name's regular comparisons are just strcmp() and are unlikely to become something different. Instead teach indxpath.c that btree name_ops can be used for LIKE whether or not the locale is C. This might lead to a useful speedup in LIKE queries on the system catalogs in non-C locales. The ~=~ and ~<>~ operators are gone altogether. (It would have been nice to keep them for backward compatibility's sake, but since the pg_amop structure doesn't allow multiple equality operators per opclass, there's no way.) A not-immediately-obvious incompatibility is that the sort order within bpchar_pattern_ops indexes changes --- it had been identical to plain strcmp, but is now trailing-blank-insensitive. This will impact in-place upgrades, if those ever happen. Per discussions a couple months ago. - In pgsql/doc/src/sgml/ref/create_type.sgml, clarify description of typmod input function, per Jeff Davis. - Back-patch the 8.3 fix that prohibits TRUNCATE, CLUSTER, and REINDEX when the current transaction has any open references to the target relation or index (implying it has an active query using the relation). Also back-patch the 8.2 fix that prohibits TRUNCATE and CLUSTER when there are pending AFTER-trigger events. Per suggestion from Heikki Linnakangas. - Require bind_textdomain_codeset() not just gettext() to enable NLS support. GNU gettext before 0.10.36 does not have that function, and is generally too incomplete to be usable. - In pgsql/doc/src/sgml/ref/grant.sgml, improve GRANT documentation to point out that UPDATE and DELETE typically require SELECT privilege as well, since you normally need to read existing column values within such commands. This behavior is according to spec, but we'd never documented it before. Per gripe from Volkan Yazici. - In pgsql/src/backend/utils/adt/pg_lzcompress.c, backpatch Zdenek Kotala's fix to prevent pglz_decompress from stomping on memory if the compressed data is corrupt. Backpatch as far as 8.2. The issue exists in older branches too, but given the lack of field reports, it's not clear it's worth any additional effort to adapt the patch to the slightly different code in older branches. - In pgsql/contrib/cube/cube.c, fix some bugs introduced by the 8.2-era conversion of cube functions to V1 calling convention. cube_inter and cube_distance could attempt to pfree their input arguments, and cube_dim returned a value from a struct it might have just pfree'd (which would only really cause a problem in a debug build, but it's still wrong). Per bug #4208 and additional code reading. In HEAD and 8.3, I also made a batch of cosmetic changes to bring these functions into line with the preferred coding style for V1 functions, ie declare and fetch all the arguments at the top so readers can easily see what they are. - Make 8.3.x psql print tab characters as an appropriate number of spaces, rather than "\x09". Before 8.3 we just printed tabs as-is, leading to poor formatting of subsequent columns, but consensus is that "\x09" is not an improvement over that. Back-patch of fix that's already in HEAD. - Tweak libpq to avoid crashing due to incorrect buffer size calculation when we are on a 64-bit machine (ie, size_t is wider than int) and someone passes in a query string that approaches or exceeds INT_MAX bytes. Also, just for paranoia's sake, guard against similar overflows in sizing the input buffer. The backend will not in the foreseeable future be prepared to send or receive strings exceeding 1GB, so I didn't take the more invasive step of switching all the buffer index variables from int to size_t; though someday we might want to do that. I have a suspicion that this is not the only such bug in libpq, but this fix is enough to take care of the crash reported by Francisco Reyes. - In pgsql/src/include/catalog/pg_proc.h, improve the documentation comment for replace(). Robert Treat - Copy refint.so and autoinc.so into the src/test/regress directory during "make all", and then reference them there during the actual tests. This makes the handling of these files more parallel to that of regress.so, and in particular simplifies use of the regression tests outside the original build tree. The PGDG and Red Hat RPMs have been doing this via patches for a very long time. Inclusion of the change in core was requested by J?rgen Austvik of Sun, and I can't see any reason not to. I attempted to fix the MSVC scripts for this too, but they may need further tweaking ... - Marginal improvements to the documentation for PGOPTIONS. - In pgsql/src/backend/executor/spi.c, refactor SPI_cursor_open/SPI_cursor_open_with_args so that the latter sets the PARAM_FLAG_CONST flag on the parameters that are passed into the portal, while the former's behavior is unchanged. This should only affect the case where the portal is executing an EXPLAIN; it will cause the generated plan to look more like what would be generated if the portal were actually executing the command being explained. Per gripe from Pavel. - Update time zone data files to tzdata release 2008c (DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, Argentina/San_Luis). Magnus Hagander committed: - In pgsql/src/backend/utils/mb/mbutils.c, explicitly bind gettext() to the UTF8 locale when in use. This is required on Windows due to the special locale handling for UTF8 that doesn't change the full environment. Fixes crash with translated error messages per bugs 4180 and 4196. Tom Lane. - Add a field to guc enums to allow hiding of values from display while still accepting them as input, used to allow alternate syntax for the same setting. Alex Hunsaker - In pgsql/src/backend/access/transam/xlog.c, set hidden field for guc enum missed in previous commit. Bruce Momjian committed: - Add URL for TODO: "Add deferred trigger queue file." - In pgsql/doc/src/sgml/external-projects.sgml, update URL for ODBC. - Add description to TODO: "Add deferred trigger queue file." Andrew Dunstan committed: - Mark TODO as done: "Remove psql newline patch when we find out why mingw outputs an extra newline." == Rejected Patches (for now) == Jeff Davis's patch to reset scan state at the end of a synchronized scan. Davy Durham's patch to allow filtering tables in pg_dump. == Pending Patches == Teodor Sigaev sent patches to extend GIN to include multi-column indexes and faster INSERTs into GIN-indexed tables. Zdenek Kotala sent in a patch to clean up some headers in the source code. Joe Conway sent in two revisions of a patch to fix a dblink regression fix in CVS TIP. ---------------------------(end of broadcast)--------------------------- -To unsubscribe from this list, send an email to: [EMAIL PROTECTED]