uint128
原生128位无符号整型数据类型
仓库
pg-uint/pg-uint128
https://github.com/pg-uint/pg-uint128
源码
pg-uint128-1.2.0.tar.gz
pg-uint128-1.2.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_uint128 | 1.2.0 | TYPE | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3740 | uint128 | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | prefix semver unit pgpdf pglite_fusion md5hash asn1oid roaringbitmap |
|---|
breaks on el8 since 1.1 ,fix el8 build problem by adding __has_builtin marco
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.2.0 | 1817161514 | pg_uint128 | - |
| RPM | PIGSTY | 1.2.0 | 1817161514 | pg_uint128_$v | - |
| DEB | PIGSTY | 1.2.0 | 1817161514 | postgresql-$v-pg-uint128 | - |
构建
您可以使用 pig build 命令构建 pg_uint128 扩展的 RPM / DEB 包:
pig build pkg pg_uint128 # 构建 RPM / DEB 包
安装
您可以直接安装 pg_uint128 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_uint128; # 当前活跃 PG 版本安装
pig ext install -y pg_uint128 -v 18 # PG 18
pig ext install -y pg_uint128 -v 17 # PG 17
pig ext install -y pg_uint128 -v 16 # PG 16
pig ext install -y pg_uint128 -v 15 # PG 15
pig ext install -y pg_uint128 -v 14 # PG 14
dnf install -y pg_uint128_18 # PG 18
dnf install -y pg_uint128_17 # PG 17
dnf install -y pg_uint128_16 # PG 16
dnf install -y pg_uint128_15 # PG 15
dnf install -y pg_uint128_14 # PG 14
apt install -y postgresql-18-pg-uint128 # PG 18
apt install -y postgresql-17-pg-uint128 # PG 17
apt install -y postgresql-16-pg-uint128 # PG 16
apt install -y postgresql-15-pg-uint128 # PG 15
apt install -y postgresql-14-pg-uint128 # PG 14
创建扩展:
CREATE EXTENSION uint128;
用法
uint128 扩展提供了全面的无符号和 128 位整数类型,具有完整的运算符和索引支持。
CREATE EXTENSION uint128;
数据类型
| 类型 | 大小 | 范围 |
|---|---|---|
uint1 | 8 位 | 0 到 255 |
uint2 | 16 位 | 0 到 65535 |
uint4 | 32 位 | 0 到 4294967295 |
uint8 | 64 位 | 0 到 18446744073709551615 |
uint16 | 128 位 | 0 到 340282366920938463463374607431768211455 |
int1 | 8 位 | -128 到 127 |
int16 | 128 位 | -170141183460469231731687303715884105728 到 170141183460469231731687303715884105727 |
运算符
- 算术运算:
+、-、*、/、% - 位运算:
#(异或)、&(与)、|(或)、~(取反)、<<(左移)、>>(右移) - 比较运算:
=、<>、>、<、>=、<=
支持有符号和无符号类型之间的混合运算。
特性
- 所有整数类型的范围类型(
uint1range、uint16range等),支持 GiST 索引 - 可与
numeric、real、double、uuid(仅 uint16)、json、jsonb之间转换 - 聚合函数:
SUM、AVG、MIN、MAX - 所有类型支持
generate_series() - 支持 Btree 和 Hash 索引
- 支持二进制收发协议