Skip to content

Wöchentlicher PostgreSQL Newsletter - 03. Januar 2010

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 03. Januar 2010 ==

RPM Packete für 8.5alpha3 sind verfügbar, Danke an Devrim für seine
harte Arbeit. Testen!

== PostgreSQL Produkt Neuigkeiten ==

Benetl 3.3, ein ETL Werkzeug für Dateien, die PostgreSQL
nutzen, ist erschienen.

Dataware Quick Application Suite 1.1, ein RAD Werkzeug, das
PostgreSQL unterstützt, ist erschienen.

Npgsql 2.0.8, ein .NET Treiber für PostgreSQL, ist erschienen.

psqlODBC 08.04.0200, ein ODBC Treiber für PostgreSQL, ist erschienen.

== PostgreSQL 8.5 Feature der Woche ==

\d in psql zeigt jetzt an, wie viele abgeleitete Tabellen eine
übergeordnete Tabelle hat, und \d+ listet die Tabellen auf.

== PostgreSQL Jobs im Januar ==

== PostgreSQL Lokal ==

Die PUG des New York Capital Districts trifft sich zu ihrem erstem
Meeting am 7. Januar 2010.

Stefan Keller gibt einen Kurs "Einführung in PostGIS/PostgreSQL" an
der HSR Hochschule für Technik Rapperswil (HSR) am 14. Januar 2010
in Zürich, Schweiz. Details für diese und weitere Veranstaltungen

Standhelfer für die Open Day Linux Conf AU in Wellington, Neuseeland
am 23. Januar 2010, 11-14 Uhr, werden gesucht. Kontaktiere
selena -at- um zu helfen.

Der Call for Papers für East ist offen bis zum 30. Januar 2010.
Details unter:

PGDay Kuba 2010 findet vom 4.-6. Februar 2010 in La Havana an der
Universität für Wissenschaftliche Informatik statt. Teilnehmer aus
Kuba, der Dominikanischen Republik und Venezuela sind eingeladen.

FOSDEM 2010 findet am 6. und 7. Februar 2010 in Brüssel,
Belgien statt.

Die Deutsche PostgreSQL User Gruppe hat einen Stand im Open Source
Part auf der Cebit 2010 vom 02. bis 06. März 2010 in Hannover,

Die Chemnitzer Linuxtage finden am 13. und 14. März in
Chemnitz, Deutschland statt.

PgCon 2010 findet vom 20.-21. Mai 2010 in Ottawa statt mit Tutorials
vorher am 18. und 19. Der Call for Papers ist offen!

Der Call for Proposals für die OSCON ist eröffnet. OSCON findet in
Portland, Oregon vom 19. bis 23. Juli 2010 statt.

== PostgreSQL in den News ==

Planet PostgreSQL:

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David

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

== Reviews ==

Robert Haas reviewed Pavel Stehule's patch to enable single- and
double-quoting behavior for psql variables.

Robert Haas reviewed ITAGAKI Takahiro's patch to add buffer usage
columns to contrib/pg_stat_statements.

Robert Haas reviewed the patch implementing red-black tree for GIN by
Teodor Sigaev.

Jaime Casanova reviewed Robert Haas's patch to add per-tablespace
random_page_cost and seq_page_cost settings.

== Angewandte Patches ==

Bruce Momjian committed:

- In pgsql/src/backend/port/win32/mingwcompat.c, remove non-ascii
  characters from source code.

- Add PGDLLIMPORT for binary_upgrade global variables so shared object
  libraries can access them.

- Remove PGDLLIMPORT used for binary upgrade;  must be on the externs,
  per Tom.

Peter Eisentraut committed:

- In pgsql/doc/src/sgml/plpgsql.sgml, small wording improvement and
  clarification in PL/pgSQL trigger documentation

- In pgsql/doc/src/sgml/Makefile, revert makefile refactoring (version
  1.123) because it doesn't work when building several files at once
  (e.g., gmake postgres-A4.pdf postgres-US.pdf).

- In pgsql/src/backend/catalog/sql_features.txt, update SQL
  conformance: search conditions on triggers are supported

- Fill in information schema column for trigger WHEN condition.

- Add information_schema.triggered_update_columns.  This reflects the
  recently added support for triggers on columns.

- In pgsql/src/backend/catalog/sql_features.txt, update SQL features
  list for aggregate ORDER BY support

- In pgsql/src/backend/catalog/sql_features.txt, update SQL features
  supported list.

Heikki Linnakangas committed:

- Previous fix for temporary file management broke returning a set
  from PL/pgSQL function within an exception handler.  Make sure we
  use the right resource owner when we create the tuplestore to hold
  returned tuples.  Simplify tuplestore API so that the caller doesn't
  need to be in the right memory context when calling tuplestore_put*
  functions.  tuplestore.c automatically switches to the memory
  context used when the tuplestore was created.  Tuplesort was already
  modified like this earlier.  This patch also removes the now useless
  MemoryContextSwitch calls from callers.  Report by Aleksei on
  pgsql-bugs on December 22, 2009.  Backpatch to 8.1, like the
  previous patch that broke this.

- In, pgsql/contrib/tablefunc/tablefunc.c, oops, previous backpatch
  applied incorrectly.

- In pgsql/contrib/tablefunc/tablefunc.c, remove a now unused local

Tom Lane committed:

- Add the ability to store inheritance-tree statistics in
  pg_statistic, and teach ANALYZE to compute such stats for tables
  that have subclasses.  Per my proposal of yesterday.  autovacuum
  still needs to be taught about running ANALYZE on parent tables when
  their subclasses change, but the feature is useful even without

- Add an index on pg_inherits.inhparent, and use it to avoid seqscans
  in find_inheritance_children().  This is a complete no-op in
  databases without any inheritance.  In databases where there are
  just a few entries in pg_inherits, it could conceivably be a small
  loss.  However, in databases with many inheritance parents, it can
  be a big win.

- Set errno to zero before invoking SSL_read or SSL_write.  It appears
  that at least in some Windows versions, these functions are capable
  of returning a failure indication without setting errno.  That puts
  us into an infinite loop if the previous value happened to be EINTR.
  Per report from Brendan Hill.  Back-patch to 8.2.  We could take it
  further back, but since this is only known to be an issue on Windows
  and we don't support Windows before 8.2, it does not seem worth the

- Revise pgstat's tracking of tuple changes to improve the reliability
  of decisions about when to auto-analyze.  The previous code depended
  on n_live_tuples + n_dead_tuples - last_anl_tuples, where all three
  of these numbers could be bad estimates from ANALYZE itself.  Even
  worse, in the presence of a steady flow of HOT updates and matching
  HOT-tuple reclamations, auto-analyze might never trigger at all,
  even if all three numbers are exactly right, because n_dead_tuples
  could hold steady.  To fix, replace last_anl_tuples with an
  accurately tracked count of the total number of committed tuple
  inserts + updates + deletes since the last ANALYZE on the table.
  This can still be compared to the same threshold as before, but it's
  much more trustworthy than the old computation.  Tracking this
  requires one more intra-transaction counter per modified table
  within backends, but no additional memory space in the stats
  collector.  There probably isn't any measurable speed difference; if
  anything it might be a bit faster than before, since I was able to
  eliminate some per-tuple arithmetic operations in favor of adding
  sums once per (sub)transaction.  Also, simplify the logic around
  pgstat vacuum and analyze reporting messages by not trying to fold
  VACUUM ANALYZE into a single pgstat message.  The original thought
  behind this patch was to allow scheduling of analyzes on parent
  tables by artificially inflating their changes_since_analyze count.
  I've left that for a separate patch since this change seems to stand
  on its own merit.

- In pgsql/src/backend/commands/analyze.c, dept of second thoughts:
  recursive case in ANALYZE shouldn't emit a pgstats message.  This
  might need to be done differently later, but with the current logic
  that's what should happen.

- Redefine Datum as uintptr_t, instead of unsigned long.  This is more
  in keeping with modern practice, and is a first step towards porting
  to Win64 (which has sizeof(pointer) > sizeof(long)).  Tsutomu
  Yamada, Magnus Hagander, Tom Lane.

- In pgsql/src/backend/storage/ipc/procarray.c, add missing 'static'

- In pgsql/src/backend/storage/ipc/standby.c, suppress compiler
  warning (pid_t isn't int everywhere).

- In pgsql/src/backend/libpq/auth.c, suppress compiler warning, per
  buildfarm member narwhal.

- Support "x IS NOT NULL" clauses as indexscan conditions.  This turns
  out to be just a minor extension of the previous patch that made "x
  IS NULL" indexable, because we can treat the IS NOT NULL condition
  as if it were "x < NULL" or "x > NULL" (depending on the index's
  NULLS FIRST/LAST option), just like IS NULL is treated like "x =
  NULL".  Aside from any possible usefulness in its own right, this is
  an important improvement for index-optimized MAX/MIN aggregates: it
  is now reliably possible to get a column's min or max value cheaply,
  even when there are a lot of nulls cluttering the interesting end of
  the index.

- Add an "argisrow" field to NullTest nodes, following a plan made way
  back in 8.2beta but never carried out.  This avoids repetitive tests
  of whether the argument is of scalar or composite type.  Also, be a
  bit more paranoid about composite arguments in some places where we
  previously weren't checking.

- check_exclusion_constraint didn't actually work correctly for index
  expressions: FormIndexDatum requires the estate's scantuple to
  already point at the tuple the values are supposedly being extracted
  from.  Adjust test case so that this type of confusion will be
  exposed.  Per report from hubert depesz lubaczewski.

- In pgsql/src/backend/utils/adt/regexp.c, fix similar_escape() to
  convert parentheses to non-capturing style.  This is needed to avoid
  unwanted interference with SUBSTRING behavior, as per bug #5257 from
  Roman Kononov.  Also, add some basic intelligence about character
  classes (bracket expressions) since we now have several behaviors
  that aren't appropriate inside a character class.  As with the
  previous patch in this area, I'm reluctant to back-patch since it
  might affect applications that are relying on the prior behavior.

- In pgsql/src/bin/psql/tab-complete.c, add missing
  schema-qualification in tab completion query.

- In pgsql/src/backend/access/nbtree/nbtutils.c, dept of second
  thoughts: my first cut at supporting "x IS NOT NULL" btree
  indexscans would do the wrong thing if index_rescan() was called
  with a NULL instead of a new set of scankeys and the index was DESC
  order, because sk_strategy would not get flipped a second time.  I
  think that those provisions for a NULL argument are dead code now as
  far as the core backend goes, but possibly somebody somewhere is
  still using it.  In any case, this refactoring seems clearer, and
  it's definitely shorter.

Robert Haas committed:

- Reject invalid input in int2vectorin.  Since the int2vector type is
  intended only for internal use, this patch doesn't worry about
  prettifying the error messages, which has the fringe benefit of
  avoiding creating additional translatable strings.  For a type
  intended to be used by end-users, we would want to do better, but
  the approach taken here seems like the correct trade-off for this
  case.  Caleb Welton.

Heikki Linnakangas committed:

- In pgsql/src/backend/access/transam/xlog.c, reset minRecoveryPoint
  at checkpoints, so that we don't uselessly update it in the control
  file at crash recovery following an archive recovery.  Per Fujii
  Masao and subsequent discussion.

Magnus Hagander committed:

- In pgsql/src/tools/msvc/, exclude part of the product
  name string that is localized in Japanese versions of MSVC when
  detecting MSVC version.  Hiroshi Inoue.

- In pgsql/src/port/win32env.c, make the win32 putenv() override
  update all present versions of the MSVCRxx runtime, not just the
  current + Visual Studio 6 (MSVCRT).  Clearly there can be an almost
  unlimited number of runtimes loaded at the same time.  Per report
  from Hiroshi Inoue.

- In pgsql/src/tools/msvc/clean.bat, delete solution cache file on
  clean, if it exists.

- Detect a 64-bit build environment on Windows, and generate the
  appropriate project files.  Based on the work of Tsutomu Yamada, but
  much refactored.

- In pgsql/src/backend/utils/mmgr/aset.c, silence compiler warning on
  64-bit windows build

- In pgsql/src/port/open.c, fix cast for _open_osfhandle().  Tsutomu

- Fix one more cast for _open_osfhandle().  Tsutomu Yamada.

- Support 64-bit shared memory when building on 64-bit Windows.
  Tsutomu Yamada

- In pgsql/src/include/pg_config.h.win32, set proper sizes for size_t
  and void* on 64-bit Windows builds.  Tsutomu Yamada.

- In pgsql/src/tools/msvc/, silence compiler warning about
  size of size_t being larger than the result variable it's stored in.
  We know this can never happen. Per discussion.

- In pgsql/src/include/port/win32.h, make ssize_t 64-bit on Win64, for
  compatibility with for example plpython.

Andrew Dunstan committed:

- Enable examples to compile on Windows.  Patch from Hiroshi Saito.

ITAGAKI Takahiro committed:

- In pgsql/src/backend/port/win32_shmem.c, silence compiler warning
  about printf format for HANDLE.

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

ITAGAKI Takahiro sent in a patch to make pg_bench error out better on
bad variable names.

Robert Haas sent in another revision of the patch to enable setting
random_page_cost and seq_page_cost at the tablespace level.

Zoltan Boszormenyi sent in a patch to add row counts to SELECT INTO
and CREATE TABLE AS [query].

Andreas Freund sent in a patch to delay fsync in database creation,
speeding up that operation.

Mark Cave-Ayland sent in two revisions of a patch to add subdirectory
support to DATA and DOCS in PGXS.

Hitoshi Harada sent in a patch to move the declaration of IntArray
from c.h to execQual.c, the only place it is currently used.

Pavel Stehule sent in a patch to add quote_ident and quote_literal,
using :"foo" and :'foo' respectively, to psql's variables.

Tatsuo Ishii sent in two patches to correct an issue where pgpool was
crashing PostgreSQL under certain conditions.

Heikki Linnakangas sent in a patch in response to Fujii Masao's patch
for streaming replication.

Teodor Sigaev sent in another revision of the k-nearest-neighbor

Teodor Sigaev sent in an updated patch to add point operations to
GiST.  Robert Haas reviewed and revised this patch.

Hitoshi Harada sent in a patch to add ROWS|RANGE n PRECEDING|FOLLOWING
to windowing functions.

Simon Riggs sent in a patch which expands pg_cancel_backend()'s
functionality to allow it to cancel and idle transaction.

Gurjeet Singh sent in a patch to re-allow SET ROLE in SECURITY DEFINER

Simon Riggs sent in a patch to implement recovery conflict signalling
using SIGUSR1 multiplexing, then uses a SessionCancelPending mode
similar to Joachim Wieland's TransactionCancelPending patch.

John Naylor sent in another revision of the patch to refactor BKI.

Magnus Hagander sent in a patch to fix an issue in win64 where
socket definitions are not declared correctly.

KaiGai Kohei sent in another revision of the patch to disallow ALTER
COLUMN...RENAME TO... in the case where a column name is inherited
from multiple relations.

Magnus Hagander sent in a patch to change to processing in
the msvc build environment.

David Fetter sent in a patch to add tab completion for DO blocks in

ITAGAKI Takahiro sent in another revision of the patch to check
correctness of variable names in pgbench.


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