== PostgreSQL Weekly News - September 03 2007 == - Mailing list pgsql-announce

From David Fetter
Subject == PostgreSQL Weekly News - September 03 2007 ==
Date
Msg-id 20070903173657.GD4464@fetter.org
Whole thread Raw
List pgsql-announce
== PostgreSQL Weekly News - September 03 2007 ==

PGDay 2007 minicourse videos (in Italian) are up.
http://www.pghost.eu/node/36

A lively and civilized discussion is going on on -advocacy about
renaming to Postgres.

== PostgreSQL Product News ==

Another PostgreSQL Diff Tool 1.0.0_beta25 released.
http://pgfoundry.org/projects/apgdiff/

PostgreSQL Data Wizard 7.8 released.
http://www.sqlmaestro.com/products/postgresql/datawizard/

DBForms v.1.0 released.
http://dbconvert.com/convert-dbforms-access-to-postgresql.php

The Npgsql license is now BSD.
http://pgfoundry.org/projects/npgsql/

SE-PostgreSQL 8.2.4-1.0 released.
http://code.google.com/p/sepgsql/downloads/list

Slony-I 1.2.11 released.
http://slony.info/

== PostgreSQL Jobs for September ==

http://archives.postgresql.org/pgsql-jobs/2007-09/threads.php

== PostgreSQL Local ==

PostgreSQL Fall Conference will be October 20, 2007 in Portland.
http://www.postgresqlconference.org/

== PostgreSQL in the News ==

Planet PostgreSQL: http://www.planetpostgresql.org/

General Bits, Archives and occasional new articles:
http://www.varlena.com/GeneralBits/

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 to
pwn@pgug.de.


== Applied Patches ==

Tatsuo Ishii committed:

- In pgsql/doc/src/sgml/textsearch.sgml, fix broken markup.

Michael Meskes committed:

- In pgsql/src/interfaces/ecpg, fixed bug in Informix define handling.

Tom Lane committed:

- Fix MSVC build (I think) for recent pg_proc.h column addition.  This
  business with two independent build systems does kinda suck.

- In pgsql/src/backend/snowball, improve stylistic consistency of
  descriptions of built-in objects by avoiding initcap style --- the
  vast majority of the existing descriptions do not use an initial
  cap.  I didn't change places where the first word was all-cap.
  initdb not forced because this doesn't change any regression test
  results.

- Fix breakage of GIN support for varchar[] and cidr[] that I
  introduced in the operator-family rewrite.  I had mistakenly
  supposed that these could use the pg_amproc entries for text[] and
  inet[] respectively.  However, binary compatibility of the
  underlying types does not make two array types binary compatible
  (since they must differ in the header field that gives the element
  type OID), and so the index support code doesn't consider those
  entries applicable.  Add back the missing pg_amproc entries, and add
  an opr_sanity query to try to catch such mistakes in future.  Per
  report from Gregory Maxwell.

- Implement function-local GUC parameter settings, as per recent
  discussion.  There are still some loose ends: I didn't do anything
  about the SET FROM CURRENT idea yet, and it's not real clear whether
  we are happy with the interaction of SET LOCAL with function-local
  settings.  The documentation is a bit spartan, too.

- Since sort_bounded_heap makes state changes that should be made
  regardless of the number of tuples involved, it's incorrect to skip
  it when memtupcount = 1; the number of cycles saved is minuscule
  anyway.  An alternative solution would be to pull the state changes
  out to the call site in tuplesort_performsort, but keeping them near
  the corresponding changes in make_bounded_heap seems marginally
  cleaner.  Noticed by Greg Stark.

- Only use SGML indexterm "zone" when we want to get the entire
  section.  Some alignment cleanups.

- Make Gin/Gist text search tertiary index entries in the
  documentation.

- Apply a band-aid fix for the problem that 8.2 and up completely
  misestimate the number of rows likely to be produced by a query such
  as SELECT * FROM t1 LEFT JOIN t2 USING (key) WHERE t2.key IS NULL;
  What this is doing is selecting for t1 rows with no match in t2, and
  thus it may produce a significant number of rows even if the t2.key
  table column contains no nulls at all.  8.2 thinks the table
  column's null fraction is relevant and thus may estimate no rows
  out, which results in terrible plans if there are more joins above
  this one.  A proper fix for this will involve passing much more
  information about the context of a clause to the selectivity
  estimator functions than we ever have.  There's no time left to
  write such a patch for 8.3, and it wouldn't be back-patchable into
  8.2 anyway.  Instead, put in an ad-hoc test to defeat the normal
  table-stats-based estimation when an IS NULL test is evaluated at an
  outer join, and just use a constant estimate instead --- I went with
  0.5 for lack of a better idea.  This won't catch every case but it
  will catch the typical ways of writing such queries, and it seems
  unlikely to make things worse for other queries.

- Extend whole-row Var evaluation to cope with the case that the
  sub-plan generating the tuples has resjunk output columns.  This is
  not possible for simple table scans but can happen when evaluating a
  whole-row Var for a view.  Per example from Patryk Kordylewski.  The
  problem exists back to 8.0 but I'm not going to risk back-patching
  further than 8.2 because of the many changes in this area.

- Install check_stack_depth() protection in two recursive tsquery
  processing routines.  Per Heikki.

- Rewrite make_outerjoininfo's construction of min_lefthand and
  min_righthand sets for outer joins, in the light of bug #3588 and
  additional thought and experimentation.  The original methodology
  was fatally flawed for nests of more than two outer joins: it got
  the relationships between adjacent joins right, but didn't always
  come to the right conclusions about whether a join could be
  interchanged with one two or more levels below it.  This was largely
  caused by a mistaken idea that we should use the min_lefthand +
  min_righthand sets of a sub-join as the minimum left or right input
  set of an upper join when we conclude that the sub-join can't
  commute with the upper one.  If there's a still-lower join that the
  sub-join *can* commute with, this method led us to think that that
  one could commute with the topmost join; which it can't.  Another
  problem (not directly connected to bug #3588) was that
  make_outerjoininfo's processing-order-dependent method for enforcing
  outer join identity #3 didn't work right: if we decided that join A
  could safely commute with lower join B, we dropped all information
  about sub-joins under B that join A could perhaps not safely commute
  with, because we removed B's entire min_righthand from A's.  To fix,
  make an explicit computation of all inner join combinations that
  occur below an outer join, and add to that the full syntactic
  relsets of any lower outer joins that we determine it can't commute
  with.  This method gives much more direct enforcement of the outer
  join rearrangement identities, and it turns out not to cost a lot of
  additional bookkeeping.  Thanks to Richard Harris for the bug report
  and test case.

- Fix int8mul so that overflow check is applied correctly for
  INT64_IS_BUSTED case, per Florian Pflug.  Not back-patched since
  it's unclear that anyone but me still cares ...

- Relax permissions checks on dbsize functions, per discussion.
  Revert out all checks for individual-table-size functions, since
  anyone in the database could get approximate values from
  pg_class.relpages anyway.  Allow database-size to users with CONNECT
  privilege for the target database (note that this is granted by
  default).  Allow tablespace-size if the user has CREATE privilege on
  the tablespace (which is *not* granted by default), or if the
  tablespace is the default tablespace for the current database (since
  we treat that as implicitly allowing use of the tablespace).

- Fix aboriginal bug in _tarAddFile(): when complaining that the
  amount of data read from the temp file didn't match the file length
  reported by ftello(), the wrong variable's value was printed, and so
  the message made no sense.  Clean up a couple other coding
  infelicities while at it.

- Add a debug logging message when a resource manager rejects an
  attempted restart point.  Per suggestion from Simon Riggs.

- Restrict pgstattuple functions to superusers.  While the only one
  that's really a glaring security hole is bt_page_items, there's not
  a very good use-case for letting ordinary users use 'em, either.

- In pgsql/contrib/pgrowlocks/pgrowlocks.c, reduce the permissions
  check needed to use pgrowlocks() to having SELECT on the target
  table.  Per discussion.

- Improve behavior of log_lock_waits patch.  Ensure that something
  gets logged even if the "deadlock detected" ERROR message is
  suppressed by an exception catcher.  Be clearer about the event
  sequence when a soft deadlock is fixed: the fixing process might or
  might not still have to wait, so log that separately.  Fix race
  condition when someone releases us from the lock partway through
  printing all this junk --- we'd not get confused about our state,
  but the log message sequence could have been misleading, ie, a
  "still waiting" message with no subsequent "acquired" message.  Greg
  Stark and Tom Lane.

Bruce Momjian committed:

- In pgsql/doc/src/sgml/libpq.sgml, clean up whitespace.

- In pgsql/doc/src/sgml/libpq.sgml, properly indent SGML source of
  libpq.sgml.

- Only use SGML indexterm "zone" when we want to get the entire
  section.  Some alignment cleanups.

- Make Gin/Gist text search tertiary index entries in the
  documentation.

- In pgsql/doc/src/sgml/Makefile, add comment on why SGML
  -wfully-tagged flag is needed (for older SGML tool chains).

- In text search docs, properly use indexterm _zone_ only when we want
  an entire section, per Peter.

- In pgsql/doc/src/sgml/textsearch.sgml, fix docs so indexes can be
  built by commenting out GiST/GIN index entries in textsearch.sgml.

- In pgsql/doc/src/sgml/Makefile, add openjade warning -wfully-tagged
  to warn about missing close tags on older SGML toolchains.

- Make more logical index sections for text search.

- Update tsearch documentation wording.

- Text search documentation word improvements;  move configuration
  section to be more logical.

- Move full text search operators, functions, and data type sections
  into the main documentation, out of its own text search chapter.

- Properly indent SGML in textsearch.sgml.

- Mention configurations early in text search documentation to
  table/index section makes a little more sense.

- Small commit test for TODO.

- Update TODO.html.

- Update TODO with lost change, mostly completed items and whitespace
  corrections.  Not sure why these were not in CVS.  Researching.

- Batch of TODO updates, mostly completed item marking and whitespace
  fixes.

Magnus Hagander committed:

- In pgsql/src/tools/msvc/vcregress.bat, exclude tsearch2 contrib
  tests in regression tests, pending decision on exactly what will
  happen with contrib/tsearch2 now that it's in core.

- In pgsql/src/tools/msvc/Install.pm, install stopword files.

- Fix generation of snowball_create.sql on msvc builds.

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

ITAGAKI Takahiro sent in a patch which removes the unused
XLogCtlData.XLogCacheByte from src/backend/access/transam/xlog.c

Laurenz Albe sent in a patch which documents LDAP service lookup.

Andrew Dunstan sent in a patch which allows enums to be used in binary
queries.

Brendan Jurd sent in a patch which adds links for escaping strings to
appropriate parts of the documentation.

Gregory Stark sent in two revisions of a patch which fixes a bug in
the "Sort Method" code of EXPLAIN ANALYZE.



pgsql-announce by date:

Previous
From: Eero Teerikorpi
Date:
Subject: Continuent uni/cluster to support native PostgreSQL APIs
Next
From: Ned Lilly
Date:
Subject: xTuple releases OpenMFG and PostBooks 2.2: PostgreSQL-powered, Open Source Accounting, CRM, and ERP