Guard against stopping when numberTuples=0 and counter wraps around.
authorTom Lane
Wed, 8 Jan 2003 23:32:29 +0000 (23:32 +0000)
committerTom Lane
Wed, 8 Jan 2003 23:32:29 +0000 (23:32 +0000)
src/backend/executor/execMain.c

index f184265c49185943be8e6ddd9d289dbccd382f9e..613a62c3c372a83421fe6c735689e87d2c9630b0 100644 (file)
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.195 2002/12/18 00:14:47 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.196 2003/01/08 23:32:29 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -166,7 +166,7 @@ ExecutorStart(QueryDesc *queryDesc)
  *     except to start up/shut down the destination.  Otherwise,
  *     we retrieve up to 'count' tuples in the specified direction.
  *
- *     Note: count = 0 is interpreted as no portal limit, e.g. run to
+ *     Note: count = 0 is interpreted as no portal limit, i.e., run to
  *     completion.
  *
  * ----------------------------------------------------------------
@@ -846,6 +846,7 @@ ExecEndPlan(PlanState *planstate, EState *estate)
  *
  *     processes the query plan to retrieve 'numberTuples' tuples in the
  *     direction specified.
+ *
  *     Retrieves all tuples if numberTuples is 0
  *
  *     result is either a slot containing the last tuple in the case
@@ -1091,10 +1092,10 @@ lnext:  ;
        /*
         * check our tuple count.. if we've processed the proper number
         * then quit, else loop again and process more tuples.  Zero
-        * number_tuples means no limit.
+        * numberTuples means no limit.
         */
        current_tuple_count++;
-       if (numberTuples == current_tuple_count)
+       if (numberTuples && numberTuples == current_tuple_count)
            break;
    }