Avoid a useless tuple copy within nodeMaterial. Neil Conway
authorTom Lane
Sun, 23 Mar 2008 00:54:04 +0000 (00:54 +0000)
committerTom Lane
Sun, 23 Mar 2008 00:54:04 +0000 (00:54 +0000)
src/backend/executor/nodeMaterial.c

index 1fd7a4d0307cfdec003584b88fd5ad1c2ac64d0a..3c096356a37b03b6e613b1329c58b899faef32d7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.61 2008/01/01 19:45:49 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.62 2008/03/23 00:54:04 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -124,18 +124,17 @@ ExecMaterial(MaterialState *node)
        }
 
        /*
-        * Append returned tuple to tuplestore.  NOTE: because the tuplestore
-        * is certainly in EOF state, its read position will move forward over
-        * the added tuple.  This is what we want.
+        * Append a copy of the returned tuple to tuplestore.  NOTE: because
+        * the tuplestore is certainly in EOF state, its read position will
+        * move forward over the added tuple.  This is what we want.
         */
        if (tuplestorestate)
            tuplestore_puttupleslot(tuplestorestate, outerslot);
 
        /*
-        * And return a copy of the tuple.  (XXX couldn't we just return the
-        * outerslot?)
+        * We can just return the subplan's returned tuple, without copying.
         */
-       return ExecCopySlot(slot, outerslot);
+       return outerslot;
    }
 
    /*