Commit 3a143367 authored by Bruce Momjian's avatar Bruce Momjian

Modify COPY for() loop to use attnum as a variable name, not 'i'.

parent 6c72f44c
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.219 2004/04/06 13:21:33 momjian Exp $ * $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.220 2004/04/15 22:36:03 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -1258,6 +1258,7 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids, ...@@ -1258,6 +1258,7 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
ExprState **constraintexprs; ExprState **constraintexprs;
bool hasConstraints = false; bool hasConstraints = false;
int i; int i;
int attnum;
List *cur; List *cur;
Oid in_func_oid; Oid in_func_oid;
Datum *values; Datum *values;
...@@ -1317,39 +1318,39 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids, ...@@ -1317,39 +1318,39 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
defexprs = (ExprState **) palloc((num_phys_attrs + 1) * sizeof(ExprState *)); defexprs = (ExprState **) palloc((num_phys_attrs + 1) * sizeof(ExprState *));
constraintexprs = (ExprState **) palloc0((num_phys_attrs + 1) * sizeof(ExprState *)); constraintexprs = (ExprState **) palloc0((num_phys_attrs + 1) * sizeof(ExprState *));
for (i = 0; i < num_phys_attrs; i++) for (attnum = 1; attnum <= num_phys_attrs; attnum++)
{ {
/* We don't need info for dropped attributes */ /* We don't need info for dropped attributes */
if (attr[i]->attisdropped) if (attr[attnum - 1]->attisdropped)
continue; continue;
/* Fetch the input function and typelem info */ /* Fetch the input function and typelem info */
if (binary) if (binary)
getTypeBinaryInputInfo(attr[i]->atttypid, getTypeBinaryInputInfo(attr[attnum - 1]->atttypid,
&in_func_oid, &elements[i]); &in_func_oid, &elements[attnum - 1]);
else else
getTypeInputInfo(attr[i]->atttypid, getTypeInputInfo(attr[attnum - 1]->atttypid,
&in_func_oid, &elements[i]); &in_func_oid, &elements[attnum - 1]);
fmgr_info(in_func_oid, &in_functions[i]); fmgr_info(in_func_oid, &in_functions[attnum - 1]);
/* Get default info if needed */ /* Get default info if needed */
if (!intMember(i + 1, attnumlist)) if (!intMember(attnum, attnumlist))
{ {
/* attribute is NOT to be copied from input */ /* attribute is NOT to be copied from input */
/* use default value if one exists */ /* use default value if one exists */
Node *defexpr = build_column_default(rel, i + 1); Node *defexpr = build_column_default(rel, attnum);
if (defexpr != NULL) if (defexpr != NULL)
{ {
defexprs[num_defaults] = ExecPrepareExpr((Expr *) defexpr, defexprs[num_defaults] = ExecPrepareExpr((Expr *) defexpr,
estate); estate);
defmap[num_defaults] = i; defmap[num_defaults] = attnum - 1;
num_defaults++; num_defaults++;
} }
} }
/* If it's a domain type, set up to check domain constraints */ /* If it's a domain type, set up to check domain constraints */
if (get_typtype(attr[i]->atttypid) == 'd') if (get_typtype(attr[attnum - 1]->atttypid) == 'd')
{ {
Param *prm; Param *prm;
Node *node; Node *node;
...@@ -1365,14 +1366,14 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids, ...@@ -1365,14 +1366,14 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
prm = makeNode(Param); prm = makeNode(Param);
prm->paramkind = PARAM_EXEC; prm->paramkind = PARAM_EXEC;
prm->paramid = 0; prm->paramid = 0;
prm->paramtype = getBaseType(attr[i]->atttypid); prm->paramtype = getBaseType(attr[attnum - 1]->atttypid);
node = coerce_to_domain((Node *) prm, node = coerce_to_domain((Node *) prm,
prm->paramtype, prm->paramtype,
attr[i]->atttypid, attr[attnum - 1]->atttypid,
COERCE_IMPLICIT_CAST); COERCE_IMPLICIT_CAST);
constraintexprs[i] = ExecPrepareExpr((Expr *) node, constraintexprs[attnum - 1] = ExecPrepareExpr((Expr *) node,
estate); estate);
hasConstraints = true; hasConstraints = true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment