Modify COPY for() loop to use attnum as a variable name, not 'i'.
authorBruce Momjian
Thu, 15 Apr 2004 22:36:03 +0000 (22:36 +0000)
committerBruce Momjian
Thu, 15 Apr 2004 22:36:03 +0000 (22:36 +0000)
src/backend/commands/copy.c

index 045b40ec1de8a11494042d32d3981ca6a776e8a7..07c9ff4d531da52712f440a5f5127ec2203dbd9a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * 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,
    ExprState **constraintexprs;
    bool        hasConstraints = false;
    int         i;
+   int         attnum;
    List       *cur;
    Oid         in_func_oid;
    Datum      *values;
@@ -1317,39 +1318,39 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
    defexprs = (ExprState **) palloc((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 */
-       if (attr[i]->attisdropped)
+       if (attr[attnum - 1]->attisdropped)
            continue;
 
        /* Fetch the input function and typelem info */
        if (binary)
-           getTypeBinaryInputInfo(attr[i]->atttypid,
-                                  &in_func_oid, &elements[i]);
+           getTypeBinaryInputInfo(attr[attnum - 1]->atttypid,
+                                  &in_func_oid, &elements[attnum - 1]);
        else
-           getTypeInputInfo(attr[i]->atttypid,
-                            &in_func_oid, &elements[i]);
-       fmgr_info(in_func_oid, &in_functions[i]);
+           getTypeInputInfo(attr[attnum - 1]->atttypid,
+                            &in_func_oid, &elements[attnum - 1]);
+       fmgr_info(in_func_oid, &in_functions[attnum - 1]);
 
        /* Get default info if needed */
-       if (!intMember(i + 1, attnumlist))
+       if (!intMember(attnum, attnumlist))
        {
            /* attribute is NOT to be copied from input */
            /* use default value if one exists */
-           Node       *defexpr = build_column_default(rel, i + 1);
+           Node       *defexpr = build_column_default(rel, attnum);
 
            if (defexpr != NULL)
            {
                defexprs[num_defaults] = ExecPrepareExpr((Expr *) defexpr,
                                                         estate);
-               defmap[num_defaults] = i;
+               defmap[num_defaults] = attnum - 1;
                num_defaults++;
            }
        }
 
        /* 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;
            Node       *node;
@@ -1365,14 +1366,14 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
            prm = makeNode(Param);
            prm->paramkind = PARAM_EXEC;
            prm->paramid = 0;
-           prm->paramtype = getBaseType(attr[i]->atttypid);
+           prm->paramtype = getBaseType(attr[attnum - 1]->atttypid);
 
            node = coerce_to_domain((Node *) prm,
                                    prm->paramtype,
-                                   attr[i]->atttypid,
+                                   attr[attnum - 1]->atttypid,
                                    COERCE_IMPLICIT_CAST);
 
-           constraintexprs[i] = ExecPrepareExpr((Expr *) node,
+           constraintexprs[attnum - 1] = ExecPrepareExpr((Expr *) node,
                                                 estate);
            hasConstraints = true;
        }