aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/gram.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/gram.y')
-rw-r--r--src/backend/parser/gram.y26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 58cb72f3811..7454c1c2bf5 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.80 1997/12/23 19:47:32 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.81 1997/12/24 06:06:26 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -120,11 +120,13 @@ Oid param_type(int t); /* used in parse_expr.c */
ProcedureStmt, RecipeStmt, RemoveAggrStmt, RemoveOperStmt,
RemoveFuncStmt, RemoveStmt,
RenameStmt, RevokeStmt, RuleStmt, TransactionStmt, ViewStmt, LoadStmt,
- CreatedbStmt, DestroydbStmt, VacuumStmt, RetrieveStmt, CursorStmt,
- ReplaceStmt, AppendStmt, NotifyStmt, DeleteStmt, ClusterStmt,
+ CreatedbStmt, DestroydbStmt, VacuumStmt, CursorStmt, SubSelect,
+ ReplaceStmt, AppendStmt, RetrieveStmt, NotifyStmt, DeleteStmt, ClusterStmt,
ExplainStmt, VariableSetStmt, VariableShowStmt, VariableResetStmt,
CreateUserStmt, AlterUserStmt, DropUserStmt
+%type <rtstmt>
+
%type <str> opt_database, location
%type <pboolean> user_createdb_clause, user_createuser_clause
@@ -132,7 +134,6 @@ Oid param_type(int t); /* used in parse_expr.c */
%type <str> user_valid_clause
%type <list> user_group_list, user_group_clause
-%type <node> SubSelect
%type <str> join_expr, join_outer, join_spec
%type <boolean> TriggerActionTime, TriggerForSpec, PLangTrusted
@@ -1049,19 +1050,10 @@ OptArchiveType: ARCHIVE '=' NONE { }
CreateAsStmt: CREATE TABLE relation_name OptCreateAs AS SubSelect
{
- RetrieveStmt *n = makeNode(RetrieveStmt);
- SubSelect *s = (SubSelect *)$6;
- n->unique = s->unique;
- n->targetList = s->targetList;
+ RetrieveStmt *n = (RetrieveStmt *)$6;
if ($4 != NIL)
mapTargetColumns($4, n->targetList);
n->into = $3;
- n->fromClause = s->fromClause;
- n->whereClause = s->whereClause;
- n->groupClause = s->groupClause;
- n->havingClause = s->havingClause;
- n->unionClause = NULL;
- n->sortClause = NULL;
$$ = (Node *)n;
}
;
@@ -2291,7 +2283,7 @@ RetrieveStmt: SELECT opt_unique res_target_list2
union_clause: UNION opt_union select_list
{
- SubSelect *n = lfirst($3);
+ RetrieveStmt *n = (RetrieveStmt *)lfirst($3);
n->unionall = $2;
$$ = $3;
}
@@ -2301,7 +2293,7 @@ union_clause: UNION opt_union select_list
select_list: select_list UNION opt_union SubSelect
{
- SubSelect *n = (SubSelect *)$4;
+ RetrieveStmt *n = (RetrieveStmt *)$4;
n->unionall = $3;
$$ = lappend($1, $4);
}
@@ -2313,7 +2305,7 @@ SubSelect: SELECT opt_unique res_target_list2
from_clause where_clause
group_clause having_clause
{
- SubSelect *n = makeNode(SubSelect);
+ RetrieveStmt *n = makeNode(RetrieveStmt);
n->unique = $2;
n->unionall = FALSE;
n->targetList = $3;