|
typname
|
name
|
|
Nom du type
|
|
typnamespace
|
oid
|
pg_namespace
.oid
|
OID du
namespace
qui contient le type
|
|
typowner
|
oid
|
pg_authid
.oid
|
Propriétaire du type
|
|
typlen
|
int2
|
|
Pour les types de taille fixe,
typlen
est le nombre d'octets
de la représentation interne du type. Mais pour les types
de longueur variable,
typlen
est négatif. -1 indique
un type « varlena »
(qui a un attribut de longueur), -2 indique une chaîne C
terminée par le caractère NULL.
|
|
typbyval
|
bool
|
|
typbyval
détermine si
les routines internes passent une valeur de ce type par
valeur ou par référence.
typbyval
doit être faux si
typlen
ne vaut pas 1,
2 ou 4 (ou 8 sur les machines dont le mot-machine est de 8
octets). Les types de longueur variable sont toujours
passés par référence.
typbyval
peut être faux même si
la longueur permet un passage par valeur ; c'est le cas
pour le type float4, par exemple.
|
|
typtype
|
char
|
|
typtype
vaut
b pour un type de base, c pour un type composite (le type d'une
ligne de table, par exemple), d
pour un domaine ou p pour un
pseudo-type. Voir aussi
typrelid
et
typbasetype
.
|
|
typisdefined
|
bool
|
|
Vrai si le type est défini et faux s'il ne s'agit que d'un
conteneur pour un type qui n'est pas encore défini. Lorsque
typisdefined
est
faux, rien, à part le nom du type, le
namespace
et l'OID, n'est
fiable.
|
|
typdelim
|
char
|
|
Caractère qui sépare deux valeurs de ce type lorsque le
programme lit les valeurs d'un tableau en entrée. Le
délimiteur est associé au type d'élément du tableau, pas au
type tableau.
|
|
typrelid
|
oid
|
pg_class
.oid
|
S'il s'agit d'un type composite (voir
typtype
), alors cette colonne
pointe vers la ligne de pg_class qui définit la table
correspondante. Pour un type composite sans table, l'entrée
dans pg_class ne représente
pas vraiment une table, mais elle est néanmoins nécessaire
pour trouver les lignes de pg_attribute liées au type. 0 pour les
types autres que composites.
|
|
typelem
|
oid
|
pg_type
.oid
|
Si
typelem
ne vaut
pas 0, alors il identifie une autre ligne de pg_type. Le type courant peut alors
être utilisé comme un tableau contenant des valeurs de type
typelem
. Un
« vrai » type tableau
a une longueur variable (
typlen
= -1), mais certains
types de longueur fixe (
typlen
> 0) ont aussi un
typelem
non nul, par
exemple name et point. Si un type de longueur fixe a un
typelem
, alors sa
représentation interne est composé d'un certain nombre de
valeurs du type
typelem
, sans autre donnée. Les
types de données tableau de taille variable ont un en-tête
défini par les sous-routines de tableau.
|
|
typinput
|
regproc
|
pg_proc
.oid
|
Fonction de conversion en entrée (format texte)
|
|
typoutput
|
regproc
|
pg_proc
.oid
|
Fonction de conversion en sortie (format texte)
|
|
typreceive
|
regproc
|
pg_proc
.oid
|
Fonction de conversion en entrée (format binaire), ou 0
s'il n'y en a pas
|
|
typsend
|
regproc
|
pg_proc
.oid
|
Fonction de conversion en sortie (format binaire), ou 0
s'il n'y en a pas
|
|
typanalyze
|
regproc
|
pg_proc
.oid
|
Fonction ANALYZE personnalisée ou 0 pour utiliser la
fonction standard
|
|
typalign
|
char
|
|
typalign
est
l'alignement requis pour stocker une valeur de ce type.
Cela s'applique au stockage sur disque ainsi qu'à la
plupart des représentations de cette valeur dans
PostgreSQL™.
Lorsque des valeurs multiples sont stockées
consécutivement, comme dans la représentation d'une ligne
complète sur disque, un remplissage est inséré avant la
donnée de ce type pour qu'elle commence à l'alignement
indiqué. La référence de l'alignement est le début de la
première donnée de la séquence.
Les valeurs possibles sont :
-
c = alignement
char, aucun alignement
n'est nécessaire ;
-
s = alignement
short (deux octets sur la
plupart des machines) ;
-
i = alignement
int (quatre octets sur la
plupart des machines) ;
-
d = alignement
double (huit octets sur
la plupart des machines, mais pas sur toutes).
Note
Pour les types utilisés dans les tables systèmes il
est indispensable que les tailles et alignements
définis dans pg_type
soient en accord avec la façon dont le compilateur
dispose la colonne dans une structure représentant
une ligne de table.
|
|
typstorage
|
char
|
|
typstorage
indique,
pour les types varlena (ceux pour lesquels
typlen
= -1), si le type
accepte le TOASTage et la stratégie par défaut à utiliser
pour les attributs de ce type. Les valeurs possibles sont
:
-
p : La valeur doit être
stockée normalement ;
-
e : La valeur peut être
stockée dans une relation « secondaire » (si la relation
en a une, voir pg_class.reltoastrelid) ;
-
m : La valeurs peut être
stockée compressée sur place ;
-
x : La valeurs peut être
stockée compressée sur place ou stockée dans une
relation « secondaire ».
Les colonnes m peuvent aussi
être déplacées dans une table de stockage secondaire,
mais seulement en dernier recours (les colonnes
e et x
sont déplacées les premières).
|
|
typnotnull
|
bool
|
|
Représente une contrainte non NULL pour le type. Ceci
n'est utilisé que pour les domaines.
|
|
typbasetype
|
oid
|
pg_type
.oid
|
S'il s'agit d'un domaine (voir
typtype
), alors
typbasetype
identifie le type
sur lequel celui-ci est fondé. 0 s'il ne s'agit pas d'un
domaine.
|
|
typtypmod
|
int4
|
|
Les domaines utilisent ce champ pour enregistrer le
typmod à appliquer à leur type
de base (-1 si le type de base n'utilise pas de
typmod). -1 si ce type n'est pas
un domaine.
|
|
typndims
|
int4
|
|
Le nombre de dimensions de tableau pour un domaine
tableau (c'est-à-dire dont
typbasetype
est un type
tableau ; le
typelem
du domaine correspond
à celui du type de base). 0 pour les types autres que les
domaines tableaux.
|
|
typdefaultbin
|
text
|
|
Si
typdefaultbin
n'est pas NULL, ce champ est la représentation nodeToString() d'une expression par
défaut pour le type. Ceci n'est utilisé que pour les
domaines.
|
|
typdefault
|
text
|
|
NULL si le type n'a pas de valeur par défaut associée. Si
typdefaultbin
est
non NULL, ce champ doit contenir une version lisible de
l'expression par défaut représentée par
typdefaultbin
. Si
typdefaultbin
est NULL et si
ce champ ne l'est pas, alors il stocke la représentation
externe de la valeur par défaut du type, qui peut être
passée à la fonction de conversion en entrée du type pour
produire une constante.
|