diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index bf8494c18cbfc84c41f3bc7ec9e2ad5ebe59a5a7..0dd1e9907a8aa1c631ebc867a99f50c11556878d 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: analyze.c,v 1.129 2000/01/15 02:59:31 petere Exp $ + * $Id: analyze.c,v 1.130 2000/01/16 08:21:59 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1573,14 +1573,16 @@ transformForUpdate(Query *qry, List *forUpdate) foreach(l, forUpdate) { + char *relname = lfirst(l); List *l2; - List *l3; i = 1; foreach(l2, qry->rtable) { - if (strcmp(((RangeTblEntry *) lfirst(l2))->refname, lfirst(l)) == 0) + if (strcmp(((RangeTblEntry *) lfirst(l2))->refname, relname) == 0) { + List *l3; + foreach(l3, rowMark) { if (((RowMark *) lfirst(l3))->rti == i) /* duplicate */ @@ -1598,11 +1600,11 @@ transformForUpdate(Query *qry, List *forUpdate) i++; } if (l2 == NULL) - elog(ERROR, "FOR UPDATE: relation %s not found in FROM clause", strVal(lfirst(l))); + elog(ERROR, "FOR UPDATE: relation %s not found in FROM clause", + relname); } qry->rowMark = rowMark; - return; }