semver
Semantic version data type
Repository
theory/pg-semver
https://github.com/theory/pg-semver
Source
pg-semver-0.41.0.tar.gz
pg-semver-0.41.0.tar.gz
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_semver | 0.41.0 | TYPE | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 3510 | semver | No | Yes | No | Yes | No | Yes | - |
| Related | prefix ltree citext unit pgpdf pglite_fusion md5hash asn1oid |
|---|
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| 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
|
Build
You can build the RPM packages for pg_semver using pig build:
pig build pkg pg_semver # build RPM packages
Install
You can install pg_semver directly. First, make sure the PGDG repository is added and enabled:
pig repo add pgdg -u # Add PGDG repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_semver; # Install for current active PG version
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:
CREATE EXTENSION semver;
Usage
The semver extension provides a data type implementing Semantic Versioning 2.0.0.
CREATE EXTENSION semver;
SELECT '1.2.1'::semver;
SELECT '1.2.0'::semver > '1.2.0-b1'::semver; -- true (prerelease < release)
Operators
| Operator | Description | Example | Result |
|---|---|---|---|
= | Equal | '1.2.0'::semver = '1.2.00'::semver | t |
<> | Not equal | '1.2.0'::semver <> '1.2.00'::semver | f |
< | Less than | '3.4.0-b1'::semver < '3.4.0'::semver | t |
<= | Less or equal | '3.4.0-b1'::semver <= '3.4.0'::semver | t |
> | Greater than | '3.4.0-b1'::semver > '3.4.0'::semver | f |
>= | Greater or equal | '3.4.0-b1'::semver >= '3.4.0'::semver | f |
Functions
| Function | Description | Example | Result |
|---|---|---|---|
to_semver(text) | Permissive parse | to_semver('1.0') | 1.0.0 |
is_semver(text) | Validate format | is_semver('1.2.0') | true |
semver(text) | Strict cast | semver('1.2.1') | 1.2.1 |
get_semver_major(semver) | Major version | get_semver_major('4.2.0') | 4 |
get_semver_minor(semver) | Minor version | get_semver_minor('4.2.0') | 2 |
get_semver_patch(semver) | Patch version | get_semver_patch('4.2.0') | 0 |
get_semver_prerelease(semver) | Prerelease part | get_semver_prerelease('2.1.0-b2+bfb13') | b2 |
Supports casts from text, numeric, real, double precision, integer, bigint, smallint.
Range Type
The semverrange type supports standard range operators:
SELECT '1.0.5'::semver <@ '[1.0.0, 2.0.0)'::semverrange; -- true
Aggregate Functions
MIN(semver) and MAX(semver) are supported. Btree and hash indexes are available.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.