== PostgreSQL Weekly News - March 25 2007 ==

The deadline for Summer of Code projects has been extended to Monday,
March 26th.  Get your submissions in!
http://www.postgresql.org/developer/summerofcode

Pavel Stehule has published his Czech language training materials.
http://www.pgsql.cz/index.php/Jednodenn%C3%AD_%C5%A1kolen%C3%AD_PostgreSQL

== PostgreSQL Product News ==

Devrim GUNDUZ pushed postgresql-dbi-link to Fedora and Red Hat
Enterprise Linux Extras (EPEL).  This is the first PostgreSQL-related
package in EL.

PostgreSQL Maestro 7.3 released.
http://www.sqlmaestro.com/products/postgresql/maestro/

GT portalBase released.
http://www.gtportalbase.com

phpPgAdmin 4.1.1 released.
http://phppgadmin.sourceforge.net/

Slony-I 1.1.9 and 1.2.9 are out.  Schedule those upgrades :)
http://main.slony.info/

Sparsegraph 0.1 released.
http://pgfoundry.org/projects/sparsegraph/

== PostgreSQL Jobs for March ==

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

== PostgreSQL Local ==

Everything this week was global.

== 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,
Devrim GUNDUZ and Robert Treat.

To get your submission into the upcoming issue, make sure it arrives
at [EMAIL PROTECTED] or in German at [EMAIL PROTECTED] by Sunday at 3:00pm
Pacific Time.

== Applied Patches == 

Tatsuo Ishii committed:

- Add new encoding EUC_JIS_2004 and SHIFT_JIS_2004, along with new
  conversions among EUC_JIS_2004, SHIFT_JIS_2004 and UTF-8.  Bumped
  catalog version.

- Allow 4 bytes UTF-8 (UCS-4 range 00010000-001FFFFF). This is
  necessary to support JIS X 0213 <--> UTF-8 conversion.

Alvaro Herrera committed:

- Set the node properly, per Tom.

- Separate the code to start a new worker into its own function.  The
  code is exactly the same, modulo whitespace.

- Separate fetch of pg_autovacuum tuple into its own function.

- We no longer need to palloc the VacuumStmt node; keeping it on the
  stack is simpler.

- Remove the currently unused FRONTEND case in dllist.c.  This allows
  the usage of palloc instead of malloc, which means a list can be
  freed simply by deleting the memory context that contains it.

Teodor Sigaev committed:

- In contrib/tsearch2/wordparser/parser.c, fix parser bug on Windows
  with UTF8 encoding and C locale, the reason was sizeof(wchar_t) = 2
  instead of 4.

Jan Wieck committed:

- Add three new regexp functions: regexp_matches,
  regexp_split_to_array, and regexp_split_to_table. These functions
  provide access to the capture groups resulting from a POSIX regular
  expression match, and provide the ability to split a string on a
  POSIX regular expression, respectively. Patch from Jeremy Drake;
  code review by Neil Conway, additional comments and suggestions from
  Tom and Peter E.  This patch bumps the catversion, adds some
  regression tests, and updates the docs.

- Bumping catversion due to changes to pg_trigger and pg_rewrite.

- Change pg_trigger and extend pg_rewrite in order to allow triggers
  and rules to be defined with different, per session controllable,
  behaviors for replication purposes.

Tom Lane committed:

- Seems some people have been forgetting to run autoheader.

- Add -lcrypto as one of the possible link dependencies of libkrb5.
  Per report from Jim Rosenberg.  This possibly should get
  back-patched, but I'm a bit suspicious of it still because of the
  lack of prior reports.

- Fix plancache's invalidation callback to do the right thing for a SI
  reset event, namely invalidate everything.  This oversight probably
  explains the rare failures that some buildfarm machines have been
  showing for the plancache regression test.

- Make _SPI_execute_plan pass the query source string down to
  ProcessUtility if possible.  I had left this undone in the first
  pass at the API change for ProcessUtility, but forgot to revisit it
  after the plancache changes made it possible to do it.

- Remove the prohibition on executing cursor commands through
  SPI_execute.  Vadim had included this restriction in the original
  design of the SPI code, but I'm darned if I can see a reason for it.
  I left the macro definition of SPI_ERROR_CURSOR in place, so as not
  to needlessly break any SPI callers that are checking for it, but
  that code will never actually be returned anymore.

- Clean up the representation of special snapshots by including a
  "method pointer" in every Snapshot struct.  This allows removal of
  the case-by-case tests in HeapTupleSatisfiesVisibility, which should
  make it a bit faster (I didn't try any performance tests though).
  More importantly, we are no longer violating portable C practices by
  assuming that small integers are distinct from all pointer values,
  and HeapTupleSatisfiesDirty no longer has a non-reentrant API
  involving side-effects on a global variable.  There were a couple of
  places calling HeapTupleSatisfiesXXX routines directly rather than
  through the HeapTupleSatisfiesVisibility macro.  Since these places
  had to be changed anyway, I chose to make them go through the macro
  for uniformity.  Along the way I renamed HeapTupleSatisfiesSnapshot
  to HeapTupleSatisfiesMVCC to emphasize that it's only used with
  MVCC-type snapshots.  I was sorely tempted to rename
  HeapTupleSatisfiesVisibility to HeapTupleSatisfiesSnapshot, but
  forebore for the moment to avoid confusion and reduce the likelihood
  that this patch breaks some of the pending patches.  Might want to
  reconsider doing that later.

- Fix broken markup.

- Adjust DatumGetBool macro so that it isn't fooled by garbage in the
  Datum to the left of the actual bool value.  While in most cases
  there won't be any, our support for old-style user-defined functions
  violates the C spec to the extent of calling functions that might
  return char or short through a function pointer declared to return
  "char *", which we then coerce to Datum.  It is not surprising that
  the result might contain garbage high-order bits ... what is
  surprising is that we didn't see such cases long ago.  Per report
  from Magnus.

- Fix plancache so that any required replanning is done with the same
  search_path that was active when the plan was first made.  To do
  this, improve namespace.c to support a stack of "override" search
  path settings (we must have a stack since nested replan events are
  entirely possible).  This facility replaces the "special namespace"
  hack formerly used by CREATE SCHEMA, and should be able to support
  per-function search path settings as well.

- Arrange for PreventTransactionChain to reject commands submitted as
  part of a multi-statement simple-Query message.  This bug goes all
  the way back, but unfortunately is not nearly so easy to fix in
  existing releases; it is only the recent ProcessUtility API change
  that makes it fixable in HEAD.  Per report from William Garrison.  

- Allow DROP TABLESPACE to succeed (with a warning) if the pg_tblspc
  symlink doesn't exist.  This allows DROP to be used to clean out the
  pg_tablespace catalog entry in a situation where a previous DROP
  attempt failed before committing but after having removed the
  directories and symlink.  Per report from William Garrison.  Even
  though his test case depends on an unrelated bug in
  PreventTransactionChain, it's certainly possible for this situation
  to arise due to other problems, eg a system crash at just the right
  time.

- Fix some problems with selectivity estimation for partial indexes.
  First, genericcostestimate() was being way too liberal about
  including partial-index conditions in its selectivity estimate,
  resulting in substantial underestimates for situations such as an
  indexqual "x = 42" used with an index on x "WHERE x >= 40 AND x <
  50".  While the code is intentionally set up to favor selecting
  partial indexes when available, this was too much...  Second,
  choose_bitmap_and() was likewise easily fooled by cases of this
  type, since it would similarly think that the partial index had
  selectivity independent of the indexqual.  Fixed by using
  predicate_implied_by() rather than simple equality checks to
  determine redundancy.  This is a good deal more expensive but I
  don't see much alternative.  At least the extra cost is only paid
  when there's actually a partial index under consideration.  Per
  report from Jeff Davis.  I'm not going to risk back-patching this,
  though.

- Further buildfarm experience shows that actually we can't run the
  plancache test in parallel with the rules test at all, because the
  former wants to create a couple of temp views, which can sometimes
  show up in the latter's output.  Let's try it in the next parallel
  group instead.

- Fix 8.2 breakage of domains over array types, and add a regression
  test case to cover it.  Per report from Anton Pikhteryev.

Bruce Momjian committed:

- Add to TODO: "Allow BEFORE INSERT triggers on views."

- Add to TODO: "Add more logical syntax CLUSTER table ORDER BY index;
  support current syntax for backward compatibility."

- Document that LDAP URLs should be double-quoted in pg_hba.conf
  because commas are often present in the URL.  Backpatch to 8.2.X.

- Cleanup for procarray.c.

- Add to TODO: "Fix cases where invalid byte encodings are accepted by
  the database, but throw an error on SELECT."

- In pgsql/src/bin/pg_dump/pg_dump.c, add comment that pg_dump
  'append' format is used only by pg_dump, per Dave Page.

- Add to TODO in the CLUSTER section: "Add VERBOSE option to report
  tables as they are processed, like VACUUM VERBOSE."

- Nikolay Samokhvalov's version of xmlpath().

- In pg_dump, change strcasecmp to pg_strcasecmp.

- Nikolay Samokhvalov's patch which adds xmlpath() to evaluate XPath
  expressions, with namespaces support.

- Allow the pgstat process to restart immediately after a receiving
  SIGQUIT signal, rather than waiting for PGSTAT_RESTART_INTERVAL.

- Properly enforce pg_dump -F formation options; only single letter or
  full words support, per report from Mark Stosberg.

- Remove tabs from SGML files.

- Add to TODO: "During index creation, pre-sort the tuples to improve
  build speed."

- Remove TODO item, not wanted: "Add NUMERIC division operator that
  doesn't round?"

- Add URL for TODO: "Add locale-aware MONEY type, and support multiple
  currencies."

- Add URL for TODO: "Allow accurate statistics to be collected on
  indexes with more than one column or expression indexes, perhaps
  using per-index statistics."

- In FAQ, reference upgrade info via URL.

- In FAQ_DEV, Remove last line of patch license, per Andreas
  Zeugswetter.

- Add URL for TODO: "Simplify ability to create partitioned tables."

- Add to TODO: Allow sequential scans to take advantage of other
  concurrent sequential scans, also called "Synchronised Scanning"

Magnus Hagander committed:

- Add support for installing NLS files, and update support to use
  gettext from gnuwin32.

- In pgsql/src/tools/msvc/Install.pm, install contrib sql and readme
  files.

- In pgsql/src/tools/msvc/Mkvcbuild.pm, properly parse the name of
  contrib modules that aren't named the same way as their directory
  (notably xml2/pgxml and intarray/_int).

- Forgot commit: support for special-cases in pgcrypto in
  pgsql/src/tools/msvc/getregress.pl.

- Add support for running contribcheck on MSVC.

- Make the MSVC build generate SQL files for /contrib based on
  .sql.in.

- In pgsql/src/tools/msvc/Solution.pm, add define to exclude
  configured libraries, to be able to easily build a stripped down
  version of libpq.  To be used by the installer.

- Remove stray headers for old sysv shmem emulation from
  pgsql/src/include/port/win32.h.  Also remove headers for old sysv
  semaphore emulation that were forgotten when that was changed about
  a year ago.

- Added file needed for PL regression test to pgsql/src/tools/msvc/getregress.pl

- Add documentation about vcregress.

- In  pgsql/src/tools/msvc/vcregress.bat, add support for running
  regression tests on procedural languages.

- Properly return exitcode when regression tests fails.

- Native shared memory implementation for win32.  Uses same underlying
  tech as before, but not the sysv emulation layer.

- In pgsql/src/tools/msvc/Mkvcbuild.pm, change ecpglib to require
  libpgport, per Andrew Dunstan.

== Rejected Patches (for now) ==

Zdenek Kotala's patch to allow people to switch from default build-in
timezone to another timezone source - typically to OS timezone
location.  This was considered too invasive compared to the
alternative of removing the old file and symlinking to a new one.

Bruce Momjian's patch to improve how quickly VACUUM can expire rows.
It missed some important cases including CURSORs.

== Pending Patches ==

Magnus Hagander sent in a patch that lets people pull some stats out
of the bgwriter in order to track things.

Heikki Linnakangas sent in a patch intended to make CLUSTER an
MVCC-safe operation.

Jeff Davis sent in another revision of his Synchronized Scan patch,
this time reporting every 16 pages.

ITAGAKI Takahiro sent in another version of his Load distributed
checkpoint patch.

Pavan Deolasee sent in another revision of his HOT WIP patch.

Alvaro Herrera sent in a WIP patch to implement multiple concurrent
workers in autovacuum.



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

               [EMAIL PROTECTED]

Reply via email to