aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeMaterial.c
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1998-11-27 19:52:36 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1998-11-27 19:52:36 +0000
commit6beba218d7f6f764e946751df6dc0d0180da05fa (patch)
tree2801029d61d798d6150bb43a24561a4615aedb8b /src/backend/executor/nodeMaterial.c
parent2435c7d501b0a3129f6fc597a9c85863541cd596 (diff)
downloadpostgresql-6beba218d7f6f764e946751df6dc0d0180da05fa.tar.gz
postgresql-6beba218d7f6f764e946751df6dc0d0180da05fa.zip
New HeapTuple structure/interface.
Diffstat (limited to 'src/backend/executor/nodeMaterial.c')
-rw-r--r--src/backend/executor/nodeMaterial.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/backend/executor/nodeMaterial.c b/src/backend/executor/nodeMaterial.c
index 95c8a6f56f3..485b962a895 100644
--- a/src/backend/executor/nodeMaterial.c
+++ b/src/backend/executor/nodeMaterial.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.17 1998/09/01 04:28:34 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.18 1998/11/27 19:52:03 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -114,13 +114,22 @@ ExecMaterial(Material *node)
{
slot = ExecProcNode(outerNode, (Plan *) node);
- heapTuple = slot->val;
- if (heapTuple == NULL)
+ if (TupIsNull(slot))
break;
-
- heap_insert(tempRelation, /* relation desc */
- heapTuple); /* heap tuple to insert */
-
+
+ /*
+ * heap_insert changes something...
+ */
+ if (slot->ttc_buffer != InvalidBuffer)
+ heapTuple = heap_copytuple(slot->val);
+ else
+ heapTuple = slot->val;
+
+ heap_insert(tempRelation, heapTuple);
+
+ if (slot->ttc_buffer != InvalidBuffer)
+ pfree(heapTuple);
+
ExecClearTuple(slot);
}
currentRelation = tempRelation;