Skip to content

Wöchentlicher PostgreSQL Newsletter - 20. März 2011

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 20. März 2011 ==

PostgreSQL wurde als Mentor Organisation für den Google Summer
of Code 2011 akzeptiert! Wenn du ein Student bist und ein
Projekt einreichen möchtest, das ist bis zum 28. März 2011
möglich. Details und Ideen für Projekte findest du hier:

== PostgreSQL Produkt Neuigkeiten ==

bucardo 4.4.2, ein PostgreSQL Replikationssystem,
ist erschienen:

tail_n_mail 1.17.6, ein Logfile Alarmwerkzeug ist erschienen:

== PostgreSQL Jobs im März ==

== PostgreSQL Lokal ==

PostgreSQL Conference East 2011: New York,
vom 22. bis 25. März

Es wird eine umfangreiche PostgreSQL Präsenz auf der MySQL Konferenz
und Expo am am 11-14. April 2011 in Santa Clara, Kalifornien, geben.

Das Open Database Camp findet vom 7. bis 9. Mai 2011 in Sardinien,
Italien statt.

PGCon findet am 19. und 20. Mai 2011 an der Universität
von Ottawa statt, vorher gibt es am 17. und 18. Mai
zwei Tage mit Trainings.

== PostgreSQL in den News ==

Planet PostgreSQL:

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David Fetter.

Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an, deutsche an, italienische an, spanische an

== Reviews ==

== Angewandte Patches ==

Bruce Momjian pushed:

- Remove duplicate time-based macros recently added.

- Add database comments to template0 and postgres databases, and
  improve the comments on the template1 database.  No catalog version
  bump because they are just comments.

- Wording adjustment for restart_after_crash entry Specifically,
  mention that "restart" is disabled by this parameter.

- Fix spelling error in fuzzystrmatch docs.

- Add hint suggesting the use of EXECUTE CREATE TABLE ... AS for

- Adjust doc wording about the casting exceptions for composite types.

- Remove unused copy_dir() function from pg_upgrade.

- Document guc context values, and reference them from the config doc
  section.  Tom Lane.

- Document the all-balls IPv6 address.

- Document that the timestamp returned by
  pg_last_xact_replay_timestamp is the time on the primary that the
  transaction was generated.

- Remove "all balls" mention of network address;  change IPv6 address
  to ::/0.

- Initial version of PostgreSQL 9.1 release notes.

- Add SGML markup for keywords, terms, functions, commands, etc.

- Add links to documentation from 9.1 release notes.

- Move PITR and StreamingRep up one level of heading in the 9.1
  release notes.  Remove excessive linking to pg_ctl manual page.
  Reorder incompatibility sections.

- Reorder some 9.1 release item documentation entries, fix some
  awkward wording.

- Fix snapshot isolation level typo in 9.1 release notes. Thom Brown

- Another 9.1 release note typo fix.

- Markup and wording improvements for 9.1 release notes.

Tom Lane pushed:

- Adjust regression test to avoid platform-dependent failure.  We have
  a test that verifies that max(anyarray) will cope if the array
  column elements aren't all the same array type.  However, it's now
  possible for that to produce a collation-related error message
  instead of the expected one, if the first two column elements happen
  to be of the same type and it's one that expects to be given
  collation info.  Tweak the test to ensure this doesn't happen.  Per
  buildfarm member pika.

- Improve handling of unknown-type literals in UNION/INTERSECT/EXCEPT.
  This patch causes unknown-type Consts to be coerced to the resolved
  output type of the set operation at parse time.  Formerly such
  Consts were left alone until late in the planning stage.  The
  disadvantage of that approach is that it disables some
  optimizations, because the planner sees the set-op leaf query as
  having different output column types than the overall set-op.  We
  saw an example of that in a recent performance gripe from Claudio
  Freire.  Fixing such a Const requires scribbling on the leaf query
  in transformSetOperationTree, but that should be all right since if
  the leaf query's semantics depended on that output column, it would
  already have resolved the unknown to something else.  Most of the
  bulk of this patch is a simple adjustment of
  transformSetOperationTree's API so that upper levels can get at the
  TargetEntry containing a Const to be replaced: it now returns a list
  of TargetEntries, instead of just the bare expressions.

- Revise collation derivation method and expression-tree
  representation.  All expression nodes now have an explicit
  output-collation field, unless they are known to only return a
  noncollatable data type (such as boolean or record).  Also, nodes
  that can invoke collation-aware functions store a separate field
  that is the collation value to pass to the function.  This avoids
  confusion that arises when a function has collatable inputs and
  noncollatable output type, or vice versa.  Also, replace the
  parser's on-the-fly collation assignment method with a post-pass
  over the completed expression tree.  This allows us to use a more
  complex (and hopefully more nearly spec-compliant) assignment rule
  without paying for it in extra storage in every expression node.
  Fix assorted bugs in the planner's handling of collations by making
  collation one of the defining properties of an EquivalenceClass and
  by converting CollateExprs into discardable RelabelType nodes during
  expression preprocessing.

- Fix up handling of C/POSIX collations.  Install just one instance of
  the "C" and "POSIX" collations into pg_collation, rather than one
  per encoding.  Make these instances exist and do something useful
  even in machines without locale_t support: to wit, it's now possible
  to force comparisons and case-folding functions to use C locale in
  an otherwise non-C database, whether or not the platform has support
  for using any additional collations.  Fix up severely broken
  upper/lower/initcap functions, too: the C/POSIX fastpath now does
  what it is supposed to, and non-default collations are handled
  correctly in single-byte database encodings.  Merge the two separate
  collation hashtables that were being maintained in pg_locale.c, and
  be more wary of the possibility that we fail partway through filling
  a cache entry.

- Suppress platform-dependent unused-variable warning.  The local
  variable "sock" can be unused depending on compilation flags.  But
  there seems no particular need for it, since the kernel calls can
  just as easily say port->sock instead.

- Add some platform-independent tests for the collation feature.
  There's a lot we can't test very well without platform dependencies,
  but the C/POSIX collations should now work the same way everywhere.

Magnus Hagander pushed:

- Remove special case allowing parameters to ident auth for initdb.
  This was required in pre-8.4 versions to allow the specification of
  "ident sameuser", but sameuser is no longer required. It could be
  extended to allow all parameters in the future, but should then
  apply to all methods and not just ident.

- Properly clear the verbose output of pg_basebackup.  Don't leave
  partial filename information on the last status or dangling
  characters if the previous filename was longer than the current one.

- Rename ident authentication over local connections to peer.  This
  removes an overloading of two authentication options where one is
  very secure (peer) and one is often insecure (ident). Peer is also
  the name used in libpq from 9.1 to specify the same type of
  authentication.  Also make initdb select peer for local connections
  when ident is chosen, and ident for TCP connections when peer is
  chosen.  ident keyword in pg_hba.conf is still accepted and maps to
  peer authentication.

- Misc minor fixes to 9.1 release notes.  Thom Brown

Robert Haas pushed:

- Remove 13 keywords that are used only for ROLE options.  Review by
  Tom Lane.

- Minor sync rep documentation improvements: Make the name of the ID
  tag for the GUC entry match the GUC name; Clarify that
  synchronous_replication waits for xlog flush, not receipt; Mention
  that synchronous_replication won't wait if max_wal_senders=0.

- Corrections to CREATE FOREIGN TABLE documentation.  Omit incorrect =
  sign, and properly document server_name parameter.  Shigeru Hanada.

- Tab completion for \pset format and \pset linestyle.  Pavel Stehule

- Tab completion for \pset format and \pset linestyle.  Pavel Stehule

- Fix various possible problems with synchronous replication.  1.
  Don't ignore query cancel interrupts.  Instead, if the user asks to
  cancel the query after we've already committed it, but before it's
  on the standby, just emit a warning and let the COMMIT finish.  2.
  Don't ignore die interrupts (pg_terminate_backend or fast shutdown).
  Instead, emit a warning message and close the connection without
  acknowledging the commit.  Other backends will still see the effect
  of the commit, but there's no getting around that; it's too late to
  abort at this point, and ignoring die interrupts altogether doesn't
  seem like a good idea.  3. If synchronous_standby_names becomes
  empty, wake up all backends waiting for synchronous replication to
  complete.  Without this, someone attempting to shut synchronous
  replication off could easily wedge the entire system instead.  4.
  Avoid depending on the assumption that if a walsender updates
  MyProc->syncRepState, we'll see the change even if we read it
  without holding the lock.  The window for this appears to be quite
  narrow (and probably doesn't exist at all on machines with strong
  memory ordering) but protecting against it is practically free, so
  do that.  5. Remove useless state SYNC_REP_MUST_DISCONNECT, which
  isn't needed and doesn't actually do anything.  There's still some
  further work needed here to make the behavior of fast shutdown
  plausible, but that looks complex, so I'm leaving it for a separate
  commit.  Review by Fujii Masao.

- Add pause_at_recovery_target to recovery.conf.sample; improve docs.
  Fujii Masao, but with the proposed behavior change reverted, and the
  rest adjusted accordingly.

- Remove bogus comment.

- Protocol documentation for Hot Standby feedback messages.

- Minor fixes for high availability documentation.  Erik Rijkers and

- Remove bogus semicolons in recoveryPausesHere.  Without this, the
  startup process goes into a tight loop, consuming 100% of one CPU
  and failing to respond to interrupts.

- Remove ancient -X options to pg_dump, pg_dumpall, pg_restore.  The
  last version in which these options were documented is now EOL, so
  it's time to get rid of them for real.  We now use GNU-style long
  options instead.

- Make synchronous replication query cancel/die messages more
  consistent.  Per a gripe from Thom Brown about my previous commit in
  this area, commit 9a56dc3389b9470031e9ef8e45c95a680982e01a.

- Woops.  Previous patch to remove -X options missed getopt_long
  calls().  Noted by Tom Lane.

- Move synchronous_standbys_defined updates from WAL writer to BG
  writer.  This is advantageous because the BG writer is alive until
  much later in the shutdown sequence than WAL writer; we want to make
  sure that it's possible to shut off synchronous replication during a
  smart shutdown, else it might not be possible to complete the
  shutdown at all.  Per very reasonable gripes from Fujii Masao and
  Simon Riggs.

- Fix possible "tuple concurrently updated" error in ALTER TABLE.
  When adding an inheritance parent to a table, an AccessShareLock on
  the parent isn't strong enough to prevent trouble, so take
  ShareUpdateExclusiveLock instead.  Since this is a behavior change,
  albeit a fairly unobtrusive one, and since we have only one report
  from the field, no back-patch.  Report by Jon Nelson, analysis by
  Alvaro Herrera, fix by me.

Andrew Dunstan pushed:

- Use correct PATH separator for Cygwin in pg_regress.c.  This has
  been broken for years, and I'm not sure why it has not been noticed
  before, but now a very modern Cygwin breaks on it, and the fix is
  clearly correct. Backpatching to all live branches.

Peter Eisentraut pushed:

- Raise maximum value of several timeout parameters The maximum value
  of deadlock_timeout, max_standby_archive_delay,
  max_standby_streaming_delay, log_min_duration_statement, and
  log_autovacuum_min_duration was INT_MAX/1000 milliseconds, which is
  about 35min, which is too short for some practical uses.  Raise the
  maximum value to INT_MAX; the code that uses the parameters already
  supports that just fine.

Alvaro Herrera pushed:

- Fix PL/Python memory leak involving array slices.  Report and patch
  from Daniel Popowich, bug #5842 (with some debugging help from Alex

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Fujii Masao sent in another revision of the replication server timeout

Robert Haas sent in two revisions of a patch intended to fix some
infelicities in syncrep.

Roman Zotov sent in a patch to turn PREFERRED for type from a boolean
to an int2, which allows for an expression of precedence.

Thom Brown sent in a patch to allow users to set a default database
name other than postgres in initdb.

Piyush Newe sent in a patch intended to fix some infelicities in
century handling in to_date.

Heikki Linnakangas sent in another revision of the patch to enable
taking multiple base backups.

Radoslaw Smogura sent in two revisions of a patch to add a second
level buffer cache.

Kevin Grittner sent in two revisions of a patch intended to fix an
issue in SSI.

Nikhil Sontakke sent in two revisions of a patch to fix an issue with
a VACUUM FULL deadlock.

Jan Urbanski sent in another revision of the patch to add PL/PythonU


No Trackbacks


Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Form options