diff options
Diffstat (limited to 'src/backend/access/gist')
-rw-r--r-- | src/backend/access/gist/gist.c | 5 | ||||
-rw-r--r-- | src/backend/access/gist/gistbuild.c | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index ebc65449c1b..272390ff67d 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -1557,9 +1557,8 @@ initGISTstate(Relation index) * tuples during page split. Also, B-tree is not adjusting tuples on * internal pages the way GiST does. */ - giststate->nonLeafTupdesc = CreateTupleDescCopyConstr(index->rd_att); - giststate->nonLeafTupdesc->natts = - IndexRelationGetNumberOfKeyAttributes(index); + giststate->nonLeafTupdesc = CreateTupleDescTruncatedCopy(index->rd_att, + IndexRelationGetNumberOfKeyAttributes(index)); for (i = 0; i < IndexRelationGetNumberOfKeyAttributes(index); i++) { diff --git a/src/backend/access/gist/gistbuild.c b/src/backend/access/gist/gistbuild.c index 63d1914b37f..3a2759b4468 100644 --- a/src/backend/access/gist/gistbuild.c +++ b/src/backend/access/gist/gistbuild.c @@ -657,10 +657,12 @@ gistInitBuffering(GISTBuildState *buildstate) itupMinSize = (Size) MAXALIGN(sizeof(IndexTupleData)); for (i = 0; i < index->rd_att->natts; i++) { - if (TupleDescAttr(index->rd_att, i)->attlen < 0) + CompactAttribute *attr = TupleDescCompactAttr(index->rd_att, i); + + if (attr->attlen < 0) itupMinSize += VARHDRSZ; else - itupMinSize += TupleDescAttr(index->rd_att, i)->attlen; + itupMinSize += attr->attlen; } /* Calculate average and maximal number of index tuples which fit to page */ |