diff options
| author | Heikki Linnakangas | 2012-05-30 08:58:54 +0000 |
|---|---|---|
| committer | Heikki Linnakangas | 2012-05-30 09:05:57 +0000 |
| commit | be02b16826ec9789ed3cb06e4e7531c94e497118 (patch) | |
| tree | 987ac3b1a0b7d321a04a79caf6ba96baaf8a5970 | |
| parent | 4317e0246c645f60c39e6572644cff1cb03b4c65 (diff) | |
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 eb39c667c1..73cdc5f5b4 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 a40b83857c..f108e65695 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. */ |
