== PostgreSQL Weekly News - May 12 2013 ==
От | David Fetter |
---|---|
Тема | == PostgreSQL Weekly News - May 12 2013 == |
Дата | |
Msg-id | 20130513043842.GB14336@fetter.org обсуждение исходный текст |
Список | pgsql-announce |
== PostgreSQL Weekly News - May 12 2013 == == PostgreSQL Product News == PostGIS 2.1.0beta2, the industry standard geographic information system for PostgreSQL, released. http://postgis.net/2013/05/11/postgis-2-1-0beta2 DSL Platform, a platform based around domain-specific languages based on PostgreSQL, is in beta. https://dsl-platform.com/ == PostgreSQL Jobs for May == http://archives.postgresql.org/pgsql-jobs/2013-05/threads.php == PostgreSQL Local == PGCon 2013 will be held May 23-24 2013, in Ottawa at the University of Ottawa. http://www.pgcon.org/2013/ Postgres-XC is going to have its first user/developer meeting after the cluster summit. https://wiki.postgresql.org/wiki/PgCon2013CanadaClusterSummit#PostgresXC_Summit The 6th annual "Prague PostgreSQL Developers Day" conference, organized by CSPUG (Czech and Slovak PostgreSQL Users Group), will be held on May 30, 2013 at Faculty of Mathematics and Physics, Charles University (Malostranske namesti 25, Prague). The CfP is open until April 14, 2013 <info AT p2d2 DOT cz>. More information in Czech is at http://www.p2d2.cz/ PG Day France is the major French-speaking PostgreSQL community event. It will be held June 13, 2013 in Nantes, France. http://pgday.fr/ PostgreSQL Brazil will be held August 15-17, 2013 in Porto Velho, RO, Brazil. http://pgbr.postgresql.org.br/2013/chamada.en.php Save The Date! Postgres Open 2013 will be in Chicago, IL, USA, September 16-18. Hotel Sax: https://reservations.ihotelier.com/crs/g_reservation.cfm?groupID=888761&hotelID=6865 Early Bird registration: http://postgresopen-eac2.eventbrite.com/ PGConf.EU 2013 will be held on Oct 29-Nov 1, in at the Conrad Hotel in downtown Dublin, Ireland. http://2013.pgconf.eu/ PGConf.DE 2013 will be held November 8th, 2013, at the Rhineland Industrial Museum in Oberhausen. http://2013.pgconf.de/ == PostgreSQL in the News == Planet PostgreSQL: http://planet.postgresql.org/ 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 david@fetter.org, German language to pwn@pgug.de, Italian language to pwn@itpug.org. Spanish language to pwn@arpug.com.ar. == Applied Patches == Bruce Momjian pushed: - Revert idea of zero-padding padding session id in log_line_prefix. Removal of doc adjustment and release note mention as well. http://git.postgresql.org/pg/commitdiff/8b06e6aba8773df8040b357a1cb058879ed2d94f - 9.3 release notes: update from Amit Kapila. No need to mention wal_receiver_status_interval. http://git.postgresql.org/pg/commitdiff/c750aa90f2cd411bea9ee3844bb41ff50a0eb436 - 9.3 release notes: Add cache of local locks. Mention this also helps in the restoring of pg_dumps. Jeff Janes http://git.postgresql.org/pg/commitdiff/2fbffc0ddf1e6c7cd8744d8ae26f7daba902d631 - 9.3 release notes: use "restoration". Andrew Dunstan http://git.postgresql.org/pg/commitdiff/c29866073ba3aab67d78c0d19ecdf790f36a8e1a - pg_upgrade docs: give tips on automation. Document that post-upgrade steps are likely to be the same for all clusters with the same DDL/schemas; this should help automated upgrades. http://git.postgresql.org/pg/commitdiff/df9d764186cf6082376e25fe04050ad39462312d Simon Riggs pushed: - Execute SET TRANSACTION SNAPSHOT during pg_dump. Previous coding set the SQL buffer but never executed. Bug noted by me during beta testing http://git.postgresql.org/pg/commitdiff/b2ad82dafaae29975dd12e8c43cf2edaa0f23f4b Tom Lane pushed: - Disallow unlogged materialized views. The initial implementation of this feature was really unsupportable, because it's relying on the physical size of an on-disk file to carry the relation's populated/unpopulated state, which is at least a modularity violation and could have serious long-term consequences. We could say that an unlogged matview goes to empty on crash, but not everybody likes that definition, so let's just remove the feature for 9.3. We can add it back when we have a less klugy implementation. I left the grammar and tab-completion support for CREATE UNLOGGED MATERIALIZED VIEW in place, since it's harmless and allows delivering a more specific error message about the unsupported feature. I'm committing this separately to ease identification of what should be reverted when/if we are able to re-enable the feature. http://git.postgresql.org/pg/commitdiff/3223b25ff737c2bf4a642c0deb7be2b30bfecc6e - Back out some recent translation updates. Very old versions of msgfmt choke on these specific messages, for reasons that are unclear at the moment. Remove them so that we can ship a beta release and not get complaints from testers (these messages will just go untranslated, instead, and we're hardly at 100% coverage anyway). Peter Eisentraut will look for a better fix later. http://git.postgresql.org/pg/commitdiff/5da5798004e90b14332918e7db702271442d465d - Move materialized views' is-populated status into their pg_class entries. Previously this state was represented by whether the view's disk file had zero or nonzero size, which is problematic for numerous reasons, since it's breaking a fundamental assumption about heap storage. This was done to allow unlogged matviews to revert to unpopulated status after a crash despite our lack of any ability to update catalog entries post-crash. However, this poses enough risk of future problems that it seems better to not support unlogged matviews until we can find another way. Accordingly, revert that choice as well as a number of existing kluges forced by it in favor of creating a pg_class.relispopulated flag column. http://git.postgresql.org/pg/commitdiff/1d6c72a55b23554cfb946527dc77f9d80044ae2c - Desultory copy-editing of the 9.3 release notes. I had time for a quick review of the notes, so here are some fixes. http://git.postgresql.org/pg/commitdiff/f1ff90cfb1c5168cd442593de62b419ac9ab6469 - Stamp 9.3beta1. http://git.postgresql.org/pg/commitdiff/817a89423f429a6a8b36847ee499f5b6be39c3be - Better fix for permissions tests in excluded subqueries. This reverts the code changes in 50c137487c96e629e0e5372bb3d1b5f1a2f71a88, which turned out to induce crashes and not completely fix the problem anyway. That commit only considered single subqueries that were excluded by constraint-exclusion logic, but actually the problem also exists for subqueries that are appendrel members (ie part of a UNION ALL list). In such cases we can't add a dummy subpath to the appendrel's AppendPath list without defeating the logic that recognizes when an appendrel is completely excluded. Instead, fix the problem by having setrefs.c scan the rangetable an extra time looking for subqueries that didn't get into the plan tree. (This approach depends on the 9.2 change that made set_subquery_pathlist generate dummy paths for excluded single subqueries, so that the exclusion behavior is the same for single subqueries and appendrel members.) Note: it turns out that the appendrel form of the missed-permissions-checks bug exists as far back as 8.4. However, since the practical effect of that bug seems pretty minimal, consensus is to not attempt to fix it in the back branches, at least not yet. Possibly we could back-port this patch once it's gotten a reasonable amount of testing in HEAD. For the moment I'm just going to revert the previous patch in 9.2. http://git.postgresql.org/pg/commitdiff/a7b965382cf0cb30aeacb112572718045e6d4be7 - Update collate.linux.utf8.out for ruleutils.c line-wrapping changes. Missed in commit 62e666400dddf605b9b6d9a7ac2918711b5c5629. http://git.postgresql.org/pg/commitdiff/284e28f2280a8f69014df689ae5e2843eebd7c59 - Use pg_dump's --quote-all-identifiers option in pg_upgrade. This helps guard against changes in the set of reserved keywords from one version to another. In theory it should only be an issue if we de-reserve a keyword in a newer release, since that can create the type of problem shown in bug #8128. Back-patch to 9.1 where the --quote-all-identifiers option was added. http://git.postgresql.org/pg/commitdiff/1c36700e9e3cfb96fde636def87cafb57299f4da - Fix management of fn_extra caching during repeated GiST index scans. Commit d22a09dc70f9830fa78c1cd1a3a453e4e473d354 introduced official support for GiST consistentFns that want to cache data using the FmgrInfo fn_extra pointer: the idea was to preserve the cached values across gistrescan(), whereas formerly they'd been leaked. However, there was an oversight in that, namely that multiple scan keys might reference the same column's consistentFn; the code would result in propagating the same cache value into multiple scan keys, resulting in crashes or wrong answers. Use a separate array instead to ensure that each scan key keeps its own state. Per bug #8143 from Joel Roller. Back-patch to 9.2 where the bug was introduced. http://git.postgresql.org/pg/commitdiff/91715e82932665c6e125d100eeaa1b6debf73e7b - Fix pgp_pub_decrypt() so it works for secret keys with passwords. Per report from Keith Fiske. Marko Kreen http://git.postgresql.org/pg/commitdiff/477b5a0e24f3b62a470f9684e22e36a2c7735274 - Guard against input_rows == 0 in estimate_num_groups(). This case doesn't normally happen, because the planner usually clamps all row estimates to at least one row; but I found that it can arise when dealing with relations excluded by constraints. Without a defense, estimate_num_groups() can return zero, which leads to divisions by zero inside the planner as well as assertion failures in the executor. An alternative fix would be to change set_dummy_rel_pathlist() to make the size estimate for a dummy relation 1 row instead of 0, but that seemed pretty ugly; and probably someday we'll want to drop the convention that the minimum rowcount estimate is 1 row. Back-patch to 8.4, as the problem can be demonstrated that far back. http://git.postgresql.org/pg/commitdiff/69cc60dcfd0fb643cd2fe3ce66d4389858bfdeb5 - Update CREATE FUNCTION documentation about argument names. The 9.2 patch that added argument name support in SQL-language functions missed updating a parenthetical comment about that in the CREATE FUNCTION reference page. Noted by Erwin Brandstetter. http://git.postgresql.org/pg/commitdiff/c263f16a20a12ee63bbf0c4769d87db3184709eb - Make pg_upgrade's test script attempt to select a non-conflicting port. Previously, the port number used in this test script was hard-wired at pg_upgrade's default of 50432; which is not so great because parallel build runs might conflict. Commit 3d53173e20d151341f894f79d556768c845ba3e4 removed this setting for the postmasters started by the script proper (not by pg_upgrade), which didn't do anything to fix that problem and also guaranteed a failure if there was a live postmaster at the build's default port number. Instead, select a non-conflicting temporary port number in the same way that pg_regress.c does. (Its method isn't entirely bulletproof, but given the lack of complaints I'm not going to worry about that today.) In passing, unset MAKEFLAGS and MAKELEVEL to avoid problems with the script's internal invocations of make, for the same reason pg_regress.c does: it could cause problems in a parallel make. http://git.postgresql.org/pg/commitdiff/7e2b1c03ce24e8fefa2080c0f1f8cfbb86ce664e - Fix buildfarm incompatibility in updated pg_upgrade test script. Looks like some versions of the buildfarm script try to set the port via --port in $EXTRA_REGRESS_OPTS. Override that ... http://git.postgresql.org/pg/commitdiff/8cade04c105f2d31c941bee9716a304f93a41351 - Fix to_number() to correctly ignore thousands separator when it's '.'. The existing code in NUM_numpart_from_char has hard-wired logic to treat '.' as decimal point, even when we're using a locale-aware format string and the locale says that '.' is the thousands separator. This results in clearly wrong answers in Fujii Masao mode (where we must be able to identify the decimal point location), as per bug report from Patryk Kordylewski. Since the initialization code in NUM_prepare_locale already sets up Np->decimal as either the locale decimal-point string or "." depending on which decimal-point format code was used, there's really no need to have any extra logic at all in NUM_numpart_from_char: we only need to test for a match to Np->decimal. (Note: AFAICS there's nothing in here that explicitly checks for thousands separators --- rather, any unmatched character is silently skipped over. That's pretty bogus IMO but it's not the issue being complained of.) This is a longstanding bug, but it's possible that some existing apps are depending on '.' being recognized as decimal point even when using a D format code. Hence, no back-patch. We should probably list this as a potential incompatibility in the 9.3 release notes. http://git.postgresql.org/pg/commitdiff/35d50b527a9f99e22a317269ceb00491397d0e00 - Fix handling of strict non-set functions with NULLs in set-valued inputs. In a construct like "select plain_function(set_returning_function(...))", the plain function is applied to each output row of the SRF successively. If some of the SRF outputs are NULL, and the plain function is strict, you'd expect to get NULL results for such rows ... but what actually happened was that such rows were omitted entirely from the result set. This was due to confusion of this case with what should happen for nested set-returning functions; a strict SRF is indeed supposed to yield an empty set for null input. Per bug #8150 from Erwin Brandstetter. Although this has been broken forever, we're not back-patching because of the possibility that some apps out there expect the incorrect behavior. This change should be listed as a possible incompatibility in the 9.3 release notes. http://git.postgresql.org/pg/commitdiff/904af8db8a99409257db1eed0b056c8098e9013c Heikki Linnakangas pushed: - Stress that backup_label file is critical in the docs. It is surprisingly common mistake to leave out backup_label file from a base backup. Say more explicitly that it must be included. Jeff Janes, with minor rewording by me. http://git.postgresql.org/pg/commitdiff/7f03a791fa131eb20c6df07740522163d8b3c94e - Use the term "radix tree" instead of "suffix tree" for SP-GiST text opclass. What we have implemented is a radix tree (or a radix trie or a patricia trie), but the docs and code comments incorrectly called it a "suffix tree". Alexander Korotkov http://git.postgresql.org/pg/commitdiff/cb953d8b1bf7386ff20300cd80b29b7e8657dcbd - Fix walsender failure at promotion. If a standby server has a cascading standby server connected to it, it's possible that WAL has already been sent up to the next WAL page boundary, splitting a WAL record in the middle, when the first standby server is promoted. Don't throw an assertion failure or error in walsender if that happens. Also, fix a variant of the same bug in pg_receivexlog: if it had already received WAL on previous timeline up to a segment boundary, when the upstream standby server is promoted so that the timeline switch record falls on the previous segment, pg_receivexlog would miss the segment containing the timeline switch. To fix that, have walsender send the position of the timeline switch at end-of-streaming, in addition to the next timeline's ID. It was previously assumed that the switch happened exactly where the streaming stopped. Note: this is an incompatible change in the streaming protocol. You might get an error if you try to stream over timeline switches, if the client is running 9.3beta1 and the server is more recent. It should be fine after a reconnect, however. Reported by Fujii Masao. http://git.postgresql.org/pg/commitdiff/2ffa66f4975c99e52984f7ee81b47d137b5b4751 - The data structure used in unaccent is a trie, not suffix tree. Fix the term used in variable and struct names, and comments. Alexander Korotkov http://git.postgresql.org/pg/commitdiff/4b06c1820a1b96769ea7447a0fc8e0edabbf57f5 Peter Eisentraut pushed: - doc: Add IDs to link targets used by phpPgAdmin. Karl O. Pinc http://git.postgresql.org/pg/commitdiff/20c00ca668f2c5ca4e7e7afd1bd8faa0909ee527 - Update key words table for 9.3 http://git.postgresql.org/pg/commitdiff/cda7acee5f30bfdca6cfaeacfc4fb695f8c8d5d8 - Remove make_keywords. It is not used anymore. http://git.postgresql.org/pg/commitdiff/bd98852cbd19083ea46a90056666e087f1bb0d67 - pg_xlogdump: Improve --help output http://git.postgresql.org/pg/commitdiff/a4fd3366a6555a065f1be9f127110c9f642323b9 - pgbench: Fix order of options in --help output http://git.postgresql.org/pg/commitdiff/f0ed3a8a99b052d2d5e0b6153a8907b90c486636 == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Dimitri Fontaine sent in a patch to add an example of using the event trigger API to the documentation. Christoph Berg sent in a patch to add EXTRA_REGRESS_OPTS to all pg_regress invocations. Simon Riggs sent in a patch to allow pg_dump to use a snapshot exported with an explicit pg_export_snapshot() for when precise timing of the snapshot is important. Christoph Berg sent in a patch to fix the fact that PSQLDIR was not passed to pg_regress in contrib/pg_upgrade/test.sh. Robins Tharakan sent in another revision of a patch to add some regression tests for SEQUENCE. Robins Tharakan sent in two more revisions of a patch to add regression tests for SCHEMA. Robins Tharakan sent in another revision of a patch to add regression tests for ROLE. Robins Tharakan sent in two more revisions of a patch to add regression tests for COLLATE. Robert Haas sent in another revision of a patch to fix a case where it was possible to do an erroneous restore into the pg_catalog schema. Amul Sul sent in a patch to fix an issue where psql connection reset failed. Simon Riggs sent in a patch to fix a bug where VACUUM was no longer reporting "removed %d row versions." Fabien COELHO sent in two more revisions of a patch to add a --throttle option to pgbench. Fabien COELHO sent in another revision of a patch to add a --progress option to pgbench. Fabien COELHO sent in another revision of a patch to add long options to pgbench. Robins Tharakan sent in a patch to add regression tests for DISCARD. Robins Tharakan sent in a patch to cover more database commands, raising the code coverage from 36% to 71%.
В списке pgsql-announce по дате отправления: