semver
语义版本号数据类型
仓库
theory/pg-semver
https://github.com/theory/pg-semver
源码
pg-semver-0.41.0.tar.gz
pg-semver-0.41.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_semver | 0.41.0 | TYPE | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3510 | semver | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | prefix ltree citext unit pgpdf pglite_fusion md5hash asn1oid |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 0.41.0 | 1817161514 | pg_semver | - |
| RPM | PGDG | 0.41.0 | 1817161514 | semver_$v | - |
| DEB | PGDG | 0.41.0 | 1817161514 | postgresql-$v-semver | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | ||
| el8.aarch64 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 |
| el9.x86_64 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | |
| el9.aarch64 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 |
| el10.x86_64 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 |
| el10.aarch64 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 | PIGSTY 0.41.0 |
| d12.x86_64 | PGDG 0.41.0 d12.x86_64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg12+1_amd64.deb
| PGDG 0.41.0 d12.x86_64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg12+1_amd64.deb
| PGDG 0.41.0 d12.x86_64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg12+1_amd64.deb
| PGDG 0.41.0 d12.x86_64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg12+1_amd64.deb
| PGDG 0.41.0 d12.x86_64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg12+1_amd64.deb
|
| d12.aarch64 | PGDG 0.41.0 d12.aarch64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg12+1_arm64.deb
| PGDG 0.41.0 d12.aarch64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg12+1_arm64.deb
| PGDG 0.41.0 d12.aarch64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg12+1_arm64.deb
| PGDG 0.41.0 d12.aarch64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg12+1_arm64.deb
| PGDG 0.41.0 d12.aarch64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg12+1_arm64.deb
|
| d13.x86_64 | PGDG 0.41.0 d13.x86_64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg13+1_amd64.deb
| PGDG 0.41.0 d13.x86_64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg13+1_amd64.deb
| PGDG 0.41.0 d13.x86_64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg13+1_amd64.deb
| PGDG 0.41.0 d13.x86_64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg13+1_amd64.deb
| PGDG 0.41.0 d13.x86_64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg13+1_amd64.deb
|
| d13.aarch64 | PGDG 0.41.0 d13.aarch64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg13+1_arm64.deb
| PGDG 0.41.0 d13.aarch64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg13+1_arm64.deb
| PGDG 0.41.0 d13.aarch64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg13+1_arm64.deb
| PGDG 0.41.0 d13.aarch64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg13+1_arm64.deb
| PGDG 0.41.0 d13.aarch64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg13+1_arm64.deb
|
| u22.x86_64 | PGDG 0.41.0 u22.x86_64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg22.04+1_amd64.deb
| PGDG 0.41.0 u22.x86_64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg22.04+1_amd64.deb
| PGDG 0.41.0 u22.x86_64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg22.04+1_amd64.deb
| PGDG 0.41.0 u22.x86_64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg22.04+1_amd64.deb
| PGDG 0.41.0 u22.x86_64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg22.04+1_amd64.deb
|
| u22.aarch64 | PGDG 0.41.0 u22.aarch64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg22.04+1_arm64.deb
| PGDG 0.41.0 u22.aarch64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg22.04+1_arm64.deb
| PGDG 0.41.0 u22.aarch64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg22.04+1_arm64.deb
| PGDG 0.41.0 u22.aarch64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg22.04+1_arm64.deb
| PGDG 0.41.0 u22.aarch64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg22.04+1_arm64.deb
|
| u24.x86_64 | PGDG 0.41.0 u24.x86_64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg24.04+1_amd64.deb
| PGDG 0.41.0 u24.x86_64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg24.04+1_amd64.deb
| PGDG 0.41.0 u24.x86_64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg24.04+1_amd64.deb
| PGDG 0.41.0 u24.x86_64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg24.04+1_amd64.deb
| PGDG 0.41.0 u24.x86_64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg24.04+1_amd64.deb
|
| u24.aarch64 | PGDG 0.41.0 u24.aarch64.pg18 : postgresql-18-semver postgresql-18-semver_0.41.0-1.pgdg24.04+1_arm64.deb
| PGDG 0.41.0 u24.aarch64.pg17 : postgresql-17-semver postgresql-17-semver_0.41.0-1.pgdg24.04+1_arm64.deb
| PGDG 0.41.0 u24.aarch64.pg16 : postgresql-16-semver postgresql-16-semver_0.41.0-1.pgdg24.04+1_arm64.deb
| PGDG 0.41.0 u24.aarch64.pg15 : postgresql-15-semver postgresql-15-semver_0.41.0-1.pgdg24.04+1_arm64.deb
| PGDG 0.41.0 u24.aarch64.pg14 : postgresql-14-semver postgresql-14-semver_0.41.0-1.pgdg24.04+1_arm64.deb
|
构建
您可以使用 pig build 命令构建 pg_semver 扩展的 RPM 包:
pig build pkg pg_semver # 构建 RPM 包
安装
您可以直接安装 pg_semver 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
pig repo add pgdg -u # 添加 PGDG 仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_semver; # 当前活跃 PG 版本安装
pig ext install -y pg_semver -v 18 # PG 18
pig ext install -y pg_semver -v 17 # PG 17
pig ext install -y pg_semver -v 16 # PG 16
pig ext install -y pg_semver -v 15 # PG 15
pig ext install -y pg_semver -v 14 # PG 14
dnf install -y semver_18 # PG 18
dnf install -y semver_17 # PG 17
dnf install -y semver_16 # PG 16
dnf install -y semver_15 # PG 15
dnf install -y semver_14 # PG 14
apt install -y postgresql-18-semver # PG 18
apt install -y postgresql-17-semver # PG 17
apt install -y postgresql-16-semver # PG 16
apt install -y postgresql-15-semver # PG 15
apt install -y postgresql-14-semver # PG 14
创建扩展:
CREATE EXTENSION semver;
用法
semver 扩展提供了实现语义版本号 2.0.0的数据类型。
CREATE EXTENSION semver;
SELECT '1.2.1'::semver;
SELECT '1.2.0'::semver > '1.2.0-b1'::semver; -- true(预发布版 < 正式版)
运算符
| 运算符 | 说明 | 示例 | 结果 |
|---|---|---|---|
= | 等于 | '1.2.0'::semver = '1.2.00'::semver | t |
<> | 不等于 | '1.2.0'::semver <> '1.2.00'::semver | f |
< | 小于 | '3.4.0-b1'::semver < '3.4.0'::semver | t |
<= | 小于等于 | '3.4.0-b1'::semver <= '3.4.0'::semver | t |
> | 大于 | '3.4.0-b1'::semver > '3.4.0'::semver | f |
>= | 大于等于 | '3.4.0-b1'::semver >= '3.4.0'::semver | f |
函数
| 函数 | 说明 | 示例 | 结果 |
|---|---|---|---|
to_semver(text) | 宽松解析 | to_semver('1.0') | 1.0.0 |
is_semver(text) | 验证格式 | is_semver('1.2.0') | true |
semver(text) | 严格转换 | semver('1.2.1') | 1.2.1 |
get_semver_major(semver) | 主版本号 | get_semver_major('4.2.0') | 4 |
get_semver_minor(semver) | 次版本号 | get_semver_minor('4.2.0') | 2 |
get_semver_patch(semver) | 补丁版本号 | get_semver_patch('4.2.0') | 0 |
get_semver_prerelease(semver) | 预发布部分 | get_semver_prerelease('2.1.0-b2+bfb13') | b2 |
支持从 text、numeric、real、double precision、integer、bigint、smallint 类型的转换。
范围类型
semverrange 类型支持标准范围运算符:
SELECT '1.0.5'::semver <@ '[1.0.0, 2.0.0)'::semverrange; -- true
聚合函数
支持 MIN(semver) 和 MAX(semver)。可使用 Btree 和 Hash 索引。