aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/gist
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/gist')
-rw-r--r--src/backend/access/gist/gistget.c3
-rw-r--r--src/backend/access/gist/gistscan.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c
index 5ba7d0a7930..c1b05d66d29 100644
--- a/src/backend/access/gist/gistget.c
+++ b/src/backend/access/gist/gistget.c
@@ -375,6 +375,7 @@ gistScanPage(IndexScanDesc scan, GISTSearchItem *pageItem, double *myDistances,
}
so->nPageData = so->curPageData = 0;
+ scan->xs_itup = NULL; /* might point into pageDataCxt */
if (so->pageDataCxt)
MemoryContextReset(so->pageDataCxt);
@@ -641,6 +642,7 @@ gistgettuple(IndexScanDesc scan, ScanDirection dir)
so->firstCall = false;
so->curPageData = so->nPageData = 0;
+ scan->xs_itup = NULL;
if (so->pageDataCxt)
MemoryContextReset(so->pageDataCxt);
@@ -765,6 +767,7 @@ gistgetbitmap(IndexScanDesc scan, TIDBitmap *tbm)
/* Begin the scan by processing the root page */
so->curPageData = so->nPageData = 0;
+ scan->xs_itup = NULL;
if (so->pageDataCxt)
MemoryContextReset(so->pageDataCxt);
diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c
index 2526a3965c4..12c74b982ca 100644
--- a/src/backend/access/gist/gistscan.c
+++ b/src/backend/access/gist/gistscan.c
@@ -312,6 +312,9 @@ gistrescan(IndexScanDesc scan, ScanKey key, int nkeys,
if (!first_time)
pfree(fn_extras);
}
+
+ /* any previous xs_itup will have been pfree'd in context resets above */
+ scan->xs_itup = NULL;
}
void