|Тема:||== PostgreSQL Weekly News - March 31 2007 ==|
(см: обсуждение, исходный текст)
== PostgreSQL Weekly News - March 31 2007 == As usual before feature freeze, a flurry of patches and discussion around same has been going on. == PostgreSQL Product News == Echoping 6 now has a PostgreSQL plugin. http://echoping.sourceforge.net/ Devrim GUNDUZ pushed pgfouine, phpPgAdmin and python-psycopg to EPEL. Both RHEL 4 and RHEL 5 users can download these new packages http://download.fedora.redhat.com/pub/epel/ pagila-0.9.0 released. http://pgfoundry.org/frs/?group_id=1000150&release_id=570 pgAdmin3 1.6.3 released. http://www.pgadmin.org/download/ pgFouine 1.0 released. http://pgfouine.projects.postgresql.org/ == PostgreSQL Jobs for March == http://archives.postgresql.org/pgsql-jobs/2007-03/threads.php == PostgreSQL Local == Registration is open for PGCon 2007 http://www.pgcon.org/2007/registration.php == 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, Devrim GUNDUZ, and Robert Treat. To get your submission into the upcoming issue, make sure it arrives at or in German at by Sunday at 3:00pm Pacific Time. == Applied Patches == Michael Meskes committed: - Magnus Hagander's patch to use native win32 threads, and fixed regression tests to run threading tests. Neil Conway committed: - Jeremy Drake's code cleanup for the new regexp UDFs: we can hardcode the OID and some properties of the "text" type, and then simplify the code accordingly. - Marko Kreen's patch which replaces blf.[ch], which were under the four-clause BSD license, with the blowfish implementation from PuTTY, which is under a minimal BSD/MIT license. Magnus Hagander committed: - Add some instrumentation to the bgwriter, through the stats collector. New view pg_stat_bgwriter, and the functions required to build it. - In pgsql/src/tools/msvc/Install.pm, install include files. - Make ECPG regression tests use native threading instead of pthreads, now that ecpglib supports it. Change configure (patch from Bruce) and msvc build system to no longer require pthreads on win32, since all parts of postgresql can be thread-safe using the native platform functions. - ITAGAKI Takahiro's fix for compiler warnings in ereport messages on mingw. - Install import libraries used to link to libpq, ecpg and the backend. Alvaro Herrera committed: - Add the "recheck" logic to autovacuum worker code. The worker first builds its table list and then rechecks pgstat before vacuuming each table to verify that no one has vacuumed the table in the meantime. In the current autovacuum world this only means that a worker will not vacuum a table that a user has vacuumed manually after the worker started. When support for multiple autovacuum workers is introduced, this will reduce the probability of simultaneous workers on the same database doing redundant work. - Cosmetic changes: rename some struct fields, and move the fetching of pgstat table entries to a separate routine. Don't pass the pgstat database entry to do_autovacuum; rather, have it fetch it by itself. Bruce Momjian committed: - Update SSL description for when SSL root.crt/server.crt is required; add link to libpq SSL does from server docs. Backpatch to 8.2.X. - Jun Kuwamura's update to the Japanese FAQ. - ITAGAKI Takahiro's patch which accounts for the fact that pg_char_to_encoding() was redundant in initdb because pg_valid_server_encoding() returns the same result if the encoding is valid. - Add to TODO: "Reduce storage space for small NUMERICs." - Update TODO: "Add more logical syntax CLUSTER table USING index;" - Add URL for TODO: "Automatically create rules on views so they are updateable, per SQL99." - Remove TODO due to lack of interest: "Add pg_get_acldef(), pg_get_typedefault(), pg_get_attrdef(), pg_get_tabledef(), pg_get_domaindef(), pg_get_functiondef()." - Add to TODO: "Allow configuration of backend priorities via the operating system." - Marko Kreen's patch to fix a typo in Makefile. - Add documentation for pulling the CVS repository using rsync, and mention cvsup last. - Update TODO: "Improve dead row detection during multi-statement transactions usage." - Add to TODO: "Increase the number of rows recognized as dead during multi-statement transactions." - Remove Andrew Yu copyright, with permission from author. - Remove advertising clause from Berkeley BSD-licensed files, per instructions from Berkeley. - Properly fix PORTNAME in configure. - User PORTNAME for win32 tests, rather than $template, for consistency. Tom Lane committed: - Fix oversight in coding of _bt_start_vacuum: we can't assume that the LWLock will be released by transaction abort before _bt_end_vacuum gets called. If either of these "can't happen" errors actually happened, we'd freeze up trying to acquire an already-held lock. Latest word is that this does not explain Martin Pitt's trouble report, but it still looks like a bug. - exec_parse_message neglected to copy parameter type array into the required memory context when handling client-specified parameter types for an unnamed statement. Per report from Kris Jurka. - Simon Riggs's patch which teaches CLUSTER to skip writing WAL if not needed (ie, not using archiving) and Tom's code review and cleanup for the previous COPY-no-WAL patches - Remove assertion that constraint_exclusion risks wrong answers if table constraints are changed; this is no longer true now that we have a plan invalidation mechanism. - In pgsql/contrib/tsearch2/dict_syn.c, fix uninitialized-variable bug. - Fix array coercion expressions to ensure that the correct volatility is seen by code inspecting the expression. The best way to do this seems to be to drop the original representation as a function invocation, and instead make a special expression node type that represents applying the element-type coercion function to each array element. In this way the element function is exposed and will be checked for volatility. Per report from Guillaume Smet. - In pgsql/src/interfaces/ecpg/preproc/preproc.y, fix typo, ensable -> enable, per Steve Gieseking. - Fix seriously broken markup for libpq-envars cross-references. - Allow non-superuser database owners to create procedural languages. A DBA is allowed to create a language in his database if it's marked "tmpldbacreate" in pg_pltemplate. The factory default is that this is set for all standard trusted languages, but of course a superuser may adjust the settings. In service of this, add the long-foreseen owner column to pg_language; renaming, dropping, and altering owner of a PL now follow normal ownership rules instead of being superuser-only. Jeremy Drake, with some editorialization by Tom Lane. Teodor Sigaev committed: - Add check for end-of-line in parsing stopword lists. Thanks to sharp eyes of Tom Lane. - Fix stopword and synonym files parsing bug in MSVC build, per report from Magnus Hagander. It now ignores the space symbol after stopwords. Tatsuo Ishii committed: - Fix pg_wchar_table's maxmblen field of EUC_CN, EUC_TW, MULE_INTERNAL and GB18030. Patches from ITAGAKI Takahiro. Back-patched to 7.3. == Rejected Patches (for now) == Arul Shaji's patch implementing pg_get_domaindef(). It's no longer a TODO due to the maintenance effort of code duplication. == Pending Patches == Gregory Stark sent in another revision of his Packed Varlena patch which takes the Kerberos change into account and fixes one bug in indextuple.c. Tom Dunstan sent in an updated version of his enum patch. Koichi Suzuki sent in an update of his patch improve full page writes. ITAGAKI Takahiro sent in a patch to clean up initdb and win32_shmem. Gregory Stark sent in a WIP patch which implements a circular buffer in tuplestore which drops old tuples as they're no longer needed. Marko Kreen sent in a patch intended to help clean up connections with a command DEALLOCATE ALL. Holger Schurig sent in four revisions of a patch which adds a new variant of the CLUSTER command: "CLUSTER [table] ORDER BY [index]" Gregory Stark sent in a fourth revision of his concurrent psql patch. Alvaro Herrera sent in another patch which puts some infrasctructure in to enable autovacuum to have multiple workers. Pavel Stehule sent in an updated version of his scrollable cursor patch. Jeremy Drake sent in a new version of his regexp patch which removes the last bits of fcinfo. Pavel Stehule sent in a patch to implement SQL/PSM as a PL. Magnus Hagander sent in another version of his bgwriter stats patch. Teodor Sigaev sent in version 43 of his patch to include tsearch2 in the core. Nikhil S sent in a WIP patch intend to help with automatic partitioning, adding a PARTITION BY clause to CREATE TABLE. ITAGAKI Takahiro sent in a patch intended to speed up LIKE in multi-byte encodings. ITAGAKI Takahiro sent in another revision of his Dead Space Map patch. Marko Kreen sent in a WIP patch to implement RESET SESSION. Teodor Sigaev sent in a patch per Martijn van Oosterhout's work to allow indexing NULLs, this time enabling GiST. Arul Shaji sent in two more revisions of his patch to make COPY-able sql log output. Arul Shaji sent in a patch to make cursors updateable. Henry B. Hotz sent in preliminary patches to add GSSAPI support. Greg Smith sent in a patch which changes the way pgbench outputs its latency log files so that every transaction gets a timestamp and notes which transaction type was executed. Greg Smith sent in a patch to add usage count statistic to the information available in contrib/pgbuffercache.