postgres.git / summary / log / commit / refs

commit    be02b16826ec9789ed3cb06e4e7531c94e497118
Author:   Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date:     Wed May 30 08:58:54 2012 +0000
First released in: 9.2.0

    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.


src/backend/access/gist/gistbuild.c | 1 + src/backend/access/gist/gistbuildbuffers.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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. */ [parent: 4317e0246c64]