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]