pgmp
多精度算术扩展
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgmp | 1.0.5 | TYPE | LGPL-3.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3700 | pgmp | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | numeral unit pguecc pgcrypto prefix semver pgpdf pglite_fusion |
|---|
missing pg14 on el pgdg repo
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.0.5 | 1817161514 | pgmp | - |
| RPM | PGDG | 1.0.5 | 1817161514 | pgmp_$v | - |
| DEB | PGDG | 1.0.5 | 1817161514 | postgresql-$v-pgmp | - |
安装
您可以直接安装 pgmp 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
pig repo add pgdg -u # 添加 PGDG 仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pgmp; # 当前活跃 PG 版本安装
pig ext install -y pgmp -v 18 # PG 18
pig ext install -y pgmp -v 17 # PG 17
pig ext install -y pgmp -v 16 # PG 16
pig ext install -y pgmp -v 15 # PG 15
pig ext install -y pgmp -v 14 # PG 14
dnf install -y pgmp_18 # PG 18
dnf install -y pgmp_17 # PG 17
dnf install -y pgmp_16 # PG 16
dnf install -y pgmp_15 # PG 15
dnf install -y pgmp_14 # PG 14
apt install -y postgresql-18-pgmp # PG 18
apt install -y postgresql-17-pgmp # PG 17
apt install -y postgresql-16-pgmp # PG 16
apt install -y postgresql-15-pgmp # PG 15
apt install -y postgresql-14-pgmp # PG 14
创建扩展:
CREATE EXTENSION pgmp;
用法
pgmp 扩展将 GNU 多精度算术库(GMP)集成到 PostgreSQL 中,提供任意精度的整数和有理数类型。
CREATE EXTENSION pgmp;
数据类型
mpz:任意大小的整数,仅受 PostgreSQL 的 1GB varlena 上限限制mpq:任意精度的有理数,用于精确分数运算
基本用法
-- 任意精度整数
SELECT '123456789012345678901234567890'::mpz * 2;
-- 精确有理数运算(无舍入)
SELECT '1'::mpq / '3'::mpq; -- 1/3
-- 与 PostgreSQL 原生类型混合运算
SELECT 42::mpz + '100'::mpz;
运算符
mpz 和 mpq 类型均支持标准算术运算符(+、-、*、/、%)和比较运算符(=、<>、<、>、<=、>=)。
函数
该扩展暴露了 GMP 库中这些类型的所有函数,包括:
- 素数函数
- 随机数生成
- 因式分解
- 最大公约数、最小公倍数及其他数论函数
索引支持
mpz 和 mpq 均支持 Btree 和 Hash 索引,可进行高效查询和排序。
完整文档:https://www.varrazzo.com/pgmp/