aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/spgist/spgutils.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2021-05-23 12:12:09 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2021-05-23 12:12:09 -0400
commitf5024d8d7b04de2f5f4742ab433cc38160354861 (patch)
tree7cbd6c5ebc78fb3a1b221b8d28193f6ddc5efb90 /src/backend/access/spgist/spgutils.c
parentbc2a389efb3b52d259cefd53c16cfa00742116f2 (diff)
downloadpostgresql-f5024d8d7b04de2f5f4742ab433cc38160354861.tar.gz
postgresql-f5024d8d7b04de2f5f4742ab433cc38160354861.zip
Re-order pg_attribute columns to eliminate some padding space.
Now that attcompression is just a char, there's a lot of wasted padding space after it. Move it into the group of char-wide columns to save a net of 4 bytes per pg_attribute entry. While we're at it, swap the order of attstorage and attalign to make for a more logical grouping of these columns. Also re-order actions in related code to match the new field ordering. This patch also fixes one outright bug: equalTupleDescs() failed to compare attcompression. That could, for example, cause relcache reload to fail to adopt a new value following a change. Michael Paquier and Tom Lane, per a gripe from Andres Freund. Discussion: https://postgr.es/m/20210517204803.iyk5wwvwgtjcmc5w@alap3.anarazel.de
Diffstat (limited to 'src/backend/access/spgist/spgutils.c')
-rw-r--r--src/backend/access/spgist/spgutils.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/access/spgist/spgutils.c b/src/backend/access/spgist/spgutils.c
index 8d99c9b7626..9ff280a2526 100644
--- a/src/backend/access/spgist/spgutils.c
+++ b/src/backend/access/spgist/spgutils.c
@@ -165,8 +165,8 @@ fillTypeDesc(SpGistTypeDesc *desc, Oid type)
typtup = (Form_pg_type) GETSTRUCT(tp);
desc->attlen = typtup->typlen;
desc->attbyval = typtup->typbyval;
- desc->attstorage = typtup->typstorage;
desc->attalign = typtup->typalign;
+ desc->attstorage = typtup->typstorage;
ReleaseSysCache(tp);
}
@@ -304,8 +304,8 @@ getSpGistTupleDesc(Relation index, SpGistTypeDesc *keyType)
att->attalign = keyType->attalign;
att->attstorage = keyType->attstorage;
/* We shouldn't need to bother with making these valid: */
- att->attcollation = InvalidOid;
att->attcompression = InvalidCompressionMethod;
+ att->attcollation = InvalidOid;
/* In case we changed typlen, we'd better reset following offsets */
for (int i = spgFirstIncludeColumn; i < outTupDesc->natts; i++)
TupleDescAttr(outTupDesc, i)->attcacheoff = -1;