Обсуждение: == PostgreSQL Weekly News - March 21 2010 ==

Поиск
Список
Период
Сортировка

== PostgreSQL Weekly News - March 21 2010 ==

От
David Fetter
Дата:
== PostgreSQL Weekly News - March 21 2010 ==

Bug Fix Releases 8.4.3, 8.3.10, 8.2.16, 8.1.20, 8.0.24 and 7.4.28 are
out now.  Upgrade ASAP!

== PostgreSQL Product News ==

dtester 0.1, an event-driven asynchronous test harness, released.
http://www.bluegap.ch/projects/dtester/

pgbouncer 1.3.2 released.
http://pgfoundry.org/projects/pgbouncer/

pgreplay 0.9.0 beta, a program to replay logged SQL statements, released.
http://pgreplay.projects.postgresql.org/

== PostgreSQL 9.0 Feature of the Week ==

hstore no longer has a 64kB limit on key lengths, and does have btree
and hash operator classes, allowing for GROUP BY, DISTINCT, etc.

== PostgreSQL Jobs for March ==

http://archives.postgresql.org/pgsql-jobs/2010-03/threads.php

== PostgreSQL Local ==

JDCon East will take place March 25-28, 2010 in Philadelphia, PA, USA.
http://www.postgresqlconference.org/2010/east

The San Francisco PostgreSQL Users' Group will be having a Test Fest
Saturday April 3, 11am to 6pm.  There will be live video.  Help make
this a world-wide event!
http://wiki.postgresql.org/wiki/SFPUG_Beta_Test_Day

Linuxfest Northwest 2010 will take place in Bellingham, Washington,
USA on April 24 and 25.  Session, Booth and Sponsorship are available.
http://linuxfestnorthwest.org/

Andreas (ads) Scherbaum will be teaching a "PostgreSQL for Corporate
Use" course at the adult education center in Magdeburg, Germany May
3-7, 2010.  Details below:
http://andreas.scherbaum.la/blog/archives/650-PostgreSQL-Schulung-als-Bildungsurlaub-03.-07.05.2010-in-Magdeburg.html

PgCon 2010 will be held May 20-21 2010 in Ottawa with tutorials before
on the 18th and 19th.
http://www.pgcon.org/2010/registration.php

The CfP for OSBridge is open!  OSBridge will be June 1-4, 2010 in
Portland, Oregon.
http://opensourcebridge.org/events/2010/proposals/

OSCON will take place in Portland, Oregon July 19-23, 2010.
http://www.oscon.com/oscon2010


== 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.

== Applied Patches ==

Simon Riggs committed:

- In pgsql/src/backend/access/transam/xlog.c, remove incorrect comment
  from GetWriteRecPtr(): the return value is always correct, as
  described in comments at start of xlog.c

- In pgsql/doc/src/sgml/func.sgml, document that trig functions
  accept/return values in radians.

- In pgsql/doc/src/sgml/func.sgml, fix typo in math function docs,
  spotted by Heikki Linnakangas.

- In pgsql/doc/src/sgml/protocol.sgml, fix typo in streaming
  replication protocol docs.

- Add vacuum_defer_cleanup_age to postgresql.conf.sample.

- Reset btpo.xact following recovery of btree delete page.  Add
  btpo_xact field into WAL record and reset it from there, rather than
  using FrozenTransactionId which can lead to some corner case bugs.
  Problem report and suggested route to a fix from Heikki Linnakangas,
  details by me.

- Adjust comment in .history file to match recovery target specified.
  Comment present since 8.0 was never fully meaningful, since two
  recovery targets cannot be specified.  Refactor recovery target type
  to make this change and associated code easier to understand.  No
  change in function.  Bug report arising from internal support
  question.

- In pgsql/src/include/access/xlog_internal.h, update XLOG_PAGE_MAGIC
  to recognise WAL format changes.

- In pgsql/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c,
  minor tweaks on libpqrcv_connect(): ensure conninfo_repl[] is
  correctly sized and expand comment to explain otherwise undocumented
  use of replication connection parameter.

- Add connection messages for streaming replication.  log_connections
  was broken for a replication connection and no messages were
  displayed on either standby or primary, at any debug level.
  Connection messages needed to diagnose session drop/reconnect
  events.  Use LOG mode for now, discuss lowering in later releases.

- In pgsql/doc/src/sgml/high-availability.sgml, clarify docs about
  database parameter in streaming replication primary_conninfo.  Docs
  were unclear on whether or not database=replication was required,
  nor did they mention the FATAL error this causes if database
  parameter is mentioned explicitly, whatever its value.

- In pgsql/src/include/access/nbtree.h, further corrections of
  mismatching struct and btree SizeOf macros.  In this case,
  correction is to remove now unused fields from struct.  Since these
  were unused and full of garbage anyway, no version change.

Heikki Linnakangas committed:

- In pgsql/src/backend/replication/walsender.c, throw a nicer error
  message if a standby server attempts to connect while the master is
  still in recovery. We don't support cascading slaves yet.  Patch by
  Fujii Masao, with slightly changed wording.

- Add restartpoint_command option to recovery.conf.  Fix bug in %r
  handling in recovery_end_command, it always came out as 0 because
  InRedo was cleared before recovery_end_command was executed.  Also,
  always take ControlFileLock when reading checkpoint location for %r.
  The recovery_end_command bug and the missing locking was present in
  8.4 as well, that part of this patch will be backported separately.

- In pgsql/src/backend/access/transam/xlog.c, fix bug in %r handling
  in recovery_end_command, it always came out as 0 because InRedo was
  cleared before recovery_end_command was executed.  Also, always take
  ControlFileLock when reading checkpoint location for %r.  That
  didn't matter before, but in 8.4 bgwriter is active during recovery
  and can modify the control file concurrently.

Tom Lane committed:

- In pgsql/doc/src/sgml/ref/create_index.sgml, fix incorrect example
  in CREATE INDEX reference page, per Josh Kupershmidt.  Also fix and
  uncomment an old example of creating a GIST index, and make a couple
  of other minor editorial adjustments.

- Pass incompletely-transformed aggregate argument lists as separate
  parameters to transformAggregateCall, instead of abusing fields in
  Aggref to carry them temporarily.  No change in functionality but
  hopefully the code is a bit clearer now.  Per gripe from
  Gokulakannan Somasundaram.

- In pgsql/doc/src/sgml/func.sgml, fix missing parentheses for
  current_query(), per bug #5378.  Also make a couple other minor
  editorial improvements.

- In pgsql/src/include/access/nbtree.h, fix oversight in btpo.xact
  patch; it was in fact installing garbage in the xact field on
  replay, due to not writing out all the data in the wal log struct.

- Modify error context callback functions to not assume that they can
  fetch catalog entries via SearchSysCache and related operations.
  Although, at the time that these callbacks are called by elog.c, we
  have not officially aborted the current transaction, it still seems
  rather risky to initiate any new catalog fetches.  In all these
  cases the needed information is readily available in the caller and
  so it's just a matter of a bit of extra notation to pass it to the
  callback.  Per crash report from Dennis Koegel.  I've concluded that
  the real fix for his problem is to clear the error context stack at
  entry to proc_exit, but it still seems like a good idea to make the
  callbacks a bit less fragile for other cases.  Backpatch to 8.4.  We
  could go further back, but the patch doesn't apply cleanly.  In the
  absence of proof that this fixes something and isn't just paranoia,
  I'm not going to expend the effort.

- In pgsql/src/backend/storage/ipc/ipc.c, clear error_context_stack
  and debug_query_string at the beginning of proc_exit, so that we
  won't try to attach any context printouts to messages that get
  emitted while exiting.  Per report from Dennis Koegel, the context
  functions won't necessarily work after we've started shutting down
  the backend, and it seems possible that debug_query_string could be
  pointing at freed storage as well.  The context information doesn't
  seem particularly relevant to such messages anyway, so there's
  little lost by suppressing it.  Back-patch to all supported
  branches.  I can only demonstrate a crash with log_disconnections
  messages back to 8.1, but the risk seems real in 8.0 and before
  anyway.

Peter Eisentraut committed:

- Update broken and permanently moved links.

- Make typography consistent in the GRANT and REVOKE documentation.

- In pgsql/src/interfaces/libpq/fe-connect.c, fix peculiar,
  untranslatable message concatenation attempt

- Message style tuning for PL/Perl(U).

- Don't link PL/Python against LOCALMODLIBS.  This variable is
  apparently only for Python internally.  In newer releases of Python
  this variable pulls in more and more libraries that users are less
  likely to have, leading to potential build failures.

- Use data-type specific conversion functions also in plpy.execute.
  In PLy_spi_execute_plan, use the data-type specific
  Python-to-PostgreSQL conversion function instead of passing
  everything through InputFunctionCall as a string.  The equivalent
  fix was already done months ago for function parameters and return
  values, but this other gateway between Python and PostgreSQL was
  apparently forgotten.  As a result, data types that need special
  treatment, such as bytea, would misbehave when used with
  plpy.execute.

- In pgsql/src/pl/plperl/plperl.c, message style tuning.

- Prevent the injection of invalidly encoded strings by PL/Python into
  PostgreSQL with a few strategically placed pg_verifymbstr calls.

- Also print the libpq error message when lo_create or lo_open fails.

- Message tuning.

Magnus Hagander committed:

- In pgsql/doc/src/sgml/config.sgml, typo fixes.  Fujii Masao.

Bruce Momjian committed:

- In pgsql/src/tools/RELEASE_CHANGES, mention way to get commit
  details for release notes.

- In pgsql/doc/src/sgml/release.sgml, update sgml release note markup
  suggestions.

- In pgsql/doc/src/sgml/release-9.0.sgml, create 9.0 release notes;
  keep 9.0-alpha release notes in place.

- Move server-side languages up one section in the 9.0 release notes.

- In 9.0 release notes, move libpq/ecpg up into their own sections,
  like I did with server-side languages.

- Add links to documentation sections in 9.0 release notes.  Also
  update tagging instructions, and add id tags to a few documentation
  sections.

- Add more 9.0 release note documentation links.

- Remove 9.0 release notes xref's to HISTORY.html can be built.
  Document this restriction.

Robert Haas committed:

- In pgsql/src/backend/commands/tablecmds.c, forbid renaming columns
  of objects whose column names are system-generated.  KaiGai Kohei,
  with adjustments to the comments.

Michael Meskes committed:

- In src/interfaces/ecpg/preproc/ecpg.trailer, fixed ecpg parser to
  allow more than one C preprocessor command inside a declare section.

- ECPG only copied #include statements instead of processing them
  according to commandline option "-i". This change fixes this and
  adds a test case. It also honors #include_next, although this is
  probably never used for embedded SQL.

- In pgsql/src/interfaces/ecpg/ecpglib/prepare.c, correctly name
  functions in debug output in ecpglib. When the functions were
  refactored the debug output wasn't adjusted.

- Adjusted regression test results to the change I made in debug
  output for ecpglib.

- ECPG's parser now accepts and handles variables as arguments for the
  FREE command.  Informix allows variables as argument to the embedded
  SQL command FREE. Given that we only allow freeing cursors via FREE
  for compatibility reasons only we should do the same.

- In pgsql/src/tools/msvc/ecpg_regression.proj, adding special command
  line option that is now needed for the one ecpg regression test that
  was changed.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Pavel Stehule sent in four revisions of a patch to reduce the memory
usage in ispell dictionaries.

ITAGAKI Takahiro and Greg Smith sent in patches to implement
per-thread log files for pgbench -l.

Heikki Linnakangas sent in a patch which adds a restartpoint_command
option to recovery.conf which is executed at every restartpoint in
streaming replication.  It is analogous to the recovery_end_command,
which cleans up old WALs, and like recovery_end_command, takes a
parameter %r which tells it about the oldest WAL to retain.

KaiGai Kohei sent in a patch for 9.1 which refactors access control
for ALTER TABLE.

ITAGAKI Takahiro sent in another revision of the patch to fix the
locale issue on Windows.

Alvaro Herrera sent in a patch to deal with the RESET ALL access
control issue.

Yeb Havinga sent in a patch which changes EXPLAIN output to show the
actual parameters.

Heikki Linnakangas sent in a patch to keep trying to make progess in
recovery in standby mode by attempting to restore files first from
archive, then pg_xlog, then streaming from master.

Tim Landscheidt sent in a patch to clarify the generate_subscripts()
docs.