== PostgreSQL Weekly News - December 07 2008 == - Mailing list pgsql-announce

From David Fetter
Subject == PostgreSQL Weekly News - December 07 2008 ==
Date
Msg-id E3A2CDC8913E4D928FE32E5D4764F634@lvmi.lt
Whole thread Raw
List pgsql-announce
== PostgreSQL Weekly News - December 07 2008 ==

Lorenzo Alberton has written an article comparing case handling in
identifiers for several RDBMSs.
http://www.alberton.info/dbms_identifiers_and_case_sensitivity.html

Fedora 10 now has its own pgsqlrpms repository.
http://yum.pgsqlrpms.org/

== PostgreSQL Product News ==

perl-DBD-PG 2.11.6 released.
http://search.cpan.org/dist/DBD-Pg/

check_postgres 2.5.0 released.
http://bucardo.org/check_postgres/

Hubert (depesz) Lubaczewski has released an explain analyze tool.
http://www.depesz.com/index.php/2008/12/04/explaindepeszcom/

== PostgreSQL Jobs for December ==

http://archives.postgresql.org/pgsql-jobs/2008-12/threads.php

== PostgreSQL Local ==

The Call for Papers for FOSDEM 2009 has begun.  PostgreSQL will have a
booth and will share a developer room with the BSD groups.  Please
submit your talks to "fosdem (at) postgresql (dot) eu" until 2009-01-02.

PGCon Brazil will be take place October 23-24 2009 at Unicamp in
Campinas, Sao Paulo state.

== PostgreSQL in the News ==

Planet PostgreSQL: http://planet.postgresql.org/

PostgreSQL Weekly News is brought to you this week by David Fetter
and Devrim GUNDUZ.

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

Peter Eisentraut committed:

- Fixed typo in pgsql/doc/src/sgml/installation.sgml.

- In pgsql/doc/src/sgml/ref/psql-ref.sgml, small correction.

- In pgsql/doc/src/sgml/ref/select.sgml, add braces to clarify syntax
  synopsis.

- In pgsql/doc/src/sgml/keywords.sgml, update key words table to 8.4
  and SQL:2008.

- In pgsql/GNUmakefile.in, call genhtml with --prefix option so local
  build paths don't appear in the coverage output.

- Default values for function arguments.  Pavel Stehule, with some
  tweaks by Peter Eisentraut

- In pgsql/src/backend/utils/adt/misc.c, better descriptions in
  pg_get_keywords(), consistent with the documentation appendix on key
  words.  catdesc was originally intended as computer-readable, but
  since we ended up adding catcode, we can have more elaborate
  descriptions.

- Set up ar, dlltool, dllwrap, and windres for cross-compiling if
  necessary.  Plus some makefile cleanup.  Part of a patch from
  Richard Evans

Michael Meskes committed:

- Removed port testing from ecpg.

Tom Lane committed:

- In pgsql/src/tools/msvc/vcregress.pl, remove the last traces of
  --temp-port.

- Ensure that the contents of a holdable cursor don't depend on
  out-of-line toasted values, since those could get dropped once the
  cursor's transaction is over.  Per bug #4553 from Andrew Gierth.
  Back-patch as far as 8.1.  The bug actually exists back to 7.4 when
  holdable cursors were introduced, but this patch won't work before
  8.1 without significant adjustments.  Given the lack of field
  complaints, it doesn't seem worth the work (and risk of introducing
  new bugs) to try to make a patch for the older branches.

- Fix an oversight in the code that makes transitive-equality
  deductions from outer join clauses.  Given, say, ... FROM a LEFT
  JOIN b ON a.a1 = b.b1 WHERE a.a1 = 42; we'll deduce a clause b.b1 =
  42 and then mark the original join clause redundant (we can't remove
  it completely for reasons I don't feel like squeezing into this log
  entry).  However the original implementation of that wasn't
  bulletproof, because clause_selectivity() wouldn't honor this_selec
  if given nonzero varRelid --- which in practice meant that it worked
  as desired *except* when considering index scan quals.  Which
  resulted in bogus underestimation of the size of the indexscan
  result for an inner indexscan in an outer join, and consequently a
  possibly bad choice of indexscan vs. bitmap scan.  Fix by
  introducing an explicit test into clause_selectivity().  Also, to
  make sure we don't trigger that test in corner cases, change the
  convention to be that this_selec > 1, not this_selec = 1, means it's
  been marked redundant.  Per trouble report from Scara Maccai.
  Back-patch to 8.2, where the problem was introduced.

- In pgsql/src/backend/optimizer/plan/subselect.c, don't try to
  optimize EXISTS subqueries with empty FROM-lists: we need to form a
  join and that case doesn't have anything to join to.  (We could
  probably make it work if we didn't pull up the subquery, but it
  seems to me that the case isn't worth extra code.)  Per report from
  Greg Stark.

Heikki Linnakangas committed:

- In pgsql/src/backend/utils/adt/formatting.c, modify the new
  to_timestamp implementation so that end-of-format-string is treated
  like a non-digit separator.  This fixes the inconsistency in examples
  like: to_timestamp('2008-01-2', 'YYYY-Michael Meskes-DD') didn't
  work, while to_timestamp('2008-1-02', 'YYYY-Michael Meskes-DD') did.

- In pgsql/src/backend/utils/adt/tsginidx.c, use PG_GETARG_TEXT_PP
  instead of PG_GETARG_TEXT_P in the new gin_cmp_tslexeme and
  gin_cmp_prefix functions.  Should shave off a few cycles from GIN
  operations.

- In pgsql/src/backend/access/transam/xlog.c, if pg_stop_backup() is
  called just after switching to a new xlog file, wait for the
  previous instead of the new file to be archived.  Based on patch by
  Simon Riggs.

- Small comment fixes in pgsql/src/backend/storage/freespace/freespace.c.

- Introduce visibility map.  The visibility map is a bitmap with one
  bit per heap page, where a set bit indicates that all tuples on the
  page are visible to all transactions, and the page therefore doesn't
  need vacuuming.  It is stored in a new relation fork.  Lazy vacuum
  uses the visibility map to skip pages that don't need vacuuming.
  Vacuum is also responsible for setting the bits in the map.  In the
  future, this can hopefully be used to implement index-only-scans,
  but we can't currently guarantee that the visibility map is always
  100% up-to-date.  In addition to the visibility map, there's a new
  PD_ALL_VISIBLE flag on each heap page, also indicating that all
  tuples on the page are visible to all transactions.  It's important
  that this flag is kept up-to-date.  It is also used to skip
  visibility tests in sequential scans, which gives a small
  performance gain on seqscans.

- In pgsql/src/include/catalog/catversion.h, forgot to bump catalog
  version in the visibility map patch.

- Utilize the visibility map in autovacuum, too.  There was an
  oversight in the visibility map patch that because autovacuum always
  sets VacuumStmt->freeze_min_age, visibility map was never used for
  autovacuum, only for manually launched vacuums.  This patch
  introduces a new scan_all field to VacuumStmt, indicating explicitly
  whether the visibility map should be used, or the whole relation
  should be scanned, to advance relfrozenxid.  Anti-wraparound vacuums
  still need to scan all pages.

- In pgsql/src/backend/access/heap/visibilitymap.c, MAPSIZE macro
  needs to use MAXALIGN(SizeOfPageHeaderData) instead of
  SizeOfPageHeaderData, like PageGetContents does. Per report by Pavan
  Deolasee.

Alvaro Herrera committed:

- In pgsql/src/backend/utils/misc/guc.c, minor code embellishments.

- Fix a couple of snapshot management bugs in the new ResourceOwner
  world: non-writable large objects need to have their snapshots
  registered on the transaction resowner, not the current portal's,
  because it must persist until the large object is closed (which the
  portal does not).  Also, ensure that the serializable snapshot is
  recorded by the transaction resource owner too, even when a
  subtransaction has changed the current resource owner before
  serializable is taken.  Per bug reports from Pavan Deolasee.

- Desultorily enclose programlisting tags in CDATA, to get rid of some
  obnoxious SGML-escaping.

Magnus Hagander committed:

- Change wildcard cerfificate mapping to be much smaller - we now only
  match the * character at the beginning of a pattern, and it does not
  match subdomains.  Since this means we no longer need fnmatch,
  remove the imported implementation from port, along with the
  autoconf check for it.

- In pgsql/doc/src/sgml/libpq.sgml, documentation for wildcard
  certificates patch.

- Properly unregister OpenSSL callbacks when libpq is done with it's
  connection.  This is required for applications that unload the libpq
  library (such as PHP) in which case we'd otherwise have pointers to
  these functions when they no longer exist.  This needs a bit more
  testing before we can consider a backpatch, so not doing that yet.
  In passing, remove unused functions in backend/libpq.  Bruce Momjian
  and Magnus Hagander, per report and analysis by Russell Smith.

- In pgsql/src/interfaces/libpq/fe-secure.c, comment said we don't
  free the lockarray, and why. The proper fix is to make the code do
  what the comment says...

Bruce Momjian committed:

- In pgsql/src/interfaces/libpq/fe-secure.c, fix typo in recent SSL
  unload patch.  Kris Jurka

- In pgsql/doc/src/sgml/wal.sgml, document that non-data journaling is
  a recommended mount option.

- Allow CREATE OR REPLACE VIEW to add columns to the _end_ of the
  view.  Robert Haas.

Teodor Sigaev committed:

- In pgsql/src/backend/access/gist/gistscan.c, initialize
  GISTScanOpaque->qual_ok even if there is no conditions.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Hitoshi Harada sent in four more revisions of his windowing functions
patch.

Pavel Stehule sent in another revision of his default values for
function parameters patch.

Zdenek Kotala sent in a patch updating the pg_upgrade script.

Magnus Hagander sent a patch to update the docs for work_mem so it
points to autovacuum_max_workers.

Hannes Eder sent in a patch to add a skyline operator.

Heikki Linnakangas sent in a patch to speed up GIN index builds.

ITAGAKI Takahiro sent in another patch implementing
pg_stat_statements.

Alvaro Herrera sent in two revisions of a patch to fix an assert bug
in lo_open().

Euler Taveira da Oliviera sent in a patch which enhances portability
of "designated initializers."

KaiGai Kohei sent in two more sets of SE-PostgreSQL patches.

David Rowley sent in some doc massaging for Hitoshi Harada's windowing
functions patch.

Martin Pihlak sent in another revision of his SQL/MED connection
manager patch.

Heikki Linnakangas sent in another patch for the visibility map.

Heikki Linnakangas sent in a patch to fix pg_stop_backup.

Emmanuel Cecchet sent in another patch to fix temp table behavior in
transactions.

Josh Williams sent in a patch to make \d display a sequence's owner in
psql.

Kurt Harriman sent in a flock of patches to allow people to use C++ in
SPI code, etc.  Discussion is ongoing.


---------------------------(end of broadcast)---------------------------
-To unsubscribe from this list, send an email to:

               pgsql-announce-unsubscribe@postgresql.org


pgsql-announce by date:

Previous
From: David Fetter
Date:
Subject: == PostgreSQL Weekly News - December 07 2008 ==
Next
From: Liraz Siri
Date:
Subject: spreading the word on new PostgreSQL software appliance