mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Save a few bytes in pg_attribute
Change the columns attndims, attstattarget, and attinhcount from int32 to int16, and reorder a bit. This saves some space (currently 4 bytes) in pg_attribute and tuple descriptors, which translates into small performance benefits and/or room for new columns in pg_attribute needed by future features. attndims and attinhcount are never realistically used with values larger than int16. Just to be sure, add some overflow checks. attstattarget is currently limited explicitly to 10000. For consistency, pg_constraint.coninhcount is also changed like attinhcount. Discussion: https://www.postgresql.org/message-id/flat/d07ffc2b-e0e8-77f7-38fb-be921dff71af%40enterprisedb.com
This commit is contained in:
@ -1164,23 +1164,6 @@
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attstattarget</structfield> <type>int4</type>
|
||||
</para>
|
||||
<para>
|
||||
<structfield>attstattarget</structfield> controls the level of detail
|
||||
of statistics accumulated for this column by
|
||||
<link linkend="sql-analyze"><command>ANALYZE</command></link>.
|
||||
A zero value indicates that no statistics should be collected.
|
||||
A negative value says to use the system default statistics target.
|
||||
The exact meaning of positive values is data type-dependent.
|
||||
For scalar data types, <structfield>attstattarget</structfield>
|
||||
is both the target number of <quote>most common values</quote>
|
||||
to collect, and the target number of histogram bins to create.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attlen</structfield> <type>int2</type>
|
||||
@ -1202,17 +1185,6 @@
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attndims</structfield> <type>int4</type>
|
||||
</para>
|
||||
<para>
|
||||
Number of dimensions, if the column is an array type; otherwise 0.
|
||||
(Presently, the number of dimensions of an array is not enforced,
|
||||
so any nonzero value effectively means <quote>it's an array</quote>.)
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attcacheoff</structfield> <type>int4</type>
|
||||
@ -1237,6 +1209,17 @@
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attndims</structfield> <type>int2</type>
|
||||
</para>
|
||||
<para>
|
||||
Number of dimensions, if the column is an array type; otherwise 0.
|
||||
(Presently, the number of dimensions of an array is not enforced,
|
||||
so any nonzero value effectively means <quote>it's an array</quote>.)
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attbyval</structfield> <type>bool</type>
|
||||
@ -1362,7 +1345,7 @@
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attinhcount</structfield> <type>int4</type>
|
||||
<structfield>attinhcount</structfield> <type>int2</type>
|
||||
</para>
|
||||
<para>
|
||||
The number of direct ancestors this column has. A column with a
|
||||
@ -1370,6 +1353,23 @@
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attstattarget</structfield> <type>int2</type>
|
||||
</para>
|
||||
<para>
|
||||
<structfield>attstattarget</structfield> controls the level of detail
|
||||
of statistics accumulated for this column by
|
||||
<link linkend="sql-analyze"><command>ANALYZE</command></link>.
|
||||
A zero value indicates that no statistics should be collected.
|
||||
A negative value says to use the system default statistics target.
|
||||
The exact meaning of positive values is data type-dependent.
|
||||
For scalar data types, <structfield>attstattarget</structfield>
|
||||
is both the target number of <quote>most common values</quote>
|
||||
to collect, and the target number of histogram bins to create.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>attcollation</structfield> <type>oid</type>
|
||||
@ -2691,7 +2691,7 @@ SCRAM-SHA-256$<replaceable><iteration count></replaceable>:<replaceable>&l
|
||||
|
||||
<row>
|
||||
<entry role="catalog_table_entry"><para role="column_definition">
|
||||
<structfield>coninhcount</structfield> <type>int4</type>
|
||||
<structfield>coninhcount</structfield> <type>int2</type>
|
||||
</para>
|
||||
<para>
|
||||
The number of direct inheritance ancestors this constraint has.
|
||||
|
Reference in New Issue
Block a user