Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/gist')
-rw-r--r--src/backend/access/gist/gist.c5
-rw-r--r--src/backend/access/gist/gistbuild.c6
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 */