The following bug has been logged online:

Bug reference:      2422
Logged by:          Tim Baumgartner
Email address:      [EMAIL PROTECTED]
PostgreSQL version: 8.1.3
Operating system:   1. Win2000, 2. Suse 10.0, x86_64-unknown-linux-gnu,
compiled by GCC  4.0.2 20050901 (prerelease)
Description:        Memory leak from Savepoints when using foreign keys
Details: 

I noticed a memory leak during a long transaction with many savepoints. When
trying to build a short self-contained test case for it, I noticed that the
existence of foreign keys dramatically increases the problem.
When I run the statements below, memory usage of the server process
increases by about 1 MB per second.

BEGIN;
 CREATE TABLE t1(pk INT PRIMARY KEY);
 CREATE TABLE t2(fk INT, FOREIGN KEY(fk)
      REFERENCES t1(pk));
 INSERT INTO t1 VALUES(1);
 // loop
    SAVEPOINT x;
    INSERT INTO t2 VALUES(1);
    RELEASE x;
 // end of loop
COMMIT;

Note:
If the first INSERT statement is repeated in the loop (the loop counter can
be used as the value), then the effect is even higher: about 3 MB per second
on my machine.

Thanks a lot for your fine work anyway!

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to