diff options
author | Jan Wieck <JanWieck@Yahoo.com> | 1999-02-07 16:17:14 +0000 |
---|---|---|
committer | Jan Wieck <JanWieck@Yahoo.com> | 1999-02-07 16:17:14 +0000 |
commit | ef590e101ec2e7fd4d2c80b925ce2188aa000bba (patch) | |
tree | df6c63a57a232ff236a5b0885857060f4feb5db3 /src/backend/commands/copy.c | |
parent | dd4a357dc9eeeafa0e8768ab3ae4ffaa4d8c2fcf (diff) | |
download | postgresql-ef590e101ec2e7fd4d2c80b925ce2188aa000bba.tar.gz postgresql-ef590e101ec2e7fd4d2c80b925ce2188aa000bba.zip |
Changed ExecConstraints() and ExecRelCheck() to cache the constraints
qualification expression trees in the execution state. Prevents from
memory exhaustion on INSERT, UPDATE or COPY to tables that have CHECK
constraints. Speedup against the variant using freeObject() is more than
factor 2.
Jan
Diffstat (limited to 'src/backend/commands/copy.c')
-rw-r--r-- | src/backend/commands/copy.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index ff8555e39dd..9df08908c23 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.71 1999/02/03 21:16:03 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.72 1999/02/07 16:17:10 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -505,6 +505,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim) Node **indexPred = NULL; TupleDesc rtupdesc; ExprContext *econtext = NULL; + EState *estate = makeNode(EState); /* for ExecConstraints() */ #ifndef OMIT_PARTIAL_INDEX TupleTable tupleTable; @@ -805,7 +806,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim) */ if (rel->rd_att->constr) - ExecConstraints("CopyFrom", rel, tuple); + ExecConstraints("CopyFrom", rel, tuple, estate); heap_insert(rel, tuple); |