From 737ab85cc08c888d8f8817073909ec0ecdf62d18 Mon Sep 17 00:00:00 2001 From: "Vadim B. Mikheev" Date: Thu, 22 May 1997 16:01:33 +0000 Subject: 1. Pass GISTENTRYs to giststate->penaltyFn by pointers, not by vals. 2. Re-initialize keys in gistrescan (if gist used in inner scan). --- src/backend/access/gist/gistscan.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/backend/access/gist/gistscan.c') diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c index 4629de12922..c877538472c 100644 --- a/src/backend/access/gist/gistscan.c +++ b/src/backend/access/gist/gistscan.c @@ -118,6 +118,13 @@ gistrescan(IndexScanDesc s, bool fromEnd, ScanKey key) gistfreestack(p->s_markstk); p->s_stack = p->s_markstk = (GISTSTACK *) NULL; p->s_flags = 0x0; + for (i = 0; i < s->numberOfKeys; i++) + { + s->keyData[i].sk_procedure + = RelationGetGISTStrategy(s->relation, s->keyData[i].sk_attno, + s->keyData[i].sk_procedure); + s->keyData[i].sk_func = p->giststate->consistentFn; + } } else { /* initialize opaque data */ p = (GISTScanOpaque) palloc(sizeof(GISTScanOpaqueData)); -- cgit v1.2.3