diff options
Diffstat (limited to 'src/backend/access/gist')
-rw-r--r-- | src/backend/access/gist/gistget.c | 3 | ||||
-rw-r--r-- | src/backend/access/gist/gistscan.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c index 20f695cee4e..1a69d40a715 100644 --- a/src/backend/access/gist/gistget.c +++ b/src/backend/access/gist/gistget.c @@ -302,6 +302,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); @@ -552,6 +553,7 @@ gistgettuple(PG_FUNCTION_ARGS) so->firstCall = false; so->curPageData = so->nPageData = 0; + scan->xs_itup = NULL; if (so->pageDataCxt) MemoryContextReset(so->pageDataCxt); @@ -629,6 +631,7 @@ gistgetbitmap(PG_FUNCTION_ARGS) /* 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 62f1fdd8da2..cde9e794967 100644 --- a/src/backend/access/gist/gistscan.c +++ b/src/backend/access/gist/gistscan.c @@ -318,6 +318,9 @@ gistrescan(PG_FUNCTION_ARGS) pfree(fn_extras); } + /* any previous xs_itup will have been pfree'd in context resets above */ + scan->xs_itup = NULL; + PG_RETURN_VOID(); } |