41.30. pg_type

ϵͳ��pg_type�洢�й��������͵���Ϣ�� �������ͣ��������ͣ����� CREATE TYPE �����ģ� ����ʹ�� CREATE DOMAIN �����ġ� ͬʱ��Ϊ���ݿ���ÿ�����Զ�����һ���������ͣ��Ա�ʾ�ñ���нṹ�� ���ǻ�������CREATE TYPE AS�����������͡�

Table 41-30. pg_type �ֶ�

����������������
typnamename ������������
typnamespaceoidpg_namespace.oid ����������͵����ֿռ�� OID
typownerint4pg_shadow.usesysid�����͵�������
typlenint2  ���ڶ������ͣ�typlen�Ǹ������ڲ�������ʽ���ֽ���Ŀ�� ���ڱ䳤���ͣ�typlen �Ǹ����� -1 ��ʾһ��"�䳤"���ͣ��г��������Ե����ݣ��� -2 ��ʾ����һ�� NULL ��β�� C �ִ���
typbyvalbool  typbyval �ж��ڲ����̴���������͵���ֵʱ��ͨ����ֵ���Ǵ����á� ֻ�� char��short���� int ���൱����Ŀ���Դ�ֵ��������������Ͳ��� 1��2��4�ֽڳ��� PostgreSQL �����д�ֵ��ѡ����� typbyval ����Ǽ١� �䳤�������Ǵ����á���ע�⼴ʹ���ȿ��Դ�ֵ�� typbyval Ҳ����Ϊ�٣� ���磬���� float4������ˡ�
typtypechar  typtype���ڻ������� �� b�����ڸ��������� c �����磬һ����������ͣ��� ��������ʱ�� d ��Ҳ����˵��һ���򣩣� ������p ��ʾα���͡� �ּ� typrelid �� typbasetype��
typisdefinedbool  ���������������Ϊ�棬�����һ����δ��������͵�ռλ����Ϊ�١� ���typisdefinedΪ�٣���ô���˸��������ƣ����ֿռ䣬�� OID ֮��û�пɿ�����Ϣ��
typdelimchar ��������������ʱ���ָ�������������ֵ���ַ���ע��÷ָ�����������Ԫ����������������ģ� �����Ǻ������������͹�����
typrelidoidpg_class.oid ����Ǹ������ͣ��� typtype) ��ô����ֶ�ָ�� pg_class �ж���ñ��Ԫ�顣 ���������ɴ��ڵĸ������ͣ�pg_class ��¼������ʾһ����������������Ҫ�������Ҹ��������ӵ� pg_attribute ��¼���� �Ǹ�������Ϊ�㡣
typelemoidpg_type.oid ��� typelem ��Ϊ 0�� ��ô����ʶ pg_type ���������һ�С� ��ǰ���Ϳ��Ե���һ����������Ϊ typelem �������������� һ��"������" ���������DZ䳤�� (typlen = -1)�� ����һЩ������(typlen> 0)����Ҳӵ�з���� typelem������ name �� oidvector�� ���һ����������ӵ��һ��typelem�� ��ô�����ڲ���ʽ������ typelem �������͵�ij����Ŀ�ĸ���ֵ���������������ݡ��䳤����������һ���������ӹ��̶����ͷ���ļ�����
typinputregprocpg_proc.oid����ת���������ı���ʽ��
typoutputregprocpg_proc.oid���ת���������ı���ʽ��
typreceiveregprocpg_proc.oid����ת�������������Ƹ�ʽ�������û����Ϊ 0
typsendregprocpg_proc.oid���ת�������������Ƹ�ʽ�������û����Ϊ 0
typanalyzeregprocpg_proc.oid�ͻ����� ANALYZE ���������ʹ�ñ�׼��������Ϊ 0
typalignchar 

typalign �ǵ��洢�����͵���ֵ��Ҫ��Ķ������ʡ���Ӧ���ڴ��̴洢�Լ���ֵ�� PostgreSQL �ڲ��Ĵ������ʽ�� �����ֵ��������ŵģ������ڴ���������ȫ�������ݵ���ʽ���ʱ�� ��ô���ڴ����͵�����ǰ���հף��������Ϳ��԰���Ҫ��Ľ��޴洢�� ���������Ǹ������е�һ�����ݵĿ�ͷ��

���ܵ�ֵ�У�

  • c = char ���룬Ҳ���Dz���Ҫ���롣

  • s = short ���� ���ڴ������������ 2�ֽڣ�

  • i = int ���� ���ڴ������������ 4 �ֽڣ�

  • d = double ���� ���ڴ������������ 8 �ֽڣ�����һ����ȫ����

Note: ������ϵͳ����ʹ�õ����ͣ��� pg_type �ﶨ��ijߴ�Ͷ������ͱ�������һ����ʾ���һ�еĽṹ��IJ���һ����

typstoragechar 

typstorage ����һ���䳤���ͣ���Щ�� typlen = -1�ģ� ˵�������Ƿ�׼�� toast���Լ����������Ե����͵�ȱʡ������ʲô�� ���ܵ�ֵ��

  • p: ��ֵ�����Լ򵥷�ʽ�洢

  • e: ��ֵ���Դ洢��һ��"����" ��ϵ�У�����ù�ϵ����ôһ�������� pg_class.reltoastrelid).

  • m: ��ֵ������������ѹ����ʽ�洢

  • x: ��ֵ������������ѹ����ʽ������"����"����洢��

��ע�� m ��Ҳ�����Ƶ���������洢����ֻ�����Ľ������ ��e �� x �������ߣ���

typnotnullbool 

typnotnull ������ij�����ϵ�һ�� NOT NULL Լ����Ŀǰֻ������

typbasetypeoidpg_type.oid

�������һ����������(���� typtype)�� ��ô typbasetype ��ʶ��Ϊ������� �Ļ��������͡������������������Ϊ�㡣

typtypmodint4 

��ʹ�� typtypmod ��¼Ҫʩ�õ����ǵĻ��������ϵ�typmod ������������Ͳ�ʹ��typmod����ôΪ -1��������������Ͳ�������ôΪ -1��

typndimsint4 

���һ���������飬��ô typndims ������ά������ֵ ��Ҳ����˵��typbasetype��һ���������ͣ����typelem��ƥ��������͵� typelem���������������Ϊ�㡣

typdefaultbintext 

��� typdefaultbin Ϊ�� NULL����ô���� ������ȱʡ���ʽ��nodeToString������ʽ��Ŀǰ����ֶ�ֻ������

typdefaulttext 

���ij����û�����ȱʡֵ����ôtypdefault�� NULL����� typdefaultbin ���� NULL�� ��ô typdefault �������һ�� typdefaultbin �����ȱʡ���ʽ������ɶ��İ汾�� ��� typdefaultbin Ϊ NULL �� typdefault ���ǣ���ô typdefault �Ǹ�����ȱʡֵ���ⲿ������ʽ�� ���ǿ��԰������������͵�����ת��������һ��������