Home Explore Blog CI



postgresql

16th chunk of `doc/src/sgml/catalogs.sgml`
52cb80e15de02b91173a327342b4bd39404b39b559ec29c70000000100000fa0
 <structfield>attgenerated</structfield> to
       determine whether this is a default or a generation expression.)
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>atthasmissing</structfield> <type>bool</type>
      </para>
      <para>
       This column has a value which is used where the column is entirely
       missing from the row, as happens when a column is added with a
       non-volatile <literal>DEFAULT</literal> value after the row is created.
       The actual value used is stored in the
       <structfield>attmissingval</structfield> column.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>attidentity</structfield> <type>char</type>
      </para>
      <para>
       If a zero byte (<literal>''</literal>), then not an identity column.
       Otherwise, <literal>a</literal> = generated
       always, <literal>d</literal> = generated by default.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>attgenerated</structfield> <type>char</type>
      </para>
      <para>
       If a zero byte (<literal>''</literal>), then not a generated column.
       Otherwise, <literal>s</literal> = stored, <literal>v</literal> =
       virtual.  A stored generated column is physically stored like a normal
       column.  A virtual generated column is physically stored as a null
       value, with the actual value being computed at run time.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>attisdropped</structfield> <type>bool</type>
      </para>
      <para>
       This column has been dropped and is no longer valid.  A dropped
       column is still physically present in the table, but is
       ignored by the parser and so cannot be accessed via SQL.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>attislocal</structfield> <type>bool</type>
      </para>
      <para>
       This column is defined locally in the relation.  Note that a column can
       be locally defined and inherited simultaneously.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>attinhcount</structfield> <type>int2</type>
      </para>
      <para>
       The number of direct ancestors this column has.  A column with a
       nonzero number of ancestors cannot be dropped nor renamed.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>attcollation</structfield> <type>oid</type>
       (references <link linkend="catalog-pg-collation"><structname>pg_collation</structname></link>.<structfield>oid</structfield>)
      </para>
      <para>
       The defined collation of the column, or zero if the column is
       not of a collatable data type
      </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 null 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.
   

Title: pg_attribute Columns (Continued)
Summary
This section describes the remaining columns of the pg_attribute catalog, detailing: attidentity (whether the column is an identity column and its generation type), attgenerated (whether the column is generated, and if so, whether it is stored or virtual), attisdropped (whether the column has been dropped), attislocal (whether the column is defined locally), attinhcount (the number of direct ancestors the column has), attcollation (the collation of the column), and attstattarget (controls the level of detail for statistics accumulated by ANALYZE).