Go to file
Bruce Momjian 05e27a9c20 Remove LEFT part of JOIN to pg_roles because of optimizer limitation:
> True, but they're not being used where you'd expect. This seems to be
> something to do with the fact that it's not pg_authid which is being
> accessed, but rather the view pg_roles.

I looked into this and it seems the problem is that the view doesn't
get flattened into the main query because of the has_nullable_targetlist
limitation in prepjointree.c.  That's triggered because pg_roles has
        '********'::text AS rolpassword
which isn't nullable, meaning it would produce wrong behavior if
referenced above the outer join.

Ultimately, the reason this is a problem is that the planner deals only
in simple Vars while processing joins; it doesn't want to think about
expressions.  I'm starting to think that it may be time to fix this,
because I've run into several related restrictions lately, but it seems
like a nontrivial project.

In the meantime, reducing the LEFT JOIN to pg_roles to a JOIN as per
Peter's suggestion seems like the best short-term workaround.
2006-02-12 19:31:14 +00:00
config Allow installation into directories containing spaces in the name. 2005-12-09 21:19:36 +00:00
contrib Add contrib/pg_freespacemap to display free space map information. 2006-02-12 03:55:53 +00:00
doc Not done: 2006-02-12 19:13:19 +00:00
src Remove LEFT part of JOIN to pg_roles because of optimizer limitation: 2006-02-12 19:31:14 +00:00
COPYRIGHT Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
GNUmakefile.in Remove the contents of the src/corba subdirectory: this has been dead code 2005-05-01 06:15:51 +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
aclocal.m4 Add new auto-detection of thread flags. 2004-04-23 18:15:55 +00:00
configure Fix up remaining library checks. 2006-02-10 11:35:47 +00:00
configure.in Fix up remaining library checks. 2006-02-10 11:35:47 +00:00

README

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