diff --git a/doc/src/sgml/ref/delete.sgml b/doc/src/sgml/ref/delete.sgml
index 954391a228b..598936cd5ac 100644
--- a/doc/src/sgml/ref/delete.sgml
+++ b/doc/src/sgml/ref/delete.sgml
@@ -1,5 +1,5 @@
@@ -148,12 +148,6 @@ DELETE FROM films
In some cases the join style is easier to write or faster to
execute than the sub-select style.
-
-
- If add_missing_from is enabled, any relations
- mentioned in the WHERE condition will be
- implicitly added to the USING clause.
-
diff --git a/doc/src/sgml/ref/select.sgml b/doc/src/sgml/ref/select.sgml
index 93218e16c2e..9044adfa8c8 100644
--- a/doc/src/sgml/ref/select.sgml
+++ b/doc/src/sgml/ref/select.sgml
@@ -1,5 +1,5 @@
@@ -1011,42 +1011,21 @@ SELECT 2+2;
- A less obvious use is to abbreviate a normal
- SELECT from tables:
+ Note that if a FROM clause is not specified,
+ the query cannot reference any database tables. For example, the
+ following query is invalid:
SELECT distributors.* WHERE distributors.name = 'Westward';
-
- did | name
------+----------
- 108 | Westward
- This works because an implicit FROM item is
- added for each table that is referenced in other parts of the
- SELECT statement but not mentioned in
- FROM.
-
-
-
- While this is a convenient shorthand, it's easy to misuse. For
- example, the command
-
-SELECT distributors.* FROM distributors d;
-
- is probably a mistake; most likely the user meant
-
-SELECT d.* FROM distributors d;
-
- rather than the unconstrained join
-
-SELECT distributors.* FROM distributors d, distributors distributors;
-
- that he will actually get. To help detect this sort of mistake,
- PostgreSQL will warn if the
- implicit-FROM feature is used in a
- SELECT statement that also contains an explicit
- FROM clause. Also, it is possible to disable
- the implicit-FROM feature by setting the
- parameter to false.
+ PostgreSQL releases prior to
+ 8.1 would accept queries of this form, and add an implicit entry
+ to the query's FROM clause for each table
+ referenced by the query. This is no longer the default behavior,
+ because it does not comply with the SQL standard, and is
+ considered by many to be error-prone. For compatibility with
+ applications that rely on this behavior the configuration variable can be
+ enabled.
diff --git a/doc/src/sgml/ref/show.sgml b/doc/src/sgml/ref/show.sgml
index 8fb07bc9e46..5fdfa2b4b06 100644
--- a/doc/src/sgml/ref/show.sgml
+++ b/doc/src/sgml/ref/show.sgml
@@ -1,5 +1,5 @@
@@ -166,7 +166,7 @@ SHOW geqo;
SHOW ALL;
name | setting
--------------------------------+----------------------------------------------
- add_missing_from | on
+ add_missing_from | off
archive_command | unset
australian_timezones | off
.
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index f019dbb4ae6..e5567abf279 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -1,5 +1,5 @@
@@ -3553,15 +3553,25 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
- When true>, tables that are referenced by a query will be
- automatically added to the FROM> clause if not already
- present. The default is true> for compatibility with
- previous releases of PostgreSQL>. However, this
- behavior is not SQL-standard, and many people dislike it because it
- can mask mistakes (such as referencing a table where you should have
- referenced its alias). Set to false> for the SQL-standard
- behavior of rejecting references to tables that are not listed in
- FROM>.
+ When true>, tables that are referenced by a query
+ will be automatically added to the FROM> clause if
+ not already present. This behavior does not comply with the
+ SQL standard and many people dislike it because it can mask
+ mistakes (such as referencing a table where you should have
+ referenced its alias). The default is false>. This
+ variable can be enabled for compatibility with releases of
+ PostgreSQL> prior to 8.1, where this behavior
+ was allowed by default.
+
+
+
+ Note that even when this variable is enabled, a warning
+ message will be emitted for each implicit FROM>
+ entry referenced by a query. Users are encouraged to update
+ their applications to not rely on this behavior, by adding all
+ tables referenced by a query to the query's FROM>
+ clause (or its USING> clause in the case of
+ DELETE>).
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 1db12c23135..4658991e734 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut .
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.257 2005/03/25 16:17:27 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.258 2005/04/08 00:59:59 neilc Exp $
*
*--------------------------------------------------------------------
*/
@@ -791,7 +791,7 @@ static struct config_bool ConfigureNamesBool[] =
NULL
},
&add_missing_from,
- true, NULL, NULL
+ false, NULL, NULL
},
{
{"check_function_bodies", PGC_USERSET, CLIENT_CONN_STATEMENT,
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 113021fd79f..6b06afcb7fd 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -313,7 +313,7 @@
# - Previous Postgres Versions -
-#add_missing_from = true
+#add_missing_from = false
#regex_flavor = advanced # advanced, extended, or basic
#sql_inheritance = true
#default_with_oids = false