El catalogo pg_type almacena información sobre tipos de datos. Los tipos base y los tipos de enumeración (tipos escalares) se crean con CREATE TYPE y los dominios con CREATE DOMAIN. Se crea automáticamente un tipo compuesto para cada tabla en la base de datos, para representar la estructura de filas de la tabla. También es posible crear tipos compuestos con CREATE TYPE AS.

Tabla 51.62. pg_type Columnas

Tipo de columna

Descripción

oidoid

Identificador de fila

typnamename

Nombre del tipo de datos

typnamespaceoid (referencias pg_namespace.oid)

El OID del espacio de nombres que contiene este tipo

typowneroid (referencias pg_authid.oid)

Propietario del tipo

typlenint2

Para un tipo de tamaño fijo, typlen es el número de bytes en la representación interna del tipo. Pero para un tipo de longitud variable, typlen es negativo. -1 indica un varlena tipo (uno que tiene una palabra de longitud), -2 indica un null-terminado C string.

typbyvalbool

typbyval determina si las rutinas internas pasan un valor de este tipo por valor o por referencia. typbyval será mejor que sea false si typlen no es 1, 2 o 4 (u 8 en máquinas donde Datum es de 8 bytes). Los tipos de longitud variable siempre se pasan por referencia. Tenga en cuenta que typbyval puede ser false incluso si la longitud permitiera pasar por valor.

typtypechar

typtype es b para un tipo base, c para un tipo compuesto (por ejemplo, el tipo de fila de una tabla), d para un dominio, e para un tipo de enumeración, p para un pseudo-tipo, o r para un tipo de rango. Ver también typrelid y typbasetype.

typcategorychar

typcategory es una clasificación arbitraria de tipos de datos que utiliza el analizador para determinar qué conversiones implícitas deben ser privilegiado. Consulte la Tabla 51.63.

typispreferredbool

Verdadero si el tipo es un objetivo de lanzamiento preferido dentro de su typcategory

typisdefinedbool

Verdadero si el tipo está definido, false si se trata de una entrada de marcador de posición para un tipo aún no definido. Cuando typisdefined es false, no se puede confiar en nada excepto en el nombre del tipo, el espacio de nombres y el OID.

typdelimchar

Carácter que separa dos valores de este tipo al analizar array aporte. Tenga en cuenta que el delimitador está asociado con el array tipo de datos del elemento, no el array tipo de datos.

typrelidoid (referencias pg_class.oid)

Si se trata de un tipo compuesto (consulte typtype), esta columna apunta al pg_class entrada que define la tabla correspondiente. (Para un tipo compuesto independiente, el pg_class La entrada no representa realmente una tabla, pero es necesaria de todos modos para el tipo de pg_attribute entradas a las que enlazar.) Cero para tipos no compuestos.

typelemoid (referencias pg_type.oid)

Si typelem no es 0, entonces identifica otra fila en pg_type. El tipo actual se puede incluir como un subíndice array produciendo valores de tipo typelem. A true array el tipo es de longitud variable (typlen = -1), pero algunos de longitud fija (typlen > 0) los tipos también tienen distintos de cero typelem, por ejemplo name y point. Si un tipo de longitud fija tiene un typelem entonces su representación interna debe ser un número de valores de la typelem tipo de datos sin otros datos. Longitud variable array tipos tienen un encabezado definido por el array subrutinas.

typarrayoid (referencias pg_type.oid)

Si typarray no es 0, entonces identifica otra fila en pg_type, Cuál es el true array tipo que tiene este tipo como elemento

typinputregproc (referencias pg_proc.oid)

Función de conversión de entrada (formato de texto)

typoutputregproc (referencias pg_proc.oid)

Función de conversión de salida (formato de texto)

typreceiveregproc (referencias pg_proc.oid)

Función de conversión de entrada (formato binario), o 0 si no hay ninguna

typsendregproc (referencias pg_proc.oid)

Función de conversión de salida (formato binario), o 0 si no hay ninguna

typmodinregproc (referencias pg_proc.oid)

Función de entrada del modificador de tipo, o 0 si el tipo no admite modificadores

typmodoutregproc (referencias pg_proc.oid)

Escriba la función de salida del modificador, o 0 para usar el formato estándar

typanalyzeregproc (referencias pg_proc.oid)

Personalizado ANALYZE función, o 0 para usar la función estándar

typalignchar

typalign es la alineación requerida al almacenar un valor de este tipo. Se aplica al almacenamiento en disco, así como a la mayoría de las representaciones del valor dentro de PostgreSQL. Cuando se almacenan varios valores consecutivamente, como en la representación de una fila completa en el disco, el relleno se inserta antes de un dato de este tipo para que comience en el límite especificado. La referencia de alineación es el comienzo del primer dato de la secuencia. Los posibles valores son:

  • c = char alineación, es decir, no se necesita alineación.

  • s = short alineación (2 bytes en la mayoría de las máquinas).

  • i = int alineación (4 bytes en la mayoría de las máquinas).

  • d = double alineación (8 bytes en muchas máquinas, pero no en todas).

typstoragechar

typstorage indica los tipos de varlena (aquellos con typlen = -1) si el tipo está preparado para tostar y cuál es la estrategia predeterminada para attributes de este tipo debería ser. Los posibles valores son:

  • p (simple): los valores siempre deben almacenarse sin formato (los tipos que no son varlena siempre usan este valor).

  • e (externo): los valores se pueden almacenar en un secundario BRINDIS relación (si la relación tiene una, ver pg_class.reltoastrelid).

  • m (principal): los valores se pueden comprimir y almacenar en línea.

  • x (extendido): los valores se pueden comprimir y / o mover a una relación secundaria.

x es la opción habitual para los tipos tostables. Tenga en cuenta que m Los valores también se pueden mover al almacenamiento secundario, pero solo como último recurso (e y x los valores se mueven primero).

typnotnullbool

typnotnull representa un no-null restricción de un tipo. Se usa solo para dominios.

typbasetypeoid (referencias pg_type.oid)

Si se trata de un dominio (ver typtype), luego typbasetype identifica el tipo en el que se basa este. Cero si este tipo no es un dominio.

typtypmodint4

Uso de dominios typtypmod para grabar el typmod que se aplicará a su tipo base (-1 si el tipo base no usa un typmod). -1 si este tipo no es un dominio.

typndimsint4

typndims es el numero de array dimensiones para un dominio sobre un array (es decir, typbasetype es un array escribe). Cero para tipos que no sean dominios sobre array tipos.

typcollationoid (referencias pg_collation.oid)

typcollation especifica la intercalación del tipo. Si el tipo no admite intercalaciones, será cero. Un tipo base que admita intercalaciones tendrá aquí un valor distinto de cero, normalmente DEFAULT_COLLATION_OID. Un dominio sobre un tipo de clasificación puede tener un OID de clasificación diferente de su tipo base, si se especificó uno para el dominio.

typdefaultbinpg_node_tree

Si typdefaultbin no es null, es el nodeToString() representación de una expresión predeterminada para el tipo. Esto solo se usa para dominios.

typdefaulttext

typdefault es null si el tipo no tiene un valor predeterminado asociado. Si typdefaultbin no es null, typdefault debe contener una versión legible por humanos de la expresión predeterminada representada por typdefaultbin. Si typdefaultbin es null y typdefault no es, entonces typdefault es la representación externa del valor predeterminado del tipo, que se puede alimentar al convertidor de entrada del tipo para producir una constante.

typaclaclitem[]

Privilegios de acceso; consulte la Sección 5.7 para obtener más detalles

Nota

Para los tipos de ancho fijo utilizados en las tablas del sistema, es fundamental que el tamaño y la alineación definidos en pg_type de acuerdo con la forma en que el compilador colocará la columna en una estructura que representa una fila de la tabla.

La tabla 51.63 enumera los valores definidos por el sistema de typcategory. Cualquier adición futura a esta lista también será letras ASCII en mayúsculas. Todos los demás caracteres ASCII están reservados para categorías definidas por el usuario.

Tabla 51.63. typcategory Codigos

Código Categoría
A Tipos de matrices
B Tipos booleanos
C Tipos compuestos
D Tipos de fecha / hora
E Tipos de enumeración
G Tipos geométricos
I Tipos de direcciones de red
N Tipos numéricos
P Pseudo-tipos
R Tipos de rango
S Tipos de cadenas
T Tipos de intervalo de tiempo
U Tipos definidos por el usuario
V Poco-string tipos
X unknown escribe
Anterior Hasta próximo
51,61. pg_ts_template Hogar 51,63. pg_user_mapping