diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-05-30 11:58:54 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-05-30 12:05:57 +0300 |
commit | be02b16826ec9789ed3cb06e4e7531c94e497118 (patch) | |
tree | 987ac3b1a0b7d321a04a79caf6ba96baaf8a5970 | |
parent | 4317e0246c645f60c39e6572644cff1cb03b4c65 (diff) | |
download | postgresql-be02b16826ec9789ed3cb06e4e7531c94e497118.tar.gz postgresql-be02b16826ec9789ed3cb06e4e7531c94e497118.zip |
Delete the temporary file used in buffered GiST build, after the build.
There were two bugs here: We forgot to call gistFreeBuildBuffers() function
at the end of build, and we passed interXact == true to BufFileCreateTemp,
so the file wasn't automatically cleaned up at end-of-transaction either.
-rw-r--r-- | src/backend/access/gist/gistbuild.c | 1 | ||||
-rw-r--r-- | src/backend/access/gist/gistbuildbuffers.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/access/gist/gistbuild.c b/src/backend/access/gist/gistbuild.c index eb39c667c15..73cdc5f5b47 100644 --- a/src/backend/access/gist/gistbuild.c +++ b/src/backend/access/gist/gistbuild.c @@ -214,6 +214,7 @@ gistbuild(PG_FUNCTION_ARGS) { elog(DEBUG1, "all tuples processed, emptying buffers"); gistEmptyAllBuffers(&buildstate); + gistFreeBuildBuffers(buildstate.gfbb); } /* okay, all heap tuples are indexed */ diff --git a/src/backend/access/gist/gistbuildbuffers.c b/src/backend/access/gist/gistbuildbuffers.c index a40b83857c1..f108e65695e 100644 --- a/src/backend/access/gist/gistbuildbuffers.c +++ b/src/backend/access/gist/gistbuildbuffers.c @@ -58,7 +58,7 @@ gistInitBuildBuffers(int pagesPerBuffer, int levelStep, int maxLevel) * Create a temporary file to hold buffer pages that are swapped out of * memory. */ - gfbb->pfile = BufFileCreateTemp(true); + gfbb->pfile = BufFileCreateTemp(false); gfbb->nFileBlocks = 0; /* Initialize free page management. */ |