Base de données relationnelle
Find a file
Tom Lane 0dec3226ee Fix thinko in previous patch for optimizing EXISTS-within-EXISTS.
When recursing after an optimization in pull_up_sublinks_qual_recurse, the
available_rels value passed down must include only the relations that are
in the righthand side of the new SEMI or ANTI join; it's incorrect to pull
up a sub-select that refers to other relations, as seen in the added test
case.  Per report from BangarRaju Vadapalli.

While at it, rethink the idea of recursing below a NOT EXISTS.  That is
essentially the same situation as pulling up ANY/EXISTS sub-selects that
are in the ON clause of an outer join, and it has the same disadvantage:
we'd force the two joins to be evaluated according to the syntactic nesting
order, because the lower join will most likely not be able to commute with
the ANTI join.  That could result in having to form a rather large join
product, whereas the handling of a correlated subselect is not quite that
dumb.  So until we can handle those cases better, #ifdef NOT_USED that
case.  (I think it's okay to pull up in the EXISTS/ANY cases, because SEMI
joins aren't so inflexible about ordering.)

Back-patch to 8.4, same as for previous patch in this area.  Fortunately
that patch hadn't made it into any shipped releases yet.
2011-06-20 14:34:06 -04:00
config Suppress -arch switches in the output of ExtUtils::Embed. 2011-06-14 17:13:58 -04:00
contrib Replace strdup() with pstrdup(), to avoid leaking memory. 2011-05-18 22:35:49 -04:00
doc Don't use "cp -i" in the example WAL archive_command. 2011-06-17 19:13:18 -04:00
src Fix thinko in previous patch for optimizing EXISTS-within-EXISTS. 2011-06-20 14:34:06 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:08 +02:00
aclocal.m4 Add new auto-detection of thread flags. 2004-04-23 18:15:55 +00:00
configure Suppress -arch switches in the output of ExtUtils::Embed. 2011-06-14 17:13:58 -04:00
configure.in Tag 8.4.8. 2011-04-15 00:17:14 -03:00
COPYRIGHT Update copyright for 2009. 2009-01-01 17:24:05 +00:00
GNUmakefile.in Back-patch replacement of README.CVS with README.git. 2010-09-21 14:43:06 -04:00
Makefile Remove remains of old depend target. 2007-01-20 17:16:17 +00:00
README Point to our download URL, rather than listing interface in the README 2008-05-06 22:02:12 +00:00
README.git Back-patch replacement of README.CVS with README.git. 2010-09-21 14:43:06 -04:00

PostgreSQL Database Management System
=====================================
  
This directory contains the source code distribution of the PostgreSQL
database management system.

PostgreSQL is an advanced object-relational database management system
that supports an extended subset of the SQL standard, including
transactions, foreign keys, subqueries, triggers, user-defined types
and functions.  This distribution also contains C language bindings.

PostgreSQL has many language interfaces, many of which are listed here:

	http://www.postgresql.org/download

See the file INSTALL for instructions on how to build and install
PostgreSQL.  That file also lists supported operating systems and
hardware platforms and contains information regarding any other
software packages that are required to build or run the PostgreSQL
system.  Changes between all PostgreSQL releases are recorded in the
file HISTORY.  Copyright and license information can be found in the
file COPYRIGHT.  A comprehensive documentation set is included in this
distribution; it can be read as described in the installation
instructions.

The latest version of this software may be obtained at
http://www.postgresql.org/download/.  For more information look at our
web site located at http://www.postgresql.org/.