Base de données relationnelle
Find a file
Tom Lane 30b4ccdab7 Further adjustments to PlaceHolderVar removal.
A new test case from Andreas Seltenreich showed that we were still a bit
confused about removing PlaceHolderVars during join removal.  Specifically,
remove_rel_from_query would remove a PHV that was used only underneath
the removable join, even if the place where it's used was the join partner
relation and not the join clause being deleted.  This would lead to a
"too late to create a new PlaceHolderInfo" error later on.  We can defend
against that by checking ph_eval_at to see if the PHV could possibly be
getting used at some partner rel.

Also improve some nearby LATERAL-related logic.  I decided that the check
on ph_lateral needed to take precedence over the check on ph_needed, in
case there's a lateral reference underneath the join being considered.
(That may be impossible, but I'm not convinced of it, and it's easy enough
to defend against the case.)  Also, I realized that remove_rel_from_query's
logic for updating LateralJoinInfos is dead code, because we don't build
those at all until after join removal.

Back-patch to 9.3.  Previous versions didn't have the LATERAL issues, of
course, and they also didn't attempt to remove PlaceHolderInfos during join
removal.  (I'm starting to wonder if changing that was really such a great
idea.)
2015-08-07 14:13:52 -04:00
config Blacklist xlc 32-bit inlining. 2015-07-29 22:53:09 -04:00
contrib contrib/isn now needs a .gitignore file. 2015-08-02 23:57:47 -04:00
doc Docs: add an explicit example about controlling overall greediness of REs. 2015-08-04 21:09:28 -04:00
src Further adjustments to PlaceHolderVar removal. 2015-08-07 14:13:52 -04:00
.dir-locals.el Update Emacs configuration 2013-08-13 20:08:44 -04:00
.gitattributes gitattributes: Ignore time zone data files for whitespace checks 2014-07-22 00:12:28 -04:00
.gitignore Add *.pot to .gitignore 2013-10-19 10:56:52 -04:00
aclocal.m4 Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
configure AIX: Test the -qlonglong option before use. 2015-07-17 03:01:35 -04:00
configure.in AIX: Test the -qlonglong option before use. 2015-07-17 03:01:35 -04:00
COPYRIGHT Update copyright for 2015 2015-01-06 11:43:46 -05:00
GNUmakefile.in Add TAP tests for client programs 2014-04-14 21:33:46 -04:00
HISTORY Improve text of stub HISTORY file. 2014-02-12 18:16:17 -05:00
Makefile Allow make check in PL directories 2011-02-15 06:52:12 +02:00
README Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:04 -05:00
README.git Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:04 -05: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.  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/.