*
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.148 2007/07/27 19:09:04 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.149 2007/07/31 16:36:07 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
    LOCKMODE    lockmode;
 
    /*
-    * Determine the lock type we need.  First, scan to see if target
-    * relation is a result relation.
+    * Determine the lock type we need.  First, scan to see if target relation
+    * is a result relation.  If not, check if it's a FOR UPDATE/FOR SHARE
+    * relation.  In either of those cases, we got the lock already.
     */
    lockmode = AccessShareLock;
    if (ExecRelationIsTargetRelation(estate, scanrelid))
        lockmode = NoLock;
-
-   /* If not, check if it's a FOR UPDATE/FOR SHARE relation */
-   if (lockmode == AccessShareLock)
+   else
    {
        ListCell   *l;