mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
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
This commit is contained in:
@ -1236,6 +1236,15 @@
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attalign</structfield> <type>char</type>
|
||||
</para>
|
||||
<para>
|
||||
A copy of <literal>pg_type.typalign</literal> of this column's type
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attstorage</structfield> <type>char</type>
|
||||
@ -1249,10 +1258,13 @@
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attalign</structfield> <type>char</type>
|
||||
<structfield>attcompression</structfield> <type>char</type>
|
||||
</para>
|
||||
<para>
|
||||
A copy of <literal>pg_type.typalign</literal> of this column's type
|
||||
The current compression method of the column. If it is an invalid
|
||||
compression method (<literal>'\0'</literal>) then column data will not
|
||||
be compressed. Otherwise, <literal>'p'</literal> = pglz compression or
|
||||
<literal>'l'</literal> = <productname>LZ4</productname> compression.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
@ -1355,18 +1367,6 @@
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attcompression</structfield> <type>char</type>
|
||||
</para>
|
||||
<para>
|
||||
The current compression method of the column. If it is an invalid
|
||||
compression method (<literal>'\0'</literal>) then column data will not
|
||||
be compressed. Otherwise, <literal>'p'</literal> = pglz compression or
|
||||
<literal>'l'</literal> = <productname>LZ4</productname> compression.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attacl</structfield> <type>aclitem[]</type>
|
||||
|
Reference in New Issue
Block a user