"char"
单字节内部类型
当前查看 PostgreSQL 18。
中文定义与说明
单字节内部类型
同版本中文手册节选
表 8.4 显示了在 PostgreSQL 里可用的一般用途的字符类型。
SQL 定义了两种主要字符类型:character varying( 和
n)character(,其中
n)n 是正整数。这两种类型都可以存储长度最多为 n 个字符(而不是字节)的字符串。试图把更长的字符串存入这些类型的列时会报错,除非超出的字符全部都是空格,在这种情况下字符串会被截断到最大长度。(这一多少有些奇怪的例外是 SQL 标准要求的。)不过,如果显式把一个值转换为
character varying( 或
n)character(,那么超长的值会被截断为 n)n 个字符而不会报错。(这同样是 SQL 标准要求的。)如果要存储的字符串短于声明长度,character 类型的值会用空格填充;character varying 类型则只是简单地存储较短的字符串。
此外,PostgreSQL 还提供
text 类型,用于存储任意长度的字符串。虽然
text 类型不在 SQL 标准中,但其他若干 SQL 数据库管理系统也提供了它。text 是
PostgreSQL 的原生字符串数据类型,因为大多数对字符串进行操作的内置函数都声明为接受或返回
text,而不是 character varying。在很多场景下,character varying 的行为就像是建立在
text 之上的一个域。
类型名 varchar 是 character varying 的别名,而 bpchar(带长度说明时)和 char
是 character 的别名。varchar 和
char 这两个别名由 SQL 标准定义;bpchar 则是 PostgreSQL
的扩展。
PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。
定义
单字节内部类型
"char"
- 目录名称
- pg_catalog."char"
- 类型 OID
- 18
- 类型种类
- 基础类型
- 声明长度
- 1 字节
- 存储策略
- plain
- 输入函数
- charin
- 输出函数
- charout
- 手册中的声明
- "char"
- 存储大小
- 1 字节
- 手册说明
- 单字节内部类型
系统目录属性
此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。
oid18descrsingle charactertypacl_null_typlen1typelem0typnamechartypsendcharsendtyptypebtypalignctyparray0typbyvalttypdelim','typinputcharintypmodin-typndims0typownerPOSTGREStyprelid0typmodout-typoutputcharouttyptypmod-1typanalyze-typdefault_null_typnotnullftypreceivecharrecvtypstorageptypbasetype0typcategoryZtypcollation0typisdefinedttypnamespacepg_catalogtypsubscript-typdefaultbin_null_array_type_oid1002typispreferredfarray_type_name_char
类型转换 8
与此类型相关的显式 pg_cast 记录。PostgreSQL 还支持 pg_cast 之外的类型转换,缺少记录不能证明转换不可能。
运算符重载 6
每种操作数签名均为独立重载。实现函数和返回类型来自同一源码构建。
操作符类 4
声明输入类型与此类型相符的操作符类。多态操作符类、类型转换和表达式索引还可能提供其他索引路径;不能仅凭此表判断是否支持索引。
版本比较
PostgreSQL 17 → 18。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。
这两个样本的系统目录和结构化属性没有变化。
文档与源码
- 构建
- 18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
相关条目
全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。