diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index 890ef6f676..afe08a74a6 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.163 2002/08/15 16:36:02 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.164 2002/08/19 00:40:14 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1513,7 +1513,7 @@ CopyGetAttnums(Relation rel, List *attnamelist) foreach(l, attnamelist) { - char *name = strVal(lfirst(l)); + char *name = ((Ident *) lfirst(l))->name; int attnum; /* Lookup column name, elog on failure */ diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index a989d70064..59bc689523 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.202 2002/08/19 00:11:53 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.203 2002/08/19 00:40:14 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2016,6 +2016,7 @@ _copyCopyStmt(CopyStmt *from) CopyStmt *newnode = makeNode(CopyStmt); Node_Copy(from, newnode, relation); + Node_Copy(from, newnode, attlist); newnode->is_from = from->is_from; if (from->filename) newnode->filename = pstrdup(from->filename); diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index ae79501ae4..60b6d2d3b1 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -20,7 +20,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.151 2002/08/19 00:11:53 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.152 2002/08/19 00:40:14 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -801,6 +801,8 @@ _equalCopyStmt(CopyStmt *a, CopyStmt *b) { if (!equal(a->relation, b->relation)) return false; + if (!equal(a->attlist, b->attlist)) + return false; if (a->is_from != b->is_from) return false; if (!equalstr(a->filename, b->filename)) diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 8c356a5597..14d4126bbe 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: parsenodes.h,v 1.199 2002/08/15 16:36:07 momjian Exp $ + * $Id: parsenodes.h,v 1.200 2002/08/19 00:40:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -869,7 +869,7 @@ typedef struct CopyStmt { NodeTag type; RangeVar *relation; /* the relation to copy */ - List *attlist; + List *attlist; /* List of Ident nodes, or NIL for all */ bool is_from; /* TO or FROM */ char *filename; /* if NULL, use stdin/stdout */ List *options; /* List of DefElem nodes */