summaryrefslogtreecommitdiff
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.y31
1 files changed, 4 insertions, 27 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index c97c9da509..63465c9168 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.271 2001/10/31 04:49:43 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.272 2001/11/05 05:00:14 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -86,7 +86,6 @@ static Node *makeTypeCast(Node *arg, TypeName *typename);
static Node *makeStringConst(char *str, TypeName *typename);
static Node *makeFloatConst(char *str);
static Node *makeRowExpr(char *opr, List *largs, List *rargs);
-static void mapTargetColumns(List *source, List *target);
static SelectStmt *findLeftmostSelect(SelectStmt *node);
static void insertSelectOptions(SelectStmt *stmt,
List *sortClause, List *forUpdate,
@@ -1611,11 +1610,10 @@ CreateAsStmt: CREATE OptTemp TABLE relation_name OptCreateAs AS SelectStmt
*/
SelectStmt *n = findLeftmostSelect((SelectStmt *) $7);
if (n->into != NULL)
- elog(ERROR,"CREATE TABLE / AS SELECT may not specify INTO");
+ elog(ERROR,"CREATE TABLE AS may not specify INTO");
n->istemp = $2;
n->into = $4;
- if ($5 != NIL)
- mapTargetColumns($5, n->targetList);
+ n->intoColNames = $5;
$$ = $7;
}
;
@@ -3552,6 +3550,7 @@ simple_select: SELECT opt_distinct target_list
n->targetList = $3;
n->istemp = (bool) ((Value *) lfirst($4))->val.ival;
n->into = (char *) lnext($4);
+ n->intoColNames = NIL;
n->fromClause = $5;
n->whereClause = $6;
n->groupClause = $7;
@@ -6106,28 +6105,6 @@ makeRowExpr(char *opr, List *largs, List *rargs)
return expr;
}
-static void
-mapTargetColumns(List *src, List *dst)
-{
- ColumnDef *s;
- ResTarget *d;
-
- if (length(src) != length(dst))
- elog(ERROR,"CREATE TABLE / AS SELECT has mismatched column count");
-
- while ((src != NIL) && (dst != NIL))
- {
- s = (ColumnDef *)lfirst(src);
- d = (ResTarget *)lfirst(dst);
-
- d->name = s->colname;
-
- src = lnext(src);
- dst = lnext(dst);
- }
-} /* mapTargetColumns() */
-
-
/* findLeftmostSelect()
* Find the leftmost component SelectStmt in a set-operation parsetree.
*/