pg_variables

pg_variables

pg_variables : Session-scoped variables with scalar, array, and record types

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
2820
pg_variables
pg_variables
1.2.5
FEAT
PostgreSQL
C
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d-r
No
Yes
No
Yes
yes
no
Relationships
See Also
session_variable
orafce
plisql

Release tag 1.2.5 still ships extension SQL version 1.2.

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PIGSTY
1.2.5
18
17
16
15
14
pg_variables-
RPM
PIGSTY
1.2.5
18
17
16
15
14
pg_variables_$v-
DEB
PIGSTY
1.2.5
18
17
16
15
14
postgresql-$v-pg-variables-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
el8.aarch64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
el9.x86_64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
el9.aarch64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
el10.x86_64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
el10.aarch64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
d12.x86_64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
d12.aarch64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
d13.x86_64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
d13.aarch64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
u22.x86_64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
u22.aarch64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
u24.x86_64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
u24.aarch64
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PIGSTY 1.2.5
PackageVersionOSORGSIZEFile URL
pg_variables_181.2.5el8.x86_64pigsty35.5 KiBpg_variables_18-1.2.5-1PIGSTY.el8.x86_64.rpm
pg_variables_181.2.5el8.aarch64pigsty34.0 KiBpg_variables_18-1.2.5-1PIGSTY.el8.aarch64.rpm
pg_variables_181.2.5el9.x86_64pigsty34.7 KiBpg_variables_18-1.2.5-1PIGSTY.el9.x86_64.rpm
pg_variables_181.2.5el9.aarch64pigsty33.6 KiBpg_variables_18-1.2.5-1PIGSTY.el9.aarch64.rpm
pg_variables_181.2.5el10.x86_64pigsty35.4 KiBpg_variables_18-1.2.5-1PIGSTY.el10.x86_64.rpm
pg_variables_181.2.5el10.aarch64pigsty34.4 KiBpg_variables_18-1.2.5-1PIGSTY.el10.aarch64.rpm
postgresql-18-pg-variables1.2.5d12.x86_64pigsty60.0 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-variables1.2.5d12.aarch64pigsty59.7 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-variables1.2.5d13.x86_64pigsty60.2 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-variables1.2.5d13.aarch64pigsty59.8 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-variables1.2.5u22.x86_64pigsty65.5 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-variables1.2.5u22.aarch64pigsty65.4 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-variables1.2.5u24.x86_64pigsty63.1 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~noble_amd64.deb
postgresql-18-pg-variables1.2.5u24.aarch64pigsty63.4 KiBpostgresql-18-pg-variables_1.2.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_variables_171.2.5el8.x86_64pigsty35.4 KiBpg_variables_17-1.2.5-1PIGSTY.el8.x86_64.rpm
pg_variables_171.2.5el8.aarch64pigsty33.9 KiBpg_variables_17-1.2.5-1PIGSTY.el8.aarch64.rpm
pg_variables_171.2.5el9.x86_64pigsty34.7 KiBpg_variables_17-1.2.5-1PIGSTY.el9.x86_64.rpm
pg_variables_171.2.5el9.aarch64pigsty33.4 KiBpg_variables_17-1.2.5-1PIGSTY.el9.aarch64.rpm
pg_variables_171.2.5el10.x86_64pigsty35.4 KiBpg_variables_17-1.2.5-1PIGSTY.el10.x86_64.rpm
pg_variables_171.2.5el10.aarch64pigsty34.3 KiBpg_variables_17-1.2.5-1PIGSTY.el10.aarch64.rpm
postgresql-17-pg-variables1.2.5d12.x86_64pigsty59.8 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~bookworm_amd64.deb
postgresql-17-pg-variables1.2.5d12.aarch64pigsty59.8 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~bookworm_arm64.deb
postgresql-17-pg-variables1.2.5d13.x86_64pigsty60.0 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~trixie_amd64.deb
postgresql-17-pg-variables1.2.5d13.aarch64pigsty59.9 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~trixie_arm64.deb
postgresql-17-pg-variables1.2.5u22.x86_64pigsty71.1 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~jammy_amd64.deb
postgresql-17-pg-variables1.2.5u22.aarch64pigsty71.0 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~jammy_arm64.deb
postgresql-17-pg-variables1.2.5u24.x86_64pigsty62.9 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~noble_amd64.deb
postgresql-17-pg-variables1.2.5u24.aarch64pigsty63.6 KiBpostgresql-17-pg-variables_1.2.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_variables_161.2.5el8.x86_64pigsty35.4 KiBpg_variables_16-1.2.5-1PIGSTY.el8.x86_64.rpm
pg_variables_161.2.5el8.aarch64pigsty34.0 KiBpg_variables_16-1.2.5-1PIGSTY.el8.aarch64.rpm
pg_variables_161.2.5el9.x86_64pigsty34.7 KiBpg_variables_16-1.2.5-1PIGSTY.el9.x86_64.rpm
pg_variables_161.2.5el9.aarch64pigsty33.4 KiBpg_variables_16-1.2.5-1PIGSTY.el9.aarch64.rpm
pg_variables_161.2.5el10.x86_64pigsty35.4 KiBpg_variables_16-1.2.5-1PIGSTY.el10.x86_64.rpm
pg_variables_161.2.5el10.aarch64pigsty34.3 KiBpg_variables_16-1.2.5-1PIGSTY.el10.aarch64.rpm
postgresql-16-pg-variables1.2.5d12.x86_64pigsty59.7 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~bookworm_amd64.deb
postgresql-16-pg-variables1.2.5d12.aarch64pigsty59.8 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~bookworm_arm64.deb
postgresql-16-pg-variables1.2.5d13.x86_64pigsty59.9 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~trixie_amd64.deb
postgresql-16-pg-variables1.2.5d13.aarch64pigsty59.8 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~trixie_arm64.deb
postgresql-16-pg-variables1.2.5u22.x86_64pigsty70.8 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~jammy_amd64.deb
postgresql-16-pg-variables1.2.5u22.aarch64pigsty70.6 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~jammy_arm64.deb
postgresql-16-pg-variables1.2.5u24.x86_64pigsty62.8 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~noble_amd64.deb
postgresql-16-pg-variables1.2.5u24.aarch64pigsty63.6 KiBpostgresql-16-pg-variables_1.2.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_variables_151.2.5el8.x86_64pigsty35.5 KiBpg_variables_15-1.2.5-1PIGSTY.el8.x86_64.rpm
pg_variables_151.2.5el8.aarch64pigsty34.0 KiBpg_variables_15-1.2.5-1PIGSTY.el8.aarch64.rpm
pg_variables_151.2.5el9.x86_64pigsty35.0 KiBpg_variables_15-1.2.5-1PIGSTY.el9.x86_64.rpm
pg_variables_151.2.5el9.aarch64pigsty34.0 KiBpg_variables_15-1.2.5-1PIGSTY.el9.aarch64.rpm
pg_variables_151.2.5el10.x86_64pigsty35.5 KiBpg_variables_15-1.2.5-1PIGSTY.el10.x86_64.rpm
pg_variables_151.2.5el10.aarch64pigsty34.4 KiBpg_variables_15-1.2.5-1PIGSTY.el10.aarch64.rpm
postgresql-15-pg-variables1.2.5d12.x86_64pigsty59.6 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~bookworm_amd64.deb
postgresql-15-pg-variables1.2.5d12.aarch64pigsty59.5 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~bookworm_arm64.deb
postgresql-15-pg-variables1.2.5d13.x86_64pigsty59.7 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~trixie_amd64.deb
postgresql-15-pg-variables1.2.5d13.aarch64pigsty59.5 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~trixie_arm64.deb
postgresql-15-pg-variables1.2.5u22.x86_64pigsty70.7 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~jammy_amd64.deb
postgresql-15-pg-variables1.2.5u22.aarch64pigsty71.0 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~jammy_arm64.deb
postgresql-15-pg-variables1.2.5u24.x86_64pigsty62.6 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~noble_amd64.deb
postgresql-15-pg-variables1.2.5u24.aarch64pigsty63.2 KiBpostgresql-15-pg-variables_1.2.5-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_variables_141.2.5el8.x86_64pigsty35.5 KiBpg_variables_14-1.2.5-1PIGSTY.el8.x86_64.rpm
pg_variables_141.2.5el8.aarch64pigsty34.1 KiBpg_variables_14-1.2.5-1PIGSTY.el8.aarch64.rpm
pg_variables_141.2.5el9.x86_64pigsty35.1 KiBpg_variables_14-1.2.5-1PIGSTY.el9.x86_64.rpm
pg_variables_141.2.5el9.aarch64pigsty34.0 KiBpg_variables_14-1.2.5-1PIGSTY.el9.aarch64.rpm
pg_variables_141.2.5el10.x86_64pigsty35.5 KiBpg_variables_14-1.2.5-1PIGSTY.el10.x86_64.rpm
pg_variables_141.2.5el10.aarch64pigsty34.5 KiBpg_variables_14-1.2.5-1PIGSTY.el10.aarch64.rpm
postgresql-14-pg-variables1.2.5d12.x86_64pigsty59.8 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~bookworm_amd64.deb
postgresql-14-pg-variables1.2.5d12.aarch64pigsty59.6 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~bookworm_arm64.deb
postgresql-14-pg-variables1.2.5d13.x86_64pigsty59.9 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-variables1.2.5d13.aarch64pigsty59.6 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-variables1.2.5u22.x86_64pigsty71.0 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~jammy_amd64.deb
postgresql-14-pg-variables1.2.5u22.aarch64pigsty71.1 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~jammy_arm64.deb
postgresql-14-pg-variables1.2.5u24.x86_64pigsty62.8 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~noble_amd64.deb
postgresql-14-pg-variables1.2.5u24.aarch64pigsty63.4 KiBpostgresql-14-pg-variables_1.2.5-1PIGSTY~noble_arm64.deb

Source

pig build pkg pg_variables;		# 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 pg_variables;		# install via package name, for the active PG version

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

Create this extension with:

CREATE EXTENSION pg_variables;

Usage

Syntax:

CREATE EXTENSION pg_variables;
SELECT pgv_set('vars', 'int1', 101);
SELECT pgv_get('vars', 'int1', NULL::int);

Source: README

pg_variables provides session-wide variables for PostgreSQL. Variables are grouped into packages, live only for the current session, and can be configured as transactional or non-transactional.

Basic Behavior

By default, variables are not transactional and are not affected by BEGIN, COMMIT, or ROLLBACK. The optional is_transactional argument on pgv_set() changes that behavior.

SELECT pgv_set('vars', 'int1', 101);
SELECT pgv_get('vars', 'int1', NULL::int);

Transactional example:

BEGIN;
SELECT pgv_set('vars', 'trans_int', 101, true);
SAVEPOINT sp1;
SELECT pgv_set('vars', 'trans_int', 102, true);
ROLLBACK TO sp1;
COMMIT;
SELECT pgv_get('vars', 'trans_int', NULL::int);

Packages

Variables are grouped into packages so multiple named variables can coexist and whole groups can be removed together. The README notes that empty packages are deleted automatically.

Core Functions

Scalar and Array Variables

The generic API is:

pgv_set(package text, name text, value anynonarray, is_transactional bool default false)
pgv_get(package text, name text, var_type anynonarray, strict bool default true)

pgv_set(package text, name text, value anyarray, is_transactional bool default false)
pgv_get(package text, name text, var_type anyarray, strict bool default true)

pgv_get() checks both existence and type. If the package or variable is missing, behavior depends on strict.

Record Collections

The README also documents record-oriented operations such as:

  • pgv_insert()
  • pgv_update()
  • pgv_delete()
  • pgv_select()

These functions work with collections of records stored under a package and variable name.

Deprecated Helpers

The project still ships older type-specific helpers like:

  • pgv_set_int() / pgv_get_int()
  • pgv_set_text() / pgv_get_text()
  • pgv_set_numeric() / pgv_get_numeric()
  • pgv_set_timestamp() / pgv_get_timestamp()
  • pgv_set_timestamptz() / pgv_get_timestamptz()
  • pgv_set_date() / pgv_get_date()
  • pgv_set_jsonb() / pgv_get_jsonb()

The README labels these as deprecated in favor of the generic pgv_set() / pgv_get() API.

Last updated on