diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-05-22 16:01:33 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-05-22 16:01:33 +0000 |
commit | 737ab85cc08c888d8f8817073909ec0ecdf62d18 (patch) | |
tree | 64965d1eb4d2ed245a9ed9fd1719c629c5466615 /src/backend/access/gist/gistscan.c | |
parent | 4800abc7c16150485ef39f52f63fd588373c9911 (diff) | |
download | postgresql-737ab85cc08c888d8f8817073909ec0ecdf62d18.tar.gz postgresql-737ab85cc08c888d8f8817073909ec0ecdf62d18.zip |
1. Pass GISTENTRYs to giststate->penaltyFn by pointers, not by vals.
2. Re-initialize keys in gistrescan (if gist used in inner scan).
Diffstat (limited to 'src/backend/access/gist/gistscan.c')
-rw-r--r-- | src/backend/access/gist/gistscan.c | 7 |
1 files changed, 7 insertions, 0 deletions
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)); |