bit varying
变长位串
当前查看 PostgreSQL 18.6。
PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。
定义
SQL 名称与别名: varbit, varbit [ ( n ) ]
变长位串
bit varying [ ( n ) ]
- 目录名称
- pg_catalog.varbit
- 类型 OID
- 1562
- 类型种类
- 基础类型
- 声明长度
- 变长(varlena)
- 存储策略
- 扩展
- 输入函数
- varbit_in
- 输出函数
- varbit_out
中文手册
阅读来源定义
8.10. 位串类型
8.10. 位串类型
位串是由 1 和 0 组成的字符串。它们可用于存储或展示位掩码。SQL 中有两种位类型:bit( 和 n)bit varying(,其中 n)n 是正整数。
bit 类型的数据长度必须与 n 完全一致;试图存储更短或更长的位串都会报错。bit varying 数据则是长度上限为 n 的变长类型,更长的串会被拒绝。不带长度的 bit 等效于 bit(1),而不带长度说明的 bit varying 表示长度不受限。
注意
如果显式地将一个位串值转换为 bit(,它会在右侧被截断或补零,直到长度恰好为 n)n 位,且不会报错。类似地,如果显式地将一个位串值转换为 bit varying(,而其长度超过 n)n 位,则会在右侧被截断。
关于位串常量的语法信息,请参见第 4.1.2.5 节。位逻辑操作符和字符串操作函数也可用;参见第 9.6 节。
例 8.3. 使用位串类型
CREATE TABLE test (a BIT(3), b BIT VARYING(5)); INSERT INTO test VALUES (B'101', B'00'); INSERT INTO test VALUES (B'10', B'101');ERROR: bit string length 2 does not match type bit(3)INSERT INTO test VALUES (B'10'::bit(3), B'101'); SELECT * FROM test;a | b -----+----- 101 | 00 100 | 101
位串值每 8 位需要 1 字节,另有 5 或 8 字节的开销,具体取决于字符串的长度(但长值可能被压缩或移到行外存储,参见第 8.3 节对字符串的说明)。
系统目录属性
此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。
oid1562descrvariable-length bit stringtypacl_null_typlen-1typelem0typnamevarbittypsendvarbit_sendtyptypebtypalignityparray0typbyvalftypdelim','typinputvarbit_intypmodinvarbittypmodintypndims0typownerPOSTGREStyprelid0typmodoutvarbittypmodouttypoutputvarbit_outtyptypmod-1typanalyze-typdefault_null_typnotnullftypreceivevarbit_recvtypstoragextypbasetype0typcategoryVtypcollation0typisdefinedttypnamespacepg_catalogtypsubscript-typdefaultbin_null_array_type_oid1563typispreferredtarray_type_name_varbit
类型转换 3
与此类型相关的显式 pg_cast 记录。PostgreSQL 还支持 pg_cast 之外的类型转换,缺少记录不能证明转换不可能。
运算符重载 7
每种操作数签名均为独立重载。实现函数和返回类型来自同一源码构建。
操作符类 2
声明输入类型与此类型相符的操作符类。多态操作符类、类型转换和表达式索引还可能提供其他索引路径;不能仅凭此表判断是否支持索引。
| 操作符类 | 索引方法 | 输入类型 | 操作符族 | 默认 | 存储类型 |
|---|---|---|---|---|---|
varbit_ops | btree | varbit | btree/varbit_ops | 是 | 与输入类型相同 |
varbit_minmax_ops | brin | varbit | brin/varbit_minmax_ops | 是 | varbit |
版本比较
PostgreSQL 17.11 → 18.6。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。
这两个样本的系统目录和结构化属性没有变化。
这些构建的文档也有差异,请查看对应版本的手册定义。
文档与源码
- 构建
- 18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
相关条目
全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。