跳转到主要内容

omni_id

Identity types

omnigres : Identity types

Overview

ID Extension Package Version Category License Language
2952 omni_id omnigres 0.4.3 FEAT Apache-2.0 C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d-r No Yes No Yes yes no

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT PIGSTY 0.4.3 18 17 16 15 14 omnigres -
RPM PIGSTY 20251108 18 17 16 15 14 omnigres_$v -
DEB PIGSTY 20251108 18 17 16 15 14 postgresql-$v-omnigres -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64 PIGSTY 20251108 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120
el8.aarch64 PIGSTY 20251108 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120
el9.x86_64 PIGSTY 20251108 PIGSTY 20250507 PIGSTY 20250507 PIGSTY 20250507 PIGSTY 20250507
el9.aarch64 PIGSTY 20251108 PIGSTY 20250507 PIGSTY 20250507 PIGSTY 20250507 PIGSTY 20250507
el10.x86_64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108
el10.aarch64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108
d12.x86_64 PIGSTY 20251108 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120
d12.aarch64 PIGSTY 20251108 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120
d13.x86_64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108
d13.aarch64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108
u22.x86_64 PIGSTY 20251108 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120
u22.aarch64 PIGSTY 20251108 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120 PIGSTY 20250120
u24.x86_64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108
u24.aarch64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108
u26.x86_64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108
u26.aarch64 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108 PIGSTY 20251108

Source

docs.omnigres.org/omni_id/identity_type/

pig build pkg omnigres;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install omnigres;		# install via package name, for the active PG version
pig install omni_id;		# install by extension name, for the current active PG version

pig install omni_id -v 18;   # install for PG 18
pig install omni_id -v 17;   # install for PG 17
pig install omni_id -v 16;   # install for PG 16
pig install omni_id -v 15;   # install for PG 15
pig install omni_id -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION omni_id;

Usage

omni_id: Identity types

The omni_id extension introduces custom identity types that prevent comparison errors between different ID types, catching bugs at query time.

Create an Identity Type

CREATE EXTENSION omni_id;
SELECT identity_type('user_id');

This creates a user_id type backed by bigint (default) with an auto-created sequence and constructor function.

Parameters

Parameter Default Description
type bigint Base type (int, smallint, uuid)
sequence <type>_seq Sequence identifier
create_sequence true Auto-create sequence
increment 1 Sequence step value
cache Pre-allocate sequence numbers
cycle Enable wraparound at limits
constructor Constructor function name
operator_schema public Schema for operators

Auto-Generated Functions

  • user_id(1) – Constructor
  • user_id_nextval() – Get next value
  • user_id_currval() – Get current value
  • user_id_setval(user_id, bool) – Set value