summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane2000-09-25 18:38:39 +0000
committerTom Lane2000-09-25 18:38:39 +0000
commite353e73768e54c7e5cfd5a1d6e97e1f6315207bb (patch)
tree97bee8c88efe5f06cab1f6dd0a43ba7bd2eb8608 /src
parent8bdc2bf030acae0bdac98c645a3c80f205e7e10a (diff)
Correct error in grammar for subselect-in-FROM: SQL spec does not allow
omission of alias_clause for a subselect.
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/gram.y13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index a422bf705ac..93aa912f45b 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.191 2000/09/19 18:17:55 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.192 2000/09/25 18:38:39 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -3751,6 +3751,10 @@ from_list: from_list ',' table_ref { $$ = lappend($1, $3); }
* between table_ref := '(' joined_table ')' alias_clause
* and joined_table := '(' joined_table ')'. So, we must have the
* redundant-looking productions here instead.
+ *
+ * Note that the SQL spec does not permit a subselect (<derived_table>)
+ * without an alias clause, so we don't either. This avoids the problem
+ * of needing to invent a refname for an unlabeled subselect.
*/
table_ref: relation_expr
{
@@ -3761,13 +3765,6 @@ table_ref: relation_expr
$1->name = $2;
$$ = (Node *) $1;
}
- | '(' select_clause ')'
- {
- RangeSubselect *n = makeNode(RangeSubselect);
- n->subquery = $2;
- n->name = NULL;
- $$ = (Node *) n;
- }
| '(' select_clause ')' alias_clause
{
RangeSubselect *n = makeNode(RangeSubselect);