Go to file
Tom Lane 53ee9f52ce Remove the restriction originally coded into optimize_minmax_aggregates() that
MIN/MAX not be converted to use an index if the query WHERE clause contains
any volatile functions or subplans.

I had originally feared that the conversion might alter the behavior of such a
query with respect to a volatile function.  Well, so it might, but only in the
sense that the function would get evaluated at a subset of the table rows
rather than all of them --- and we have never made any such guarantee anyway.
(For instance, we don't refuse to use an index for an ordinary non-aggregate
query when one of the non-indexable filter conditions contains a volatile
function.)

The prohibition against subplans was because of worry that that case wasn't
adequately tested, which it wasn't, but it turns out to be possible to make
8.1 fail anyway:

regression=# select o.ten, (select max(unique2) from tenk1 i where ten = o.ten
or ten = (select f1 from int4_tbl limit 1)) from tenk1 o;
ERROR:  direct correlated subquery unsupported as initplan

This is due to bogus code in SS_make_initplan_from_plan (it's an initplan,
ergo it can't have any parParams).  Having fixed that, we might as well allow
subplans as well as initplans.
2006-04-28 20:57:49 +00:00
config Add CVS tag lines to files that were lacking them. 2006-03-11 04:38:42 +00:00
contrib Fix ltreeparentsel so it actually works ... 2006-04-27 18:24:35 +00:00
doc Add to item log_min_error_messages item: 2006-04-27 15:56:17 +00:00
src Remove the restriction originally coded into optimize_minmax_aggregates() that 2006-04-28 20:57:49 +00:00
aclocal.m4 Add new auto-detection of thread flags. 2004-04-23 18:15:55 +00:00
configure Turn off strict aliasing when using AIX xlc compiler. 2006-04-27 14:27:04 +00:00
configure.in Turn off strict aliasing when using AIX xlc compiler. 2006-04-27 14:27:04 +00:00
COPYRIGHT Update copyright for 2006. Update scripts. 2006-03-05 15:59:11 +00:00
GNUmakefile.in Build src/test/regress/README during tarball making like the other 2006-04-06 18:54:37 +00:00
Makefile please find attached an alternate submission which addresses open item 2004-10-06 08:50:02 +00:00
README Update README file. 2006-02-12 19:24:24 +00:00
README.CVS Some further editorializing on README.CVS. 2004-03-28 06:09:08 +00: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 including some of the more
common listed below:

C++ - http://thaiopensource.org/development/libpqxx/
JDBC - http://jdbc.postgresql.org
ODBC - http://odbc.postgresql.org
Perl - http://search.cpan.org/~dbdpg/
PHP - http://www.php.net
Python - http://www.initd.org/
Ruby - http://ruby.scripting.ca/postgres/

Other language binding are available from a variety of contributing
parties.

PostgreSQL also has a great number of procedural languages available,
a short but not complete list is below:

pl/c - Included in PostgreSQL core 
plPgsql - Included in PostgreSQL core - Similar to Oracle PL/sql
plPerl - Included in PostgreSQL core
plPHP - http://projects.commandprompt.com/projects/public/plphp
plPython - Included in PostgreSQL core
plJava - http://gborg.postgresql.org/project/pljava/projdisplay.php
plTcl - Included in PostgreSQL core

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/.