element_types

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 30章情報スキーマ | 早送り | 次のページ

# 30.16. `element_types`

`element_types`には、配列の要素のデータ型記述子が含まれます。 テーブル列、ドメイン、関数パラメータ、関数の戻り値が配列型であると宣言された場合、 情報スキーマの各ビューでは、`data_type`列に`ARRAY`だけが含まれます。 配列の要素の型についての情報を取り出すには、各ビューとこのビューを結合することで可能です。 例えば、テーブルの列のデータ型と、もし適切ならば、配列の要素型を表示するには、以下のように行います。

    SELECT c.column_name, c.data_type, e.data_type AS element_type
    FROM information_schema.columns c LEFT JOIN information_schema.element_types e
         ON ((c.table_catalog, c.table_schema, c.table_name, 'TABLE', c.dtd_identifier)
           = (e.object_catalog, e.object_schema, e.object_name, e.object_type, e.array_type_identifier))
    WHERE c.table_schema = '...' AND c.table_name = '...'
    ORDER BY c.ordinal_position;

このビューは、所有者であるとか、適切な権限を持っているなどの方法で、現在のユーザがアクセスできるオブジェクトのみが含まれます。

表 30-14. `element_types` の列

名前 | データ型 | 説明
--- | --- | ---
`object_catalog` | `sql_identifier` | 記述される配列を使用するオブジェクトを持つデータベースの名前です。 (常に現在のデータベースです。)
`object_schema` | `sql_identifier` | 記述される配列を使用するオブジェクトを持つスキーマの名前です。
`object_name` | `sql_identifier` | 記述される配列を使用するオブジェクトの名前です。
`object_type` | `character_data` | 記述される配列を使用するオブジェクトの種類です。 `TABLE` (その配列がテーブルの列によって使用される)、`DOMAIN`(その配列がドメインによって使用される)、`ROUTINE`(その配列が関数のパラメータ、もしくは、戻り値の型によって使用される)のいずれかです。
`array_type_identifier` | `sql_identifier` | 記述される配列のデータ型記述子の識別子です。 これを使用して、他の情報スキーマのビューの`dtd_identifier`列と結合することができます。
`data_type` | `character_data` | 組み込み型の場合は配列要素のデータ型です。さもなくば、`USER-DEFINED` です。 (この場合、型は`udt_name` と関連する列で識別されます。)
`character_maximum_length` | `cardinal_number` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`character_octet_length` | `cardinal_number` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`character_set_catalog` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`character_set_schema` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`character_set_name` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`collation_catalog` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`collation_schema` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`collation_name` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`numeric_precision` | `cardinal_number` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`numeric_precision_radix` | `cardinal_number` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`numeric_scale` | `cardinal_number` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`datetime_precision` | `cardinal_number` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`interval_type` | `character_data` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`interval_precision` | `character_data` | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型にはあてはまらないからです。
`domain_default` | `character_data` | 未実装です。
`udt_catalog` | `sql_identifier` | 要素のデータ型を定義したデータベースの名前です。 (常に現在のデータベースです。)
`udt_schema` | `sql_identifier` | 要素のデータ型を定義したスキーマの名前です。
`udt_name` | `sql_identifier` | 要素のデータ型の名前です。
`scope_catalog` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`scope_schema` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`scope_name` | `sql_identifier` | PostgreSQLで利用できない機能に適用されるものです。
`maximum_cardinality` | `cardinal_number` | 常にNULLです。 PostgreSQLでは配列の最大次数は常に無制限だからです。
`dtd_identifier` | `sql_identifier` | 要素のデータ型記述子の識別子です。 これは現時点では有用ではありません。

前のページ | ホーム | 次のページ
`domains` | 上に戻る | `enabled_roles`