<!--
-$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.393 2005/10/25 17:54:30 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.394 2005/10/26 19:21:53 tgl Exp $
Typical markup:
</para>
<para>
By default, we now generate an error if a table is used in a query
- without a <command>FROM</> reference. The old behavior is still
+ without a <literal>FROM</> reference. The old behavior is still
available, but the parameter must be set to 'true' to obtain it.
</para>
+
+ <para>
+ It may be necessary to set <varname>add_missing_from</> to true
+ in order to load an existing dump file, if the dump contains any
+ views or rules created using the implicit-<literal>FROM</> syntax.
+ This should be a one-time annoyance, because
+ <productname>PostgreSQL</productname> 8.1 will convert
+ such views and rules to standard explicit-<literal>FROM</> syntax.
+ Subsequent dumps will therefore not have the problem.
+ </para>
</listitem>
<listitem>
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_relation.c,v 1.115 2005/10/15 02:49:22 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_relation.c,v 1.116 2005/10/26 19:21:54 tgl Exp $
*
*-------------------------------------------------------------------------
*/
{
RangeTblEntry *rte;
- rte = addRangeTableEntry(pstate, relation, NULL, false, false);
+ /*
+ * Note that we set inFromCl true, so that the RTE will be listed
+ * explicitly if the parsetree is ever decompiled by ruleutils.c.
+ * This provides a migration path for views/rules that were originally
+ * written with implicit-RTE syntax.
+ */
+ rte = addRangeTableEntry(pstate, relation, NULL, false, true);
/* Add to joinlist and relnamespace, but not varnamespace */
addRTEtoQuery(pstate, rte, true, true, false);
warnAutoRange(pstate, relation);
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.291 2005/10/15 02:49:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.292 2005/10/26 19:21:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
* RTEs other than RTE_RELATION entries.
*
* inFromCl marks those range variables that are listed in the FROM clause.
- * In SQL, the query can only refer to range variables listed in the
- * FROM clause, but POSTQUEL allows you to refer to tables not listed,
- * in which case a range table entry will be generated. We still support
- * this POSTQUEL feature, although there is some doubt whether it's
- * convenient or merely confusing. The flag is not actually needed
- * anymore during parsing, since the parser uses a separate "namespace"
- * data structure to control visibility, but it is needed by ruleutils.c
- * to determine whether RTEs should be included in decompiled queries.
+ * It's false for RTEs that are added to a query behind the scenes, such
+ * as the NEW and OLD variables for a rule, or the subqueries of a UNION.
+ * This flag is not used anymore during parsing, since the parser now uses
+ * a separate "namespace" data structure to control visibility, but it is
+ * needed by ruleutils.c to determine whether RTEs should be shown in
+ * decompiled queries.
*
* requiredPerms and checkAsUser specify run-time access permissions
* checks to be performed at query startup. The user must have *all*