すべてのプロダクト
Search
ドキュメントセンター

PolarDB:pg_type

最終更新日:May 30, 2024

catalogpg_typestoreは、データ型に関する情報を格納します。 基本型と列挙型 (スカラー型) はCREATE TYPE、ドメインはCREATE DOMAINで作成されます。 複合型は、データベース内の各テーブルに対して自動的に作成され、テーブルの行構造を表します。 複合型withCREATE TYPE ASを作成することもできます。

データ型

説明

oid

oid

行識別子

typname

name

データ型名

typnamespace

oid

この型を含む名前空間のOID

typowner

oid

タイプの所有者

typlen

int2

  • 固定サイズ型の場合、typlenは型の内部表現のバイト数です。

  • 可変長タイプの場合、typlenは負です。

    • -1: 「varlena」タイプ (長さの単語を持つタイプ) を示します。

    • -2: nullで終わるC文字列を示します。

typbyval

bool

typbyvalは、内部ルーチンがこのタイプの値を値またはreferenceによって渡すかどうかを決定します。typbyvalhas be false iftyplenis not 1、2、または4 (またはDatumが8バイトのマシンでは8) 。 可変長型は常に参照によって渡されます。 長さがpass-by-valueを許可する場合でも、typbyvalcanはfalseになります。

typtype

char

typtype値の範囲は次のとおりです。

  • 基本タイプのb

  • 複合タイプ (テーブルの行タイプなど) のc

  • ドメインのd

  • e enum型の場合

  • 疑似型のp

  • 範囲タイプのr

typcategory

char

typcategoryは、どの暗黙のキャストが「優先」されるべきかを決定するためにパーサによって使用されるデータ型の任意の分類である。

typispreferred

bool

タイプがitstypcategory内の優先キャストターゲットである場合はTrue

typisdefined

bool

型が定義されている場合はTrue、まだ定義されていない型のプレースホルダーエントリの場合はfalse。

説明

Whentypisdefinedis false、型名、名前空間、およびOID以外は何も信頼できません。

typdelim

char

配列入力を解析するときにこの型の2つの値を区切る文字。 区切り文字は、配列データ型ではなく、配列要素データ型に関連付けられていることに注意してください。

typrelid

oid

これが複合型の場合 (typtypeを参照) 、この列は対応するテーブルを定義するpg_classエントリを指します。 (自立型複合型の場合、pg_classエントリは実際にはテーブルを表しませんが、型のpg_attributeエントリがリンクするためにはとにかく必要です。) 非複合タイプの場合はゼロ。

typele

oid

typelemがゼロでない場合、pg_typeの別の行を識別し、サブスクリプトで生成される型を定義します。 type添え字がゼロの場合、これはゼロになります。 ただし、typelemがゼロでない場合は、ハンドラーがサブスクリプトの結果型を決定するためにtypelemを必要としない場合は、ゼロにすることができます。 typelemの依存関係は、この型に要素型が物理的に含まれていることを意味すると考えられます。そのため、要素型のDDL変更は、この型の存在によって制限される可能性があります。

typarray

oid

0でない場合、別の行inpg_typeを識別します。これは、この型を要素として持つ「true」配列型です。

typinput

regproc

入力変換機能 (テキスト形式) 。

typoutput

regproc

出力変換機能 (テキスト形式) 。

typreceive

regproc

入力変換関数 (バイナリ形式) 、またはゼロの場合はゼロ。

typsend

regproc

出力変換関数 (バイナリ形式) 、またはゼロの場合はゼロ。

typmodin

regproc

タイプ修飾子入力関数、またはタイプが修飾子をサポートしていない場合はゼロ。

typmodout

regproc

修飾子出力関数を入力するか、標準形式を使用するにはゼロにします。

typanalyze

regproc

カスタムANALYZE関数、または標準関数を使用するにはゼロ。

typalign

char

typalignは、この型の値を格納するときに必要な配置です。 これは、ディスク上のストレージと、値insidePostgreSQLのほとんどの表現に適用されます。 ディスク上の完全な行の表現など、複数の値が連続して格納されている場合、このタイプのデータムの前にパディングが挿入され、指定された境界で開始されます。 アライメント参照は、シーケンス内の最初のデータの始まりです。 可能な値は次のとおりです。

  • c=チャー整列、すなわち、整列は必要ない。

  • s=short alignment (ほとんどのマシンで2バイト) 。

  • i=int alignment (ほとんどのマシンで4バイト) 。

  • d=double alignment (多くのマシンで8バイトですが、すべてではありません) 。

typstorage

char

typstorageは、varlenaタイプ (typlen= -1のタイプ) について、そのタイプがトースト用に準備されているかどうか、およびこのタイプの属性のデフォルト戦略はどうあるべきかを指示します。 可能な値は次のとおりです。

  • p (プレーン): 値は常にプレーンに格納する必要があります (非varlena型は常にこの値を使用します) 。

  • e (外部): 値は、セカンダリ「TOAST」リレーションに格納できます (リレーションに1がある場合は、pg_class. reltoastreridを参照) 。

  • m (main): 値はインラインで圧縮して保存できます。

  • x (拡張): 値を圧縮したり、二次リレーションに移動したりできます。

xはトースト可能なタイプの通常の選択です。 m個の値を2次ストレージに移動することもできますが、最後の手段としてのみです (e値とx値が最初に移動されます) 。

typnotnull

bool

typnotnullは、型に対するnullでない制約を表します。 ドメインのみに使用されます。

typbasetype

oid

これがドメインの場合 (typtypeを参照) 、typbasetypeはこれが基づいている型を識別します。 この型がドメインでない場合はゼロ。

typtypmod

int4

ドメインは、typtypmodを使用して、基本タイプに適用されるtypmodを記録します (基本タイプがtypmodを使用しない場合は-1) 。 -1この型がドメインでない場合。

typndims

int4

typndimsは、配列上のドメインの配列ディメンションの数です (つまり、typbasetypeは配列型です) 。 配列型よりもドメイン以外の型の場合はゼロ。

typcollation

oid

typcollationは、型の照合順序を指定します。 型が照合順序をサポートしていない場合、これはゼロになります。 照合順序をサポートする基本型は、ここではゼロ以外の値、通常はDEFAULT_COLLATION_OIDを持ちます。 照合可能な型を超えるドメインは、そのドメインに指定されている場合、その基本型とは異なる照合OIDを持つことができます。

typdefaultbin

pg_node_tree

typdefaultbinがnullでない場合、その型の既定の式のnodeToString() 表現です。 これはドメインにのみ使用されます。

typdefault

テキスト

型にデフォルト値が関連付けられていない場合、typdefaultはnullです。 typdefaultbinがnullでない場合、typdefaultには、typdefaultbinで表される既定の式の人間が読めるバージョンが含まれている必要があります。 typdefaultbinがnullでtypdefaultがnullでない場合、typdefaultは型のデフォルト値の外部表現であり、型の入力コンバーターに入力して定数を生成できます。

typacl

aclitem[]

アクセス権。

説明

システムテーブルで使用される固定幅の型の場合、pg_typeで定義されているサイズと配置が、コンパイラがテーブル行を表す構造で列をレイアウトする方法と一致することが重要です。

次の表に、typcategoryのシステム定義値を示します。 このリストへの将来の追加も大文字のASCII文字になります。 他のすべてのASCII文字は、ユーザー定義のカテゴリ用に予約されます。

コード

カテゴリ

A

配列タイプ

B

ブール型

C

複合タイプ

D

日付 /時刻タイプ

E

Enumタイプ

G

幾何学的タイプ

私は

ネットワークアドレスタイプ

N

数値型

P

疑似タイプ

R

範囲タイプ

S

文字列型

T

タイムスパン型

U

ユーザー定義型

V

ビット文字列型

X

タイプ不明