PostgreSQL 是一套基于关系型对象模型的数据库管理系统。与传统纯关系数据库将所有类型写死在内核不同,PostgreSQL 将所有数据类型、操作符、索引访问方法和过程语言统一以系统目录表(System Catalogs)中数据行的形式存储。
因此,定义一个全新的数据类型,本质上就是在系统目录表(如 pg_type、pg_proc 和 pg_operator)中插入几行描述其内存尺寸、对齐方式以及输入输出转换函数地址的元数据记录。内核执行器和优化器对待用户自定义类型与系统内置基本类型一视同仁。