55 *
66 * Copyright (c) 1994, Regents of the University of California
77 *
8- *$Id: analyze.c,v 1.129 2000/01/15 02:59:31 petere Exp $
8+ *$Id: analyze.c,v 1.130 2000/01/16 08:21:59 tgl Exp $
99 *
1010 *-------------------------------------------------------------------------
1111 */
@@ -1573,14 +1573,16 @@ transformForUpdate(Query *qry, List *forUpdate)
15731573
15741574foreach (l ,forUpdate )
15751575{
1576+ char * relname = lfirst (l );
15761577List * l2 ;
1577- List * l3 ;
15781578
15791579i = 1 ;
15801580foreach (l2 ,qry -> rtable )
15811581{
1582- if (strcmp (((RangeTblEntry * )lfirst (l2 ))-> refname ,lfirst ( l ) )== 0 )
1582+ if (strcmp (((RangeTblEntry * )lfirst (l2 ))-> refname ,relname )== 0 )
15831583{
1584+ List * l3 ;
1585+
15841586foreach (l3 ,rowMark )
15851587{
15861588if (((RowMark * )lfirst (l3 ))-> rti == i )/* duplicate */
@@ -1598,11 +1600,11 @@ transformForUpdate(Query *qry, List *forUpdate)
15981600i ++ ;
15991601}
16001602if (l2 == NULL )
1601- elog (ERROR ,"FOR UPDATE: relation %s not found in FROM clause" ,strVal (lfirst (l )));
1603+ elog (ERROR ,"FOR UPDATE: relation %s not found in FROM clause" ,
1604+ relname );
16021605}
16031606
16041607qry -> rowMark = rowMark ;
1605- return ;
16061608}
16071609
16081610