<!--
 Documentation of the system catalogs, directed toward PostgreSQL developers
 $Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/catalogs.sgml,v 1.22 2001/09/10 05:44:56 t-ishii Exp $
 -->

<chapter id="catalogs">
<!-- <title>System Catalogs</title>-->

 <title>システムカタログ</title>
<indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary></indexterm>
<indexterm><primary>PostgreSQL</primary><secondary sortas="しすてむかたろぐ">システムカタログ</secondary></indexterm>
 <section id="catalogs-overview">
  <!--<title>Overview</title>-->

  <title>概要</title>

<!--  <para>
   The system catalogs are the place where a relational database
   management system stores schema metadata, such as information about
   tables and columns, and internal bookkeeping information.
   <productname>PostgreSQL</productname>'s system catalogs are regular
   tables.  You can drop and recreate the tables, add columns, insert
   and update values, and severely mess up your system that way.
   Normally one never has to change the system catalogs by hand, there
   are always SQL commands to do that.  (For example, <command>CREATE
   DATABASE</command> inserts a row into the
   <structname>pg_database</structname> catalog &bsol;-&bsol;- and actually
   creates the database on disk.)  There are some exceptions for
   esoteric operations, such as adding index access methods.
  </para>  -->

  <para>
   システムカタログとは、リレーショナルデータベースの管理システムがテーブルやカラムの情報などのメタデータの概要と内部的な情報を格納する場所です。<productname>PostgreSQL</productname>のシステムカタログは普通のテーブルで作成されています。このテーブルのカラムを追加したり、値の挿入や更新、あるいはテーブルの削除や再構築は可能ですが、それらの行為はデータベースのシステムを著しく破壊してしまう可能性があります。通常は手動でシステムカタログの設定を変更する必要はなく、SQLコマンドを使用します。たとえば<command>CREATE DATABASE</command>のコマンドを使って<structname>pg_database</structname>カタログに行を挿入し、ディスク上に実際のデータベースを作成します。しかし、アクセスメソッドにインデックスを追加するときのような難易度の高い操作のときなどは例外があります。
  </para>

  <table>
   <!--<title>System Catalogs</title>-->

   <title>システムカタログ</title>

   <tgroup cols="2">
    <thead>
     <row>
      <!--<entry>Catalog Name</entry>
      <entry>Purpose</entry>-->

      <entry>カタログ名</entry>
      <entry>用途</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>pg_aggregate<indexterm><primary>pg_aggregate</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_aggregate</secondary></indexterm></entry>
      <!--<entry>aggregate functions</entry>-->

      <entry>集約関数<indexterm><primary sortas="しゅうやくかんすう">集約関数</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="しゅうやくかんすう">集約関数</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_am<indexterm><primary>pg_am</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_am</secondary></indexterm></entry>
      <!--<entry>index access methods</entry>-->

      <entry>インデックスへのアクセスメソッド<indexterm><primary sortas="いんでっくすのあくせすめそっど">インデックスへのアクセスメソッド</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="いんでっくすのあくせすめそっど">インデックスへのアクセスメソッド</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_amop<indexterm><primary>pg_amop</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_amop</secondary></indexterm></entry>
      <!--<entry>access method operators</entry>-->

      <entry>アクセスメソッド演算子<indexterm><primary sortas="あくせすめそっどえんざんし">アクセスメソッド演算子</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="あくせすめそっどえんざんし">アクセスメソッド演算子</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_amproc<indexterm><primary>pg_amproc</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_amproc</secondary></indexterm></entry>
      <!--<entry>access method support procedures</entry>-->

      <entry>アクセスメソッドサポート手順<indexterm><primary sortas="あくせすめそっどさぽーとてじゅん">アクセスメソッドサポート手順</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="あくせすめそっどさぽーとてじゅん">アクセスメソッドサポート手順</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_attrdef<indexterm><primary>pg_attrdef</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_attrdef</secondary></indexterm></entry>
      <!--<entry>column default values</entry>-->

      <entry>カラムのデフォルト値<indexterm><primary sortas="からむのでふぉるとち">カラムのデフォルト値</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="からむのでふぉるとち">カラムのデフォルト値</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_attribute<indexterm><primary>pg_attribute</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_attribute</secondary></indexterm></entry>
      <!--<entry>table columns (attributes, fields)</entry>-->

      <entry>テーブルカラム（属性、フィールド）<indexterm><primary sortas="てーぶるからむ">テーブルカラム</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="てーぶるからむ">テーブルカラム</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_class<indexterm><primary>pg_class</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_class</secondary></indexterm></entry>
      <!--<entry>tables, indexes, sequences (<quote>relations</quote>)</entry>-->

      <entry>テーブル、インデックス、シーケンス（<quote>リレーション</quote>）<indexterm><primary sortas="りれーしょん">リレーション</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="りれーしょん">リレーション</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_database<indexterm><primary>pg_database</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_database</secondary></indexterm></entry>
      <!--<entry>databases</entry>-->

      <entry>データベース<indexterm><primary sortas="でーたべーす">データベース</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="でーたべーす">データベース</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_description<indexterm><primary>pg_description</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_description</secondary></indexterm></entry>
      <!--<entry>descriptions or comments on database objects</entry>-->

      <entry>データベースオブジェクトの説明/コメント<indexterm><primary sortas="でーたべーすおぶじぇくと">データベースオブジェクト</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="でーたべーすおぶじぇくと">データベースオブジェクト</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_group<indexterm><primary>pg_group</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_group</secondary></indexterm></entry>
      <!--<entry>user groups</entry>-->

      <entry>ユーザーグループ<indexterm><primary sortas="ぐるーぷ">グループ</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="ぐるーぷ">グループ</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_index<indexterm><primary>pg_index</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_index</secondary></indexterm></entry>
      <!--<entry>additional index information</entry>-->

      <entry>追加インデックス情報<indexterm><primary sortas="いんでっくす">インデックス</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="いんでっくす">インデックス</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_inheritproc<indexterm><primary>pg_inheritproc</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_inheritproc</secondary></indexterm></entry>
      <!--<entry>(not used)</entry>-->

      <entry>（使用されていません）</entry>

     </row>

     <row>
      <entry>pg_inherits<indexterm><primary>pg_inherits</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_inherits</secondary></indexterm></entry>
      <!--<entry>table inheritance hierarchy</entry>-->

      <entry>テーブル継承階層<indexterm><primary sortas="てーぶるけいしょう">テーブル継承</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="てーぶるけいしょう">テーブル継承</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_ipl<indexterm><primary>pg_ipl</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_ipl</secondary></indexterm></entry>
      <!--<entry>(not used)</entry>-->

      <entry>（使用されていません）</entry>

     </row>

     <row>
      <entry>pg_language<indexterm><primary>pg_language</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_language</secondary></indexterm></entry>
      <!--<entry>languages for writing functions</entry>-->

      <entry>関数を記述するための言語<indexterm><primary sortas="げんご">言語</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="げんご">言語</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_largeobject<indexterm><primary>pg_largeobject</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_largeobject</secondary></indexterm></entry>
      <!--<entry>large objects</entry>-->

      <entry>ラージオブジェクト<indexterm><primary sortas="らーじおぶじぇくと">ラージオブジェクト</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="らーじおぶじぇくと">ラージオブジェクト</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_listener<indexterm><primary>pg_listener</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_listener</secondary></indexterm></entry>
      <!--<entry>asynchronous notification</entry>-->

      <entry>非同期通知<indexterm><primary sortas="ひどうきつうち">非同期通知</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="ひどうきつうち">非同期通知</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_opclass<indexterm><primary>pg_opclass</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_opclass</secondary></indexterm></entry>
      <!--<entry>index access method operator classes</entry>-->

      <entry>インデックスアクセスメソッド演算子クラス<indexterm><primary sortas="いんでっくすあくせすめそっどえんざんしくらす">インデックスアクセスメソッド演算子クラス</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="いんでっくすあくせすめそっどえんざんしくらす">インデックスアクセスメソッド演算子クラス</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_operator<indexterm><primary>pg_operator</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_operator</secondary></indexterm></entry>
      <!--<entry>operators</entry>-->

      <entry>演算子<indexterm><primary sortas="えんざんし">演算子</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="えんざんし">演算子</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_proc<indexterm><primary>pg_proc</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_proc</secondary></indexterm></entry>
      <!--<entry>functions and procedures</entry>-->

      <entry>関数とプロシージャ<indexterm><primary sortas="かんすう">関数</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="かんすう">関数</secondary></indexterm><indexterm><primary sortas="ぷろしーじゃ">プロシージャ</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="ぷろしーじゃ">プロシージャ</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_relcheck<indexterm><primary>pg_relcheck</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_relcheck</secondary></indexterm></entry>
      <!-- <entry>check constraints</entry> -->

      <entry>チェック制約<indexterm><primary sortas="ちぇっくせいやく">チェック制約</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="ちぇっくせいやく">チェック制約</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_rewrite<indexterm><primary>pg_rewrite</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_rewrite</secondary></indexterm></entry>
      <!--<entry>query rewriter rules</entry>-->

      <entry>問い合わせ書き換えルール<indexterm><primary sortas="るーる">ルール</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="るーる">ルール</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_shadow<indexterm><primary>pg_shadow</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_shadow</secondary></indexterm></entry>
      <!--<entry>database users</entry>-->

      <entry>データベースユーザー<indexterm><primary sortas="ゆーざー">ユーザー</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="ゆーざー">ユーザー</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_statistic<indexterm><primary>pg_statistic</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_statistic</secondary></indexterm></entry>
      <!--<entry>optimizer statistics</entry>-->

      <entry>オプティマイザ統計値<indexterm><primary sortas="おぷてぃまいざとうけいち">オプティマイザ統計値</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="おぷてぃまいざとうけいち">オプティマイザ統計値</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_trigger<indexterm><primary>pg_trigger</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_trigger</secondary></indexterm></entry>
      <!--<entry>triggers</entry>-->

      <entry>トリガ<indexterm><primary sortas="とりが">トリガ</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="とりが">トリガ</secondary></indexterm></entry>

     </row>

     <row>
      <entry>pg_type<indexterm><primary>pg_type</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_type</secondary></indexterm></entry>
      <!--<entry>data types</entry>-->

      <entry>データ型<indexterm><primary sortas="でーたがた">データ型</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary sortas="でーたがた">データ型</secondary></indexterm></entry>

     </row>
    </tbody>
   </tgroup>
  </table>

  <!--<para>
   More detailed documentation of most catalogs follow below.  The
   catalogs that relate to index access methods are explained in the
   <citetitle>Programmer's Guide</citetitle>.  Some catalogs don't
   have any documentation, yet.
  </para>-->

  <para>
   カタログのより詳細な解説を以下に示します。インデックスアクセスメソッドに関連のあるカタログは<citetitle>&programmer-guide;</citetitle>に説明が記されています。いくつかのカタログはまだドキュメントが書かれていません。
  </para>

 </section>


 <section id="catalog-pg-aggregate">
  <title>pg_aggregate</title><indexterm><primary>pg_aggregate</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_aggregate</secondary></indexterm>

  <!--<para>
   <structname>pg_aggregate</structname> stores information about
   aggregate functions.  An aggregate function is a function that
   operates on a set of values (typically one column from each the row
   that matches a query condition) and returns a single value computed
   from all these values.  Typical aggregate functions are
   <function>sum</function>, <function>count</function>, and
   <function>max</function>.
  </para>-->

  <para>
   <structname>pg_aggregate</structname>には、集約関数の情報が格納されています。集約関数とは、いくつかの値（多くの場合は問い合わせ条件に該当する各行のカラム）にある操作を行い、その操作で得た1つの値を返します。集約関数の代表的なものは<function>sum</function>、<function>count</function>、<function>max</function>などです。
  </para>

  <table>
   <!--<title>pg_aggregate Columns</title>-->

   <title>pg_aggregateのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>
    <tbody>
     <row>
      <entry>aggname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Name of the aggregate function</entry>-->

      <entry>集約関数名</entry>

     </row>
     <row>
      <entry>aggowner</entry>
      <entry><type>int4</type></entry>
      <entry>pg_shadow.usesysid</entry>
      <!--<entry>Owner (creator) of the aggregate function</entry>-->

      <entry>集約関数のオーナー（作成者）</entry>

     </row>
     <row>
      <entry>aggtransfn</entry>
      <entry><type>regproc</type> (function)</entry>
      <entry></entry>
      <!--<entry>Transition function</entry>-->

      <entry>遷移関数</entry>

     </row>
     <row>
      <entry>aggfinalfn</entry>
      <entry><type>regproc</type> (function)</entry>
      <entry></entry>
      <!--<entry>Final function</entry>-->

      <entry>最終関数</entry>

     </row>
     <row>
      <entry>aggbasetype</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>The type on which this function operates when invoked from SQL</entry>-->

      <entry>SQL文から呼ばれたときにこの関数が実行される型</entry>

     </row>
     <row>
      <entry>aggtranstype</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>The type of the aggregate function's internal transition (state) data</entry>-->

      <entry>集約関数の内部遷移（状態）データの型</entry>

     </row>
     <row>
      <entry>aggfinaltype</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>The type of the result</entry>-->

      <entry>結果の型</entry>

     </row>
     <row>
      <entry>agginitval</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>The initial value of the transition state.  This is a text
       field which will be cast to the type of aggtranstype.
      </entry>-->

      <entry>遷移状態の初期値。これはテキストフィールドであり、aggtranstypeの型にキャストされます
      </entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 <!-- <para>
   New aggregate functions are registered with the <command>CREATE
   AGGREGATE</command> command.  See the <citetitle>Programmer's
   Guide</citetitle> for more information about writing aggregate
   functions and the meaning of the transition functions, etc.
  </para>-->

  <para>
   新しい集約関数は<command>CREATE AGGREGATE</command>コマンドを使って登録されます。集約関数を著述するための詳細や、遷移関数の詳細などは<citetitle>&programmer-guide;</citetitle>を参照してください。
  </para>

  <!--<para>
   An aggregate function is identified through name
   <emphasis>and</emphasis> argument type.  Hence aggname and aggbasetype
   are the composite primary key.
  </para>-->

  <para>
   集約関数は名前<emphasis>と</emphasis>引数型によって識別されます。したがって、aggnameとaggnameが複合は主キーとなります。
  </para>

 </section>


 <section id="catalog-pg-attrdef">
  <title>pg_attrdef</title><indexterm><primary>pg_attrdef</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_attrdef</secondary></indexterm>

  <!--<para>
   This catalog stores column default values.  The main information
   about columns is stored in <structname>pg_attribute</structname>
   (see below).  Only columns that explicitly specify a default value
   (when the table is created or the column is added) will have an
   entry here.
  </para>-->

  <para>
   このカタログはカラムのデフォルト値が格納されています。カラムに関する主な情報は<structname>pg_attribute</structname>に格納されています（下記を参照）。ここに書かれているカラムはテーブルが作成されたときや、カラムが挿入されたときにデフォルト値が明確に設定されているもののみです。
  </para>

  <table>
   <!--<title>pg_attrdef Columns</title>-->

   <title>pg_attrdefのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>adrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>The table this column belongs to</entry>-->

      <entry>このカラムが属するテーブル</entry>

     </row>

     <row>
      <entry>adnum</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>The number of the column; see
       <structname>pg_attribute</structname>.<structfield>pg_attnum</structfield>
      </entry>-->

      <entry>カラムの数。<structname>pg_attribute</structname>と<structfield>pg_attnum</structfield>を
       参照してください
      </entry>

     </row>

     <row>
      <entry>adbin</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>An internal representation of the column default value</entry>-->

      <entry>カラムのデフォルト値（内部表現）</entry>

     </row>

     <row>
      <entry>adsrc</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>A human-readable representation of the default value</entry>-->

      <entry>人間が解読可能なカラムのデフォルト値です</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-attribute">
  <title>pg_attribute</title><indexterm><primary>pg_attribute</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_attribute</secondary></indexterm>

  <!--<para>
   <structname>pg_attribute</structname> stores information about
   table columns.  There will be exactly one
   <structname>pg_attribute</structname> row for every column in every
   table in the database.  (There will also be attribute entries for
   indexes and other objects.  See <structname>pg_class</structname>.)
  </para>-->

  <para>
   <structname>pg_attribute</structname>にはテーブルカラム情報が格納されています。データベース内のすべてのテーブルの各カラムには必ず1つの<structname>pg_attribute</structname>行があります（また、インデックスとその他のオブジェクトにも属性があります。<structname>pg_class</structname>も参照してください）。
  </para>

  <!--<para>
   The term attribute is equivalent to column and is used for
   historical reasons.
  </para>-->

  <para>
   属性という表現は、カラムと同等の意味で、歴史的背景からそのように呼ばれています。
  </para>

  <table>
   <!--<title>pg_attribute Columns</title>-->

   <title>pg_attributeのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>attrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>The table this column belongs to</entry>-->

      <entry>このカラムが属するテーブル</entry>

     </row>

     <row>
      <entry>attname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Column name</entry>-->

      <entry>カラム名</entry>

     </row>

     <row>
      <entry>atttypid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>The data type of this column</entry>-->

      <entry>このカラムのデータ型</entry>

     </row>

     <row>
      <entry>attdispersion</entry>
      <entry><type>float4</type></entry>
      <entry></entry>
      <!--<entry><structfield>attdispersion</structfield> is the dispersion
       statistic of the column (0.0 to 1.0), or zero if the statistic
       has not been calculated, or -1.0 if <command>VACUUM</command>
       found that the column contains no duplicate entries (in which
       case the dispersion should be taken as
       1.0/<symbol>numberOfRows</symbol> for the current table size).
       The -1.0 hack is useful because the number of rows may be
       updated more often than
       <structfield>attdispersion</structfield> is. We assume that the
       column will retain its no-duplicate-entry property.
      </entry>-->

      <entry><structfield>attdispersion</structfield>とは、カラムの分散値（0.0〜1.0）です。統計の計算が済んでいない場合には0になります。また、<command>VACUUM</command>によって、カラムに重複したエントリがないことがわかっている場合（その場合、分散は、現在のテーブルの大きさに対し1.0/<symbol>numberOfRows</symbol>とすべきです）は-1.0になります。-1.0とする小細工は、<structfield>attdispersion</structfield>よりも行数の方が頻繁に更新されるので有用です。カラムに重複したエントリがないという性質が保持されると仮定しています
      </entry>

     </row>

     <row>
      <entry>attlen</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>This is a copy of the
       <structname>pg_type</structname>.<structfield>typlen</structfield>
       for this column's type.
      </entry>-->

      <entry><structname>pg_type</structname>の<structfield>typlen</structfield>をこのカラムの型に合わせたもの
      </entry>

     </row>

     <row>
      <entry>attnum</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>The number of the column.  Ordinary columns are numbered from 1
       up.  System columns, such as <structfield>oid</structfield>,
       have (arbitrary) negative numbers.
      </entry>-->

      <entry>カラムの数です。通常、カラムは1から始まり増える番号付けがされます。<structfield>oid</structfield>のようなシステムカラムは任意の負の数を保持しています
      </entry>

     </row>

     <row>
      <entry>attnelems</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>Number of dimensions, if the column is an array</entry>-->

      <entry>もしカラムが配列だった場合、その配列の次元の数</entry>

     </row>

     <row>
      <entry>attcacheoff</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>Always -1 in storage, but when loaded into a tuple descriptor
       in memory this may be updated cache the offset of the attribute
       within the tuple.
      </entry>-->

      <entry>格納時は必ず-1となりますが、メモリ内でタプル記述子にロードされた場合は、タプル内の更新されたキャッシュの属性のオフセットである可能性があります
      </entry>

     </row>

     <row>
      <entry>atttypmod</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry><structfield>atttypmod</structfield> records type-specific data
       supplied at table creation time (for example, the maximum
       length of a <type>varchar</type> column).  It is passed to
       type-specific input and output functions as the third
       argument. The value will generally be -1 for types that do not
       need typmod.
      </entry>-->

      <entry><structfield>atttypmod</structfield>はテーブルが作成されたときに指定された、型固有のデータ型を記録します（たとえば、<type>varchar</type>カラムの最大長さなど）。そしてそれらは型特有の入出力関数に第3引数として渡されます。typmodの必要がない型の値は通常‐1です
      </entry>

     </row>

     <row>
      <entry>attbyval</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>A copy of
       <structname>pg_type</structname>.<structfield>typbyval</structfield>
       of this column's type
      </entry>-->

      <entry><structname>pg_type</structname>の<structfield>typbyval</structfield>をこのカラムの型に合わせたものです
      </entry>

     </row>

     <row>
      <entry>attstorage</entry>
      <entry><type>char</type></entry>
      <entry></entry>
      <!--<entry>A copy of
       <structname>pg_type</structname>.<structfield>typstorage</structfield>
       of this column's type
      </entry>-->

      <entry><structname>pg_type</structname>の<structfield>typstorage</structfield>をこのカラムの型に合わせたものです
      </entry>

     </row>

     <row>
      <entry>attisset</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>If true, this attribute is a set.  In that case, what is really
       stored in the attribute is the OID of a tuple in the
       <structname>pg_proc</structname> catalog.  The
       <structname>pg_proc</structname> tuple contains the query
       string that defines this set - i.e., the query to run to get
       the set.  So the <structfield>atttypid</structfield> (see
       above) refers to the type returned by this query, but the
       actual length of this attribute is the length (size) of an
       <type>oid</type>.  - At least this is the theory.  All this
       is probably quite broken these days.
       </entry> -->

      <entry>真の場合、この属性は集合となります。その場合、属性に実際に格納されるものは<structname>pg_proc</structname>カタログにあるタプルのOIDになります。<structname>pg_proc</structname>タプルにはこのセットを定義するクエリの文字列（セットを取得するためのクエリなど）があります。<structfield>atttypid</structfield>（上記を参照）はこの問い合わせによって返された型を参照しますが、実際のこの属性の長さは<type>oid</type>の長さとなります（これは正論なのですが、今日ではかなり守られていないかもしれません）
      </entry>

     </row>

     <row>
      <entry>attalign</entry>
      <entry><type>char</type></entry>
      <entry></entry>
      <!--<entry>A copy of
       <structname>pg_type</structname>.<structfield>typalign</structfield>
       of this column's type
      </entry>-->

      <entry><structname>pg_type</structname>の<structfield>typalign</structfield>をこのカラムの型に合わせたものです
      </entry>

     </row>

     <row>
      <entry>attnotnull</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>This represents a NOT NULL constraint.  It is possible to
       change this field to enable or disable the constraint.
      </entry>-->

      <entry>これはNOT NULL制約を意味しています。フィールドを変更してこの制約を有効にしたり、無効にしたりできます
      </entry>

     </row>

     <row>
      <entry>atthasdef</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>This column has a default value, in which case there will be a
       corresponding entry in the <structname>pg_attrdef</structname>
       catalog that actually defines the value.
      </entry>-->

      <entry>このカラムにはデフォルト値をもっています。その場合、実際に値を定義する<structname>pg_attrdef</structname>カタログ中に対応するエントリがあります
      </entry>

     </row>

    </tbody>
   </tgroup>
  </table>
 </section>


 <section id="catalog-pg-class">
  <title>pg_class</title><indexterm><primary>pg_class</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_class</secondary></indexterm>

  <!--<para>
   <structname>pg_class</structname> catalogues tables and mostly
   everything else that has columns or is otherwise similar to a
   table.  This includes indexes (but see
   <structname>pg_index</structname>), sequences, views, and some
   kinds of special relation kinds.  Below, when we mean all of these
   kinds of objects we speak of <quote>relations</quote>.  Not all
   fields are meaningful for all relation types.
  </para>-->

  <para>
   <structname>pg_class</structname>カタログには、テーブルや、その他の列を保持しているすべてのものが格納され、テーブルと似ています。その中にはインデックス （<structname>pg_index</structname>を参照）、シーケンス、ビューやその他特別な関係があります。これより以下、<quote>relations</quote>と記されている場合はこれらすべてのオブジェクトを意味しています。すべてのフィールドがすべてのリレーションタイプに該当しません。
  </para>



  <table>
   <title>pg_class <!--Columns-->のカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>relname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Name of the table, index, view, etc.</entry>-->

      <entry>テーブル、インデックス、ビューなどの名前</entry>

     </row>

     <row>
      <entry>reltype</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>The data type that corresponds to this table (not functional,
       only set for system tables)
      </entry>-->

      <entry>機能上ではなくシステムテーブルのセットのみに関して、このテーブルと一致するデータ型
      </entry>

     </row>

     <row>
      <entry>relowner</entry>
      <entry><type>int4</type></entry>
      <entry>pg_shadow.usesysid</entry>
      <!--<entry>Owner of the relation</entry>-->

      <entry>リレーションの所有者</entry>

     </row>

     <row>
      <entry>relam</entry>
      <entry><type>oid</type></entry>
      <entry>pg_am.oid</entry>
      <!--<entry>If this is an index, the access method used (btree, hash, etc.)</entry>-->

      <entry>これがインデックスの場合は、それに使われているアクセスメソッド（B-tree、R-tree、hashなど）</entry>

     </row>

     <row>
      <entry>relfilenode</entry>
      <entry><type>oid</type></entry>
      <entry></entry>
      <!--<entry>Name of the on-disk file of this relation</entry>-->

      <entry>このリレーションのディスク上のファイル名</entry>

     </row>

     <row>
      <entry>relpages</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>Size of the on-disk representation of this table in pages (size
       <symbol>BLCKSZ</symbol>).  This is only an approximate value
       which is calculated during vacuum.
      </entry>-->

      <entry>ページごとのこのテーブルのon-disk表現のサイズ（size<symbol>BLCKSZ</symbol>）。vacuum実行時に計算されたおおよその値です
      </entry>

     </row>

     <row>
      <entry>reltuples</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>Number of tuples in the table.  This is only an estimate used
       by the planner, updated by <command>VACUUM</command>.
      </entry>-->

      <entry>テーブル内のタプル数。これはプランナが使用して、<command>VACUUM</command>によって更新される見積もりです
      </entry>

     </row>

     <row>
      <entry>reltoastrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>Oid of the TOAST table associated with this table, 0 if none.
       The TOAST table stores large attributes <quote>out of
       line</quote> in a secondary table.
      </entry>-->

      <entry>このテーブルに関連しているTOASTテーブルのOIDです。何もない場合は0となります。TOASTテーブルは大きい属性は<quote>例外</quote>で、別のテーブル（セカンダリーテーブル）に格納されます
      </entry>

     </row>

     <row>
      <entry>reltoastidxid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>Oid of the index on the TOAST table for this table, 0 if none</entry>-->

      <entry>このテーブルのためのTOASTテーブルのインデックスのOIDです。ない場合は0となります
      </entry>

     </row>

     <row>
      <entry>relhasindex</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>True if this is a table and it has at least one index</entry>-->

      <entry>テーブルで、少なくとも1つのインデックスがある場合は真となります</entry>

     </row>

     <row>
      <entry>relisshared</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>XXX (This is not what it seems to be.)</entry>-->

      <entry>ブーリアン型ですが、XXXが格納されています</entry>

     </row>

     <row>
      <entry>relkind</entry>
      <entry><type>char</type></entry>
      <entry></entry>
      <!--<entry>'r' = ordinary table, 'i' = index, 'S' = sequence, 'v' = view,
       's' = special, 't' = secondary TOAST table
      </entry>-->

      <entry>'r'――普通のテーブル、 'i'――インデックス、 'S'――シーケンス、 'v'――ビュー、's'――特別なもの、 't'――セカンダリTOASTテーブル
      </entry>

     </row>

     <row>
      <entry>relnatts</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>Number of columns in the relation, besides system columns.
       There must be this many corresponding entries in
       <structname>pg_attribute</structname>.  See also
       <structname>pg_attribute</structname>.<structfield>attnum</structfield>.
      </entry>-->

      <entry>システムカラム以外の、リレーションにあるカラムの数。<structname>pg_attribute</structname>にこれらに対応する記載事項が必要です。<structname>pg_attribute</structname>の<structfield>attnum</structfield>も参照してください
      </entry>

     </row>

     <row>
      <entry>relchecks</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>Number of check constraints on the table; see
       <structname>pg_relcheck</structname> catalog
      </entry>-->

      <entry>テーブルのチェック制約の数<structname>pg_relcheck</structname>カタログも参照してください
      </entry>

     </row>

     <row>
      <entry>reltriggers</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>Number of triggers on the table; see
       <structname>pg_trigger</structname> catalog
      </entry>-->

      <entry>テーブルのトリガ数<structname>pg_trigger</structname>カタログも参照してください
      </entry>

     </row>

     <row>
      <entry>relukeys</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>unused  (<emphasis>Not</emphasis> the number of unique keys or something.)
      </entry>-->

      <entry>使用されていません（一意キーなどでは<emphasis>ありません</emphasis>）
      </entry>

     </row>

     <row>
      <entry>relfkeys</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>Number foreign keys on the table</entry>-->

      <entry>テーブルの外部キーの数</entry>

     </row>

     <row>
      <entry>relhaspkey</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>unused  (No, this does not say whether the table has a primary
       key.  It's really unused.)
      </entry>-->

      <entry>使用されていません（テーブルが主キーを保持しているという意味ではありません）
      </entry>

     </row>

     <row>
      <entry>relhasrules</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!-- <entry>Table has rules</entry> -->

      <entry>テーブルにルールがある場合、真になります</entry>

     </row>

     <row>
      <entry>relhassubclass</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>At least one table inherits this one</entry>-->

      <entry>1つ以上のテーブルがこのテーブルを継承している場合、真になります
      </entry>

     </row>

     <row>
      <entry>relacl</entry>
      <entry><type>aclitem[]</type></entry>
      <entry></entry>
      <!--<entry>Access permissions.  See the descriptions of
       <command>GRANT</command> and <command>REVOKE</command> for
       details.
      </entry>-->

      <entry>アクセス権限。詳細は<command>GRANT</command>と<command>REVOKE</command>の説明を参照してください
      </entry>

     </row>
    </tbody>
   </tgroup>
  </table>
 </section>


 <section id="catalog-pg-database">
  <title>pg_database</title><indexterm><primary>pg_database</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_database</secondary></indexterm>

  <!--<para>
   The <structname>pg_database</structname> catalog stores information
   about the available databases.  The
   <structname>pg_database</structname> table is shared between all
   databases of a cluster.  Databases are created with the
   <command>CREATE DATABASE</command>.  Consult the
   <citetitle>Administrator's Guide</citetitle> for details about the
   meaning of some of the parameters.
  </para>-->

  <para>
   <structname>pg_database</structname>カタログには、使用可能なデータベースの情報が格納されています。<structname>pg_database</structname>テーブルはすべてのデータベースに共有されています。データベースは<command>CREATE DATABASE</command>コマンドで作成されます。パラメータの詳細については<citetitle>&admin-guide;</citetitle>を参照してください。
  </para>

  <table>
   <title>pg_database <!--Columns-->のカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>datname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Database name</entry>-->

      <entry>データベース名です</entry>

     </row>

     <row>
      <entry>datdba</entry>
      <entry><type>int4</type></entry>
      <entry>pg_shadow.usesysid</entry>
      <!--<entry>Owner of the database, initially who created it</entry>-->

      <entry>データベースを作成した、データベース所有者です</entry>

     </row>

     <row>
      <entry>encoding</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>Character/multibyte encoding for this database</entry>-->

      <entry>このデータベースの文字/マルチバイト符号化方式です</entry>

     </row>

     <row>
      <entry>datistemplate</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>If true then this database can be used in the
       <quote>TEMPLATE</quote> clause of <command>CREATE
       DATABASE</command> to create the new database as a clone of
       this one.
      </entry>-->

      <entry>これが真ならば、このデータベースの新しいコピーを<command>CREATE DATABASE</command>の<quote>TEMPLATE</quote>句を使って作成することができます
      </entry>

     </row>

     <row>
      <entry>datallowconn</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>If false then no one can connect to this database.  This is
       used to protect the template0 database from being altered.
      </entry>-->

       <entry>これが偽ならば、このデータベースには誰もアクセスすることはできません。これはtemplate0のデータベースが変更されるのを防ぐために使用されます
       </entry>

     </row>

     <row>
      <entry>datlastsysoid</entry>
      <entry><type>oid</type></entry>
      <entry></entry>
      <!--<entry>Last oid in existence after the database was created; useful
       particularly to <application>pg_dump</application>
      </entry>-->

      <entry>データベースが作成されてから現存する最後のOIDです。<application>pg_dump</application>の際に特に有益です
      </entry>

     </row>

     <row>
      <entry>datpath</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>If the database is stored at an alternative location then this
       records the location.  It's either an environment variable name
       or an absolute path, depending how it was entered.
      </entry>-->

      <entry>もしデータベースが別の場所に保管されている場合、その場所を記録しています。その場所がどのように記述されたかで、この値は環境の変数名、もしくは絶対パスかになります
      </entry>

     </row>
    </tbody>
   </tgroup>
  </table>
 </section>


 <section id="catalog-pg-description">
  <title>pg_description</title><indexterm><primary>pg_description</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_description</secondary></indexterm>

  <!--<para>
   The pg_description table can store an optional description or
   comment for each database object.  Descriptions can be manipulated
   with the <command>COMMENT</command> command.  Client applications
   can view the descriptions by joining with this table.  Many builtin
   system objects have comments associated with them that are shown by
   <application>psql</application>'s <literal>&bsol;d</literal> commands.
  </para>-->

  <para>
   各データベースオブジェクトに対して補足説明やコメントを付けることができ、それらはpg_descriptionテーブルに保管されます。補足説明は<command>COMMENT</command>コマンドで編集することができます。クライアントアプリケーションからはこのテーブルと結合させることによって補足説明を見ることができます。多くのはめ込み型のシステムオブジェクトはコメントが付けられていて、<application>psql</application>の<literal>&bsol;d</literal>コマンドで見ることができます。
  </para>

  <table>
   <!--<title>pg_description Columns</title>-->

   <title>pg_descriptionのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>objoid</entry>
      <entry><type>oid</type></entry>
      <entry>any oid attribute</entry>
      <!--<entry>The oid of the object this description pertains to</entry>-->

      <entry>この説明が付属するオブジェクトのoidです</entry>

     </row>

     <row>
      <entry>description</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>Arbitrary text that serves as the description of this object.</entry>-->

      <entry>このオブジェクトの説明となる、任意のテキストです</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-group">
  <title>pg_group</title><indexterm><primary>pg_group</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_group</secondary></indexterm>

  <!--<para>
   This catalog defines groups and stores what users belong to what
   groups.  Groups are created with the <command>CREATE
   GROUP</command> command.  Consult the <citetitle>Administrator's
   Guide</citetitle> for information about user permission management.
  </para>-->

  <para>
   このカタログではグループが定義されており、どのグループに誰が所属しているかを記憶しています。グループは<command>CREATE GROUP</command>コマンドで作成されます。ユーザー権限監理に関することは<citetitle>&admin-guide;</citetitle>を参照してください。
  </para>

  <table>
   <title>pg_group <!--Columns-->のカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>groname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Name of the group</entry>-->

      <entry>グループ名です</entry>

     </row>

     <row>
      <entry>grosysid</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>An arbitrary number to identify this group</entry>-->

      <entry>このグループを識別するための任意の数</entry>

     </row>

     <row>
      <entry>grolist</entry>
      <entry><type>int4[]</type></entry>
      <entry>pg_shadow.usesysid</entry>
      <!--<entry>An array containing the ids of the users in this group</entry>-->

      <entry>このグループのユーザーのIDを保持した配列です</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-index">
  <title>pg_index</title><indexterm><primary>pg_index</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_index</secondary></indexterm>

  <!--<para>
   <structname>pg_index</structname> contains part of the information
   about indexes.  The rest is mostly in
   <structname>pg_class</structname>.
  </para>-->

  <para>
   <structname>pg_index</structname>はインデックスの情報の一部を保持しています。その他ほとんどの情報は<structname>pg_class</structname>にあります。
  </para>

  <table>
   <!--<title>pg_index Columns</title>-->

   <title>pg_indexのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>indexrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>The oid of the pg_class entry for this index</entry>-->

      <entry>このインデックスのためのpg_class内容のOIDです</entry>

     </row>

     <row>
      <entry>indrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>The oid of the pg_class entry for the table this index is for</entry>-->

      <entry>このインデックスが使われるテーブルのためのpg_class内容のOIDです</entry>

     </row>

     <row>
      <entry>indproc</entry>
      <entry><type>oid</type></entry>
      <entry>pg_proc.oid</entry>
      <!--<entry>The registered procedure if this is a functional index</entry>-->

      <entry>もしこれがファンクショナルインデックスならば、登録されたプロシージャです</entry>

     </row>

     <row>
      <entry>indkey</entry>
      <entry><type>int2vector</type></entry>
      <entry>pg_attribute.attnum</entry>
      <!--<entry>This is an vector (array) of up to
       <symbol>INDEX_MAX_KEYS</symbol> values that indicate which
       table columns this index pertains to.  For example a value of
       <literal>1 3</literal> would mean that the first and the third
       column make up the index key.
      </entry>-->

      <entry>このインデックスがどのテーブルのカラムまで対応しているかを示す<symbol>INDEX_MAX_KEYS</symbol>の値までのベクトル（配列）です。たとえば、<literal>1 3</literal>は1番目と3番目のカラムがインデックスキーとなっていることを示します
      </entry>

     </row>

     <row>
      <entry>indclass</entry>
      <entry><type>oidvector</type></entry>
      <entry>pg_opclass.oid</entry>
      <!--<entry>For each column in the index key this contains a reference to
       the <quote>operator class</quote> to use.  See
       <structname>pg_opclass</structname> for details.
      </entry>-->

      <entry>インデックスキーの各カラムにおいて、<quote>operator class</quote>への参照を保持しています。詳細は<structname>pg_opclass</structname>を参照してください
      </entry>

     </row>

     <row>
      <entry>indisclustered</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>indislossy</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <entry><!--???--></entry>
     </row>

     <row>
      <entry>indhaskeytype</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <entry><!--???--></entry>
     </row>

     <row>
      <entry>indisunique</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>If true, this is a unique index.</entry>-->

      <entry>真であるならば、これは一意なインデックスです</entry>

     </row>

     <row>
      <entry>indisprimary</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>If true, this index is a unique index that represents the primary key of the table.
      </entry>-->

      <entry>真であるならば、これはテーブルの主キーとなる、一意なインデックスです
      </entry>


     </row>

     <row>
      <entry>indreference</entry>
      <entry><type>oid</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>indpred</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>Query plan for partial index predicate (not functional)</entry>-->

      <entry>インデックスプレディケイトのための問い合わせ計画（機能していません）</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-inherits">
  <title>pg_inherits</title><indexterm><primary>pg_inherits</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_inherits</secondary></indexterm>

  <!--<para>
   This catalog records information about table inheritance hierarchies.
  </para>-->

  <para>
   このカタログはテーブルの継承階層の情報を記録します。
  </para>

  <table>
   <!--<title>pg_inherits Columns</title>-->

   <title>pg_inheritsのカラム</title>


   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>inhrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>This is the reference to the subtable, that is, it records the
       fact that the identified table is inherited from some other
       table.
      </entry>-->

      <entry>サブテーブルへの参照です。指定されたテーブルは他のテーブルを継承しているということを記します
      </entry>

     </row>

     <row>
      <entry>inhparent</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>This is the reference to the parent table, from which the table
       referenced by <structfield>inhrelid</structfield> inherited
       from.
      </entry>-->

      <entry>親テーブルへの参照です。<structfield>inhrelid</structfield>が参照しているテーブルを継承しているものから行われます
      </entry>

     </row>

     <row>
      <entry>inhseqno</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>If there is more than one subtable/parent pair (multiple
       inheritance), this number tells the order in which the
       inherited columns are to be arranged.  The count starts at 1.
      </entry>-->

      <entry>1つ以上のサブテーブルもしくは親テーブルが存在する場合（複数継承）、ここに書かれている数の順序にしたがって継承カラムが配置されます。カウント値は1から始まります
      </entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-language">
  <title>pg_language</title><indexterm><primary>pg_language</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_language</secondary></indexterm>

  <!--<para>
   <structname>pg_language</structname> registers call interfaces or
   languages in which you can write functions or stored procedures.
   See under <command>CREATE LANGUAGE</command> and in the
   <citetitle>Programmer's Guide</citetitle> for more information
   about language handlers.
  </para>-->

  <para>
   <structname>pg_language</structname>は、関数やストアドプロシージャを書き込むことができる呼び出し用インターフェイスや言語を登録します。言語操作の詳細は<command>CREATE LANGUAGE</command>と<citetitle>&programmer-guide;</citetitle>を参照してください。
  </para>

  <table>
<!--  <title>pg_language Columns</title> -->

   <title>pg_languageのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>lanname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Name of the language (to be specified when creating a function)</entry>-->

      <entry>言語名です（新たに関数を作成する際に特定しなければいけません）</entry>

     </row>

     <row>
      <entry>lanispl</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>This is false for internal languages (such as SQL) and true for
       dynamically loaded language handler modules.  It essentially
       means that, if it is true, the language may be dropped.
      </entry>-->

      <entry>SQLなどの内部言語では偽となり、動的にロードされた言語操作モジュールでは真となります。つまり、真であるならばその言語は削除することができます
      </entry>

     </row>

     <row>
      <entry>lanpltrusted</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>This is a trusted language.  See under <command>CREATE
       LANGUAGE</command> what this means.  If this is an internal
       language (<structfield>lanispl</structfield> is false) then
       this field is meaningless.
      </entry>-->

      <entry>これはtrusted言語です。詳細は<command>CREATE LANGUAGE</command>を参照してください。もしこれが内部言語であるならば、（<structfield>lanispl</structfield>が偽の場合）このフィールドは無視してください
      </entry>

     </row>

     <row>
      <entry>lanplcallfoid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_proc.oid</entry>
      <!--<entry>For non-internal languages this references the language
       handler, which is a special function that is responsible for
       executing all functions that are written in the particular
       language.
      </entry>-->

      <entry>内部言語でない場合、ある特定の言語で書かれた関数をすべて実行する特別な関数である言語操作を参照します
      </entry>

     </row>

     <row>
      <entry>lancompiler</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>not currently used</entry>-->

      <entry>現在使用されていません</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-operator">
  <title>pg_operator</title><indexterm><primary>pg_operator</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_operator</secondary></indexterm>

  <!--<para>
   See <command>CREATE OPERATOR</command> and the
   <citetitle>Programmer's Guide</citetitle> for details on these
   operator parameters.
  </para>-->

  <para>
   これらの引数の詳細は、<command>CREATE OPERATOR</command>と<citetitle>&programmer-guide;</citetitle>を参照してください。

  </para>

  <table>
   <!--<title>pg_operator Columns</title>-->

   <title>pg_operatorのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>oprname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Name of the operator</entry>-->

      <entry>演算子名</entry>

     </row>

     <row>
      <entry>oprowner</entry>
      <entry><type>int4</type></entry>
      <entry>pg_shadow.usesysid</entry>
      <!--<entry>Owner (creator) of the operator</entry>-->

      <entry>演算子を作成した、演算子所有者</entry>

     </row>

     <row>
      <entry>oprprec</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>oprkind</entry>
      <entry><type>char</type></entry>
      <entry></entry>
      <!--<entry>'b' = infix (<quote>both</quote>), 'l' = prefix
       (<quote>left</quote>), 'r' = postfix (<quote>right</quote>)
      </entry>-->

      <entry>'b'――挿入辞（<quote>both</quote>）、'l'――接頭辞
       （<quote>left</quote>）、'r'――接尾辞（<quote>right</quote>）
      </entry>

     </row>

     <row>
      <entry>oprisleft</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>oprcanhash</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>This operator supports hash joins.</entry>-->

      <entry>この演算子はハッシュ結合をサポートしています</entry>

     </row>

     <row>
      <entry>oprleft</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>Type of the left operand</entry>-->

      <entry>演算項目の左側の型</entry>

     </row>

     <row>
      <entry>oprright</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>Type of the right operand</entry>-->

      <entry>演算項目の右側の型</entry>

     </row>

     <row>
      <entry>oprresult</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>Type of the result</entry>-->

      <entry>結果の型です</entry>

     </row>

     <row>
      <entry>oprcom</entry>
      <entry><type>oid</type></entry>
      <entry>pg_operator.oid</entry>
      <!--<entry>Commutator of this operator, if any</entry>-->

      <entry>この演算子の交代演算子（もしあるならば）です</entry>

     </row>

     <row>
      <entry>oprnegate</entry>
      <entry><type>oid</type></entry>
      <entry>pg_operator.oid</entry>
      <!--<entry>Negator of this operator, if any</entry>-->

      <entry>この演算子の否定子（もしあるならば）です</entry>

     </row>

     <row>
      <entry>oprlsortop</entry>
      <entry><type>oid</type></entry>
      <entry>pg_operator.oid</entry>
      <!--<entry>If this operator supports merge joins, the operator that sorts
       the type of the left-hand operand
      </entry>-->

      <entry>もしこの演算子がマージ結合をサポートしている場合、左側の演算項目の型を分類する演算子です
      </entry>

     </row>

     <row>
      <entry>oprrsortop</entry>
      <entry><type>oid</type></entry>
      <entry>pg_operator.oid</entry>
      <!--<entry>If this operator supports merge joins, the operator that sorts
       the type of the right-hand operand
      </entry>-->

      <entry>もしこの演算子がマージ結合をサポートしている場合、右側の演算項目の型を分類する演算子です
      </entry>

     </row>

     <row>
      <entry>oprcode</entry>
      <entry><type>regproc</type></entry>
      <entry></entry>
      <!--<entry>Function that implements this operator</entry>-->

      <entry>この演算子を履行する関数です</entry>

     </row>

     <row>
      <entry>oprrest</entry>
      <entry><type>regproc</type></entry>
      <entry></entry>
      <!--<entry>Restriction selectivity estimation function for this operator</entry>-->

      <entry>この演算子の制約選択estimation関数です</entry>

     </row>

     <row>
      <entry>oprjoin</entry>
      <entry><type>regproc</type></entry>
      <entry></entry>
      <!--<entry>Join selectivity estimation function for this operator</entry>-->

      <entry>この演算子の結合選択estimation関数です</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-proc">
  <title>pg_proc</title><indexterm><primary>pg_proc</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_proc</secondary></indexterm>

  <!--<para>
   This catalog stores information about functions (or procedures).
   The description of <command>CREATE FUNCTION</command> and the
   <citetitle>Programmer's Guide</citetitle> contain more information
   about the meaning of some fields.
  </para>-->

  <para>
   このカタログは関数やプロシージャに関する情報を格納しています。<command>CREATE FUNCTION</command>コマンドのリファレンスや<citetitle>&programmer-guide;</citetitle>などでフィールドなどのより詳しい情報が書かれています。
  </para>

  <table>
   <!--<title>pg_proc Columns</title>-->

   <title>pg_procのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>proname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Name of the function</entry>-->

      <entry>関数名</entry>

     </row>

     <row>
      <entry>proowner</entry>
      <entry><type>int4</type></entry>
      <entry>pg_shadow.usesysid</entry>
      <!--<entry>Owner (creator) of the function</entry>-->

      <entry>関数を作成した、関数所有者</entry>

     </row>

     <row>
      <entry>prolang</entry>
      <entry><type>oid</type></entry>
      <entry>pg_language.oid</entry>
      <!--<entry>Implementation language or call interface of this function</entry>-->

      <entry>この関数の実装言語や呼び出しインターフェイス</entry>

     </row>

     <row>
      <entry>proisinh</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>proistrusted</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>not functional</entry>-->

      <entry>機能していません</entry>

     </row>

     <row>
      <entry>proiscachable</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>Function returns same result for same input values</entry>-->

      <entry>同じ入力値では同じ結果を返す関数です</entry>

     </row>

     <row>
      <entry>proisstrict</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>Function returns null if any call argument is null.  In that
       case the function won't actually be called at all.  Functions
       that are not <quote>strict</quote> must be prepared to handle
       null inputs.
      </entry>-->

      <entry>呼び出し引数がnullの場合にはnullを返す関数です。その場合、その関数は実際には呼び出されません。<quote>厳格</quote>ではない関数はnull入力を取り扱えるようにしなければいけません
      </entry>

     </row>

     <row>
      <entry>pronargs</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>Number of arguments</entry>-->

      <entry>引数の数</entry>

     </row>

     <row>
      <entry>proretset</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>Function returns a set (probably not functional)</entry>-->

      <entry>セットを返す関数です（おそらく機能していません）</entry>

     </row>

     <row>
      <entry>prorettype</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>Data type of the return value (0 if the function does not return a value)
      </entry>-->

      <entry>返り値の型（この関数は何も返さない場合は0となります）
      </entry>

     </row>

     <row>
      <entry>proargtypes</entry>
      <entry><type>oidvector</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>A vector with the data types of the function arguments</entry>-->

      <entry>ベクトルと関数の引数のデータ型</entry>

     </row>

     <row>
      <entry>probyte_pct</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>dead code</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>properbyte_cpu</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>dead code</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>propercall_cpu</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>dead code</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>prooutin_ratio</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>dead code</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>prosrc</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>This tells the function handler how to invoke the function.  It
       might be the actual source code of the function for interpreted
       languages, a link symbol, a file name, or just about anything
       else, depending the implementation language/call convention.
      </entry>-->

      <entry>これは関数を発動させる方法を関数ハンドラに伝えます。実装された言語や呼び出し仕様によって解釈された言語やリンクシンボル、ファイル名などの関数の実際のソースコードかもしれません
      </entry>

     </row>

     <row>
      <entry>probin</entry>
      <entry><type>bytea</type></entry>
      <entry></entry>
      <entry>?</entry>
     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-relcheck">
  <title>pg_relcheck</title><indexterm><primary>pg_relcheck</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_relcheck</secondary></indexterm>

  <!-- <para>
   This system catalog stores CHECK constraints on tables.  (Column
   constraints are not treated specially.  Every column constraint is
   equivalent to some table constraint.)  See under <command>CREATE
   TABLE</command> for more information.
  </para> -->

  <para>
   このシステムカタログはチェック制約をテーブルに格納します（カラム制約は特別扱いされていません。すべてのカラム制約はテーブル制約と同等なものです）。詳細は<command>CREATE TABLE</command>を参照してください。
  </para>

  <table>
   <!--<title>pg_relcheck Columns</title>-->

   <title>pg_relcheckのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>rcrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>The table this check constraint is on</entry>-->

      <entry>このチェック制約が有効となっているテーブルです</entry>

     </row>

     <row>
      <entry>rcname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Constraint name</entry>-->

      <entry>制約名です</entry>

     </row>

     <row>
      <entry>rcbin</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>An internal representation of the constraint expression</entry>-->

      <entry>制約表現の内部表現形式です</entry>

     </row>

     <row>
      <entry>rcsrc</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>A human-readable representation of the consraint expression</entry>-->

      <entry>人間が解釈できる形式の制約表現です</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

  <note>
   <!--<para>
    <structname>pg_class</structname>.<structfield>relchecks</structfield>
    needs to match up with the entries in this table.
   </para>-->

   <para>
    <structname>pg_class</structname>の<structfield>relchecks</structfield>はこの内容と一致する必要があります。
   </para>

  </note>

 </section>


 <section id="catalog-pg-shadow">
  <title>pg_shadow</title><indexterm><primary>pg_shadow</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_shadow</secondary></indexterm>

  <!-- <para>
   <structname>pg_shadow</structname> contains information about
   database users.  The name stems from the fact that this table
   should not be readable by the public since it contains passwords.
   <structname>pg_user</structname> is a view on
   <structname>pg_shadow</structname> that blanks out the password field.
  </para> -->

   <para>
   <structname>pg_shadow</structname>は、データベースユーザーの情報を保持しています。パスワードなどの情報を含んでいるのでこのテーブルは一般には公表されないようにとこのような名前が付けられています。<structname>pg_user</structname>は<structname>pg_shadow</structname>のビューで、パスワードのフィールドを見えないようにしています。
  </para>

  <!--<para>
   The <citetitle>Administrator's Guide</citetitle> contains detailed
   information about user and permission management.
  </para>-->

  <para>
   <citetitle>&admin-guide;</citetitle>に、ユーザーと権限管理に関するより詳細が記載されています。
  </para>

  <table>
<!--   <title>pg_shadow Columns</title> -->

   <title>pg_shadowのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>usename</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <entry>ユーザー名です</entry>
     </row>

     <row>
      <entry>usesysid</entry>
      <entry><type>int4</type></entry>
      <entry></entry>
      <!--<entry>User id (arbitrary number used to reference this user)</entry>-->

      <entry>ユーザーID（このユーザーを参照するための任意な番号</entry>

     </row>

     <row>
      <entry>usecreatedb</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>User may create databases</entry>-->

      <entry>ここが真であるならば、このユーザーはデータベースを作成することができます</entry>

     </row>

     <row>
      <entry>usetrace</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>not used</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>usesuper</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>User is a superuser</entry>-->

      <entry>真であるならば、このユーザーはスーパーユーザーです</entry>

     </row>

     <row>
      <entry>usecatupd</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry>User may update system catalogs.  (Even a superuser may not do
       this unless this attribute is true.)
      </entry>-->

      <entry>真であるならば、このユーザーはシステムカタログを更新することができます。ユーザーがスーパーユーザーであっても、ここが真でなければ更新できません
      </entry>

     </row>

     <row>
      <entry>passwd</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <!--<entry>Password</entry>-->

      <entry>パスワード</entry>

     </row>

     <row>
      <entry>valuntil</entry>
      <entry><type>abstime</type></entry>
      <entry></entry>
      <!--<entry>Account expiry time (only used for password authentication)</entry>-->

      <entry>アカウントの有効期限です（パスワードの認証でのみ使用されます）</entry>

     </row>
    </tbody>
   </tgroup>
  </table>

 </section>


 <section id="catalog-pg-type">
  <title>pg_type</title><indexterm><primary>pg_type</primary></indexterm><indexterm><primary sortas="しすてむかたろぐ">システムカタログ</primary><secondary>pg_type</secondary></indexterm>

  <table>
   <!--<title>pg_type Columns</title>-->

   <title>pg_typeのカラム</title>

   <tgroup cols=4>
    <thead>
     <row>
      <!--<entry>Name</entry>
      <entry>Type</entry>
      <entry>References</entry>
      <entry>Description</entry>-->

      <entry>名前</entry>
      <entry>型</entry>
      <entry>参照先</entry>
      <entry>説明</entry>

     </row>
    </thead>

    <tbody>
     <row>
      <entry>typname</entry>
      <entry><type>name</type></entry>
      <entry></entry>
      <!--<entry>Data type name</entry>-->

      <entry>データ型名</entry>

     </row>

     <row>
      <entry>typowner</entry>
      <entry><type>int4</type></entry>
      <entry>pg_shadow.usesysid</entry>
      <!--<entry>Owner (creator) of the type</entry>-->

      <entry>型を作成した、型所有者</entry>

     </row>

     <row>
      <entry>typlen</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>Length of the storage representation of the type, -1 if variable length</entry>-->
 
      <entry>型のストレージ表現形式の長さです。可変長の場合は-1です</entry>

    </row>

     <row>
      <entry>typprtlen</entry>
      <entry><type>int2</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>typbyval</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <!--<entry><structfield>typbyval</structfield> determines whether internal
       routines pass a value of this type by value or by reference.
       Only <type>char</type>, <type>short</type>, and
       <type>int</type> equivalent items can be passed by value, so if
       the type is not 1, 2, or 4 bytes long, Postgres does not have
       the option of passing by value and so
       <structfield>typbyval</structfield> had better be false.
       Variable-length types are always passed by reference. Note that
       <structfield>typbyval</structfield> can be false even if the
       length would allow pass-by-value; this is currently true for
       type <type>float4</type>, for example.
      </entry>-->

      <entry><structfield>typbyval</structfield>は、内部関数がこの型の値を値渡しで渡すか、参照渡しで渡すかを決定します。<type>char</type>、<type>short</type>と<type>int</type>と同等のもののみ値で引き渡すことが可能です。つまり、型が1、2、4バイトでなければPostgresではその値を引き渡すことができないので、<structfield>typbyval</structfield>は偽にする必要があります。可変長型は必ず参照渡しになります。<structfield>typbyval</structfield>は、長さ的に引き渡し可能でも偽になりうるということに注意してください。現在<type>float4</type>などがこれに該当します
      </entry>

     </row>

     <row>
      <entry>typtype</entry>
      <entry><type>char</type></entry>
      <entry></entry>
      <!--<entry><structfield>typtype</structfield> is <literal>b</literal> for
       a basic type and <literal>c</literal> for a catalog type (i.e.,
       a table).  If <structfield>typtype</structfield> is
       <literal>c</literal>, <structfield>typrelid</structfield> is
       the OID of the type's entry in
       <structname>pg_class</structname>.
      </entry>-->

      <entry><structfield>typtype</structfield>は、<literal>b</literal>は基本型、<literal>c</literal>はカタログ型となります（すなわちテーブル）。<structfield>typtype</structfield>が<literal>c</literal>であれば、<structfield>typrelid</structfield>は<structname>pg_class</structname>の内容の型のOIDとなります

      </entry>

     </row>

     <row>
      <entry>typisdefined</entry>
      <entry><type>bool</type></entry>
      <entry></entry>
      <entry><!--???--></entry>
     </row>

     <row>
      <entry>typdelim</entry>
      <entry><type>char</type></entry>
      <entry></entry>
      <!--<entry>Character that separates two values of this type when parsing array input
      </entry>-->

      <entry>配列入力を解析する際に2つの値を分ける文字です
      </entry>

     </row>

     <row>
      <entry>typrelid</entry>
      <entry><type>oid</type></entry>
      <entry>pg_class.oid</entry>
      <!--<entry>If this is a catalog type (see
       <structfield>typtype</structfield>), then this field points to
       the <structfield>pg_class</structfield> entry that defines the
       corresponding table. A table could theoretically be used as a
       composite data type, but this is not fully functional.
      </entry>-->

      <entry>カタログ型（<structfield>typtype</structfield>を参照）の場合、、このフィールドは該当するテーブルの<structfield>pg_class</structfield>内容を指します。テーブルは理論的にはデータ型の複合として使用できますが、十分には機能しなくなります
      </entry>

     </row>

     <row>
      <entry>typelem</entry>
      <entry><type>oid</type></entry>
      <entry>pg_type.oid</entry>
      <!--<entry>If <structfield>typelem</structfield> is not 0 then it
       identifies another row in <structname>pg_type</structname>.
       The current type can then be subscripted like an array yielding
       values of type <structfield>typelem</structfield>. A non-zero
       <structfield>typelem</structfield> does not guarantee this type
       to be a <quote>real</quote> array type; some ordinary
       fixed-length types can also be subscripted (e.g.,
       <type>oidvector</type>). Variable-length types can
       <emphasis>not</emphasis> be turned into pseudo-arrays like
       that. Hence, the way to determine whether a type is a
       <quote>true</quote> array type is typelem != 0 and typlen < 0.
      </entry>-->

      <entry><structfield>typelem</structfield>が0でない場合、それは<structname>pg_type</structname>の別の列を意味します。その後、現在の型は配列のように、<structfield>typelem</structfield>型の値を譲渡し、要素を持つことが可能となります。0ではない<structfield>typelem</structfield>はこの型が本当の配列型になることを保証しません。また、<type>oidvector</type>型のように、通常の固定長の型も扱うことができます。可変長の型はこのような疑似配列にすることはできません。それ故、本当の配列であるかどうかはtypelem != 0とtyplen < 0で見分けることができます
      </entry>

     </row>

     <row>
      <entry>typinput</entry>
      <entry><type>regproc</type></entry>
      <entry></entry>
      <!--<entry>Input function</entry>-->

      <entry>入力関数</entry>

     </row>

     <row>
      <entry>typoutput</entry>
      <entry><type>regproc</type></entry>
      <entry></entry>
      <!--<entry>Output function</entry>-->

      <entry>出力関数</entry>

     </row>

     <row>
      <entry>typreceive</entry>
      <entry><type>regproc</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>typsend</entry>
      <entry><type>regproc</type></entry>
      <entry></entry>
      <!--<entry>unused</entry>-->

      <entry>使用されていません</entry>

     </row>

     <row>
      <entry>typalign</entry>
      <entry><type>char</type></entry>
      <entry></entry>

      <!--<entry><para>

       <structfield>typalign</structfield> is the alignment required
       when storing a value of this type.  It applies to storage on
       disk as well as most representations of the value inside
       Postgres.  When multiple values are stored consecutively, such
       as in the representation of a complete row on disk, padding is
       inserted before a datum of this type so that it begins on the
       specified boundary.  The alignment reference is the beginning
       of the first datum in the sequence.
      </para><para>
       Possible values are:
       <itemizedlist>
        <listitem>
         <para>'c' = CHAR alignment, i.e., no alignment needed.</para>
        </listitem>
        <listitem>
         <para>'s' = SHORT alignment (2 bytes on most machines).</para>
        </listitem>
        <listitem>
         <para>'i' = INT alignment (4 bytes on most machines).</para>
        </listitem>
        <listitem>
         <para>'d' = DOUBLE alignment (8 bytes on many machines, but by no means all).</para>
        </listitem>
       </itemizedlist>
      </para><note>
       <para>
        For types used in system tables, it is critical that the size
        and alignment defined in <structname>pg_type</structname>
        agree with the way that the compiler will lay out the field in
        a struct representing a table row.
       </para>
      </note></entry>-->

      <entry><para><structfield>typalign</structfield>はこの型の値を格納する際に必要な調整です。ディスクに書き込むときやほとんどのPostgres内の値を表示させるために使用されます。ディスクに完全な列を格納するときなど、いくつかの値が連続して格納される際、境界を特定するためにこの型のデータの前にパッドが挿入されます。調整の照会はシーケンスの一番最初にあります。使用可能な値は以下のとおりです。</para><itemizedlist>
        <listitem>
         <para>'c'――CHAR alignment（すなわち、調整は必要ありません）</para>
        </listitem>
        <listitem>
         <para>'s'――SHORT alignment（多くのマシンでは2バイトになります）</para>
        </listitem>
        <listitem>
         <para>'i'――INT alignment（多くのマシンでは4バイトになります）</para>
        </listitem>
        <listitem>
         <para>'d'――DOUBLE alignment（多くのマシンでは8バイトになりますが、必ずしもすべてがそうであるとは限りません）</para>
        </listitem>
       </itemizedlist><!--<note>--><para>システムテーブルで使用されている型にはおいて、<structname>pg_type</structname>で定義されているサイズや調整は、コンパイラがテーブル行を示すためにフィールドを構造に配置する方法と一致していることが必要となります。</para><!--      </note>--></entry>

     </row>

     <row>
      <entry>typstorage</entry>
      <entry><type>char</type></entry>
      <entry></entry>
      <!--<entry><para>
       <structfield>typstorage</structfield> tells for variable-length
       types (those with <structfield>typlen</structfield> = -1) if
       the type is prepared for toasting and what the default strategy
       for attributes of this type should be.
       Possible values are
       <itemizedlist>
        <listitem>
         <para>'p': Value must always be stored plain.</para>
        </listitem>
        <listitem>
         <para>
          'e': Value can be stored in a <quote>secondary</quote>
          relation (if relation has one, see
          <structname>pg_class</structname>.<structfield>reltoastrelid</structfield>).
         </para>
        </listitem>
        <listitem>
         <para>'m': Value can be stored compressed inline.</para>
        </listitem>
        <listitem>
         <para>'x': Value can be stored compressed inline or in <quote>secondary</quote>.</para>
        </listitem>
       </itemizedlist>
       Note that 'm' fields can also be moved out to secondary
       storage, but only as a last resort ('e' and 'x' fields are
       moved first).
      </para></entry>-->

      <entry><para>
       <structfield>typstorage</structfield>は可変長型（<structfield>typlen</structfield> = -1のもの）に対して型がTOASTに対応しているかとこの型の属性のデフォルト手順が何であるべきかを伝えます。使用可能な値は以下のとおりです。</para><itemizedlist>
        <listitem>
         <para>'p'――値は必ず簡潔な状態で格納されなければいけません。</para>
        </listitem>
        <listitem>
         <para>
          'e'――値は<quote>従属的</quote>リレーションに格納することができます（リレーションに関することは<structname>pg_class</structname>の<structfield>reltoastrelid</structfield>を参照してください）。
         </para>
        </listitem>
        <listitem>
         <para>'m'――値は圧縮されたinlineに格納することができます。</para>
        </listitem>
        <listitem>
         <para>'x'――値は圧縮された、inlineもしくは<quote>従属</quote>に格納することができます。</para>
        </listitem>
       </itemizedlist><para>'m'のフィールドは補助記憶に移すことができますが、再分区分する際の最後でなければいけません（'e'と'x'フィールドが先に移動されなければいけません）。</para></entry>

     </row>

     <row>
      <entry>typdefault</entry>
      <entry><type>text</type></entry>
      <entry></entry>
      <entry><!--???--></entry>
     </row>
    </tbody>
   </tgroup>
  </table>

 </section>

</chapter>
