Skip to content

Commit 3a14336

Browse files
committed
Modify COPY for() loop to use attnum as a variable name, not 'i'.
1 parent 6c72f44 commit 3a14336

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

src/backend/commands/copy.c

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.219 2004/04/06 13:21:33 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.220 2004/04/15 22:36:03 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -1258,6 +1258,7 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
12581258
ExprState **constraintexprs;
12591259
bool hasConstraints = false;
12601260
int i;
1261+
int attnum;
12611262
List *cur;
12621263
Oid in_func_oid;
12631264
Datum *values;
@@ -1317,39 +1318,39 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
13171318
defexprs = (ExprState **) palloc((num_phys_attrs + 1) * sizeof(ExprState *));
13181319
constraintexprs = (ExprState **) palloc0((num_phys_attrs + 1) * sizeof(ExprState *));
13191320

1320-
for (i = 0; i < num_phys_attrs; i++)
1321+
for (attnum = 1; attnum <= num_phys_attrs; attnum++)
13211322
{
13221323
/* We don't need info for dropped attributes */
1323-
if (attr[i]->attisdropped)
1324+
if (attr[attnum - 1]->attisdropped)
13241325
continue;
13251326

13261327
/* Fetch the input function and typelem info */
13271328
if (binary)
1328-
getTypeBinaryInputInfo(attr[i]->atttypid,
1329-
&in_func_oid, &elements[i]);
1329+
getTypeBinaryInputInfo(attr[attnum - 1]->atttypid,
1330+
&in_func_oid, &elements[attnum - 1]);
13301331
else
1331-
getTypeInputInfo(attr[i]->atttypid,
1332-
&in_func_oid, &elements[i]);
1333-
fmgr_info(in_func_oid, &in_functions[i]);
1332+
getTypeInputInfo(attr[attnum - 1]->atttypid,
1333+
&in_func_oid, &elements[attnum - 1]);
1334+
fmgr_info(in_func_oid, &in_functions[attnum - 1]);
13341335

13351336
/* Get default info if needed */
1336-
if (!intMember(i + 1, attnumlist))
1337+
if (!intMember(attnum, attnumlist))
13371338
{
13381339
/* attribute is NOT to be copied from input */
13391340
/* use default value if one exists */
1340-
Node *defexpr = build_column_default(rel, i + 1);
1341+
Node *defexpr = build_column_default(rel, attnum);
13411342

13421343
if (defexpr != NULL)
13431344
{
13441345
defexprs[num_defaults] = ExecPrepareExpr((Expr *) defexpr,
13451346
estate);
1346-
defmap[num_defaults] = i;
1347+
defmap[num_defaults] = attnum - 1;
13471348
num_defaults++;
13481349
}
13491350
}
13501351

13511352
/* If it's a domain type, set up to check domain constraints */
1352-
if (get_typtype(attr[i]->atttypid) == 'd')
1353+
if (get_typtype(attr[attnum - 1]->atttypid) == 'd')
13531354
{
13541355
Param *prm;
13551356
Node *node;
@@ -1365,14 +1366,14 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
13651366
prm = makeNode(Param);
13661367
prm->paramkind = PARAM_EXEC;
13671368
prm->paramid = 0;
1368-
prm->paramtype = getBaseType(attr[i]->atttypid);
1369+
prm->paramtype = getBaseType(attr[attnum - 1]->atttypid);
13691370

13701371
node = coerce_to_domain((Node *) prm,
13711372
prm->paramtype,
1372-
attr[i]->atttypid,
1373+
attr[attnum - 1]->atttypid,
13731374
COERCE_IMPLICIT_CAST);
13741375

1375-
constraintexprs[i] = ExecPrepareExpr((Expr *) node,
1376+
constraintexprs[attnum - 1] = ExecPrepareExpr((Expr *) node,
13761377
estate);
13771378
hasConstraints = true;
13781379
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy