Fixed growing of backend due to not pfree()'d data on COPY FROM
authorJan Wieck <JanWieck@Yahoo.com>
Mon, 1 Feb 1999 20:25:55 +0000 (20:25 +0000)
committerJan Wieck <JanWieck@Yahoo.com>
Mon, 1 Feb 1999 20:25:55 +0000 (20:25 +0000)
Fixed growing of backend if BEFORE DELETE trigger returns heap tuple
different from trigtuple.

Jan

src/backend/commands/copy.c
src/backend/commands/trigger.c

index 3126e82dfc37f1cbb0897855014e772a08674118..e9f4e65fdec1a04da2bdbd92c1dfcbd324999726 100644 (file)
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.68 1999/01/23 22:27:26 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.69 1999/02/01 20:25:54 wieck Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -651,7 +651,6 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
    lineno = 0;
    while (!done)
    {
-     values = (Datum *) palloc(sizeof(Datum) * attr_count);
        if (!binary)
        {
 #ifdef COPY_PATCH
index aac9f2599f52cecd69f71739af94bb848f0bcc9f..20a542eee5bb2783f17fb8d33d362e7e80ba7385 100644 (file)
@@ -684,6 +684,8 @@ ExecBRDeleteTriggers(EState *estate, ItemPointer tupleid)
        newtuple = ExecCallTriggerFunc(trigger[i]);
        if (newtuple == NULL)
            break;
+       if (newtuple != trigtuple)
+           pfree(newtuple);
    }
    CurrentTriggerData = NULL;
    pfree(SaveTriggerData);