diff options
Diffstat (limited to 'src/backend/access/gin/ginget.c')
-rw-r--r-- | src/backend/access/gin/ginget.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index 9d73142ee93..3e2b8b5fedf 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -497,7 +497,7 @@ startScanKey(GinState *ginstate, GinScanOpaque so, GinScanKey key) } /* i is now the last required entry. */ - MemoryContextSwitchTo(oldCtx); + MemoryContextSwitchTo(so->keyCtx); key->nrequired = i + 1; key->nadditional = key->nentries - key->nrequired; @@ -515,11 +515,14 @@ startScanKey(GinState *ginstate, GinScanOpaque so, GinScanKey key) } else { + MemoryContextSwitchTo(so->keyCtx); + key->nrequired = 1; key->nadditional = 0; key->requiredEntries = palloc(1 * sizeof(GinScanEntry)); key->requiredEntries[0] = key->scanEntry[0]; } + MemoryContextSwitchTo(oldCtx); } static void |