diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c index afff55c78813d6b77f65da61d7ebd2e4463252a4..56921cfee01ab0651d0e7fc616f7605f5b495a51 100644 --- a/src/backend/access/gist/gistget.c +++ b/src/backend/access/gist/gistget.c @@ -70,9 +70,10 @@ gistindex_keytest(IndexScanDesc scan, { int i; + if (GistPageIsLeaf(page)) /* shouldn't happen */ + elog(ERROR, "invalid GIST tuple found on leaf page"); for (i = 0; i < scan->numberOfOrderBys; i++) so->distances[i] = -get_float8_infinity(); - *recheck_p = true; /* probably unnecessary */ return true; } @@ -403,6 +404,8 @@ getNextGISTSearchItem(GISTScanOpaque so) { /* Delink item from chain */ so->curTreeItem->head = item->next; + if (item == so->curTreeItem->lastHeap) + so->curTreeItem->lastHeap = NULL; /* Return item; caller is responsible to pfree it */ return item; }