pg_background

pg_background

pg_background : Run SQL queries in the background

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
1100
pg_background
pg_background
1.8
TIME
GPL-3.0
C
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d-r
No
Yes
No
Yes
yes
no
Relationships
See Also
pg_cron
pg_task
pg_later
pgq
timescaledb
timescaledb_toolkit
timeseries
periods

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
MIXED
1.8
18
17
16
15
14
pg_background-
RPM
PGDG
1.8
18
17
16
15
14
pg_background_$v-
DEB
PIGSTY
1.8
18
17
16
15
14
postgresql-$v-pg-background-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 1.6
PGDG 1.6
PGDG 1.6
PGDG 1.6
PGDG 1.6
el8.aarch64
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
el9.x86_64
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
el9.aarch64
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
el10.x86_64
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
el10.aarch64
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
PGDG 1.8
d12.x86_64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
d12.aarch64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
d13.x86_64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
d13.aarch64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
u22.x86_64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
u22.aarch64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
u24.x86_64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
u24.aarch64
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PIGSTY 1.8
PackageVersionOSORGSIZEFile URL
pg_background_181.6el8.x86_64pgdg41.8 KiBpg_background_18-1.6-1PGDG.rhel8.10.x86_64.rpm
pg_background_181.5el8.x86_64pgdg22.5 KiBpg_background_18-1.5-1PGDG.rhel8.x86_64.rpm
pg_background_181.8el8.aarch64pgdg45.8 KiBpg_background_18-1.8-1PGDG.rhel8.10.aarch64.rpm
pg_background_181.6el8.aarch64pgdg40.7 KiBpg_background_18-1.6-1PGDG.rhel8.10.aarch64.rpm
pg_background_181.5el8.aarch64pgdg22.0 KiBpg_background_18-1.5-1PGDG.rhel8.aarch64.rpm
pg_background_181.8el9.x86_64pgdg46.5 KiBpg_background_18-1.8-1PGDG.rhel9.7.x86_64.rpm
pg_background_181.6el9.x86_64pgdg41.3 KiBpg_background_18-1.6-1PGDG.rhel9.7.x86_64.rpm
pg_background_181.5el9.x86_64pgdg22.7 KiBpg_background_18-1.5-1PGDG.rhel9.x86_64.rpm
pg_background_181.8el9.aarch64pgdg45.4 KiBpg_background_18-1.8-1PGDG.rhel9.7.aarch64.rpm
pg_background_181.6el9.aarch64pgdg40.3 KiBpg_background_18-1.6-1PGDG.rhel9.7.aarch64.rpm
pg_background_181.5el9.aarch64pgdg22.0 KiBpg_background_18-1.5-1PGDG.rhel9.aarch64.rpm
pg_background_181.8el10.x86_64pgdg46.8 KiBpg_background_18-1.8-1PGDG.rhel10.1.x86_64.rpm
pg_background_181.6el10.x86_64pgdg41.6 KiBpg_background_18-1.6-1PGDG.rhel10.1.x86_64.rpm
pg_background_181.5el10.x86_64pgdg23.1 KiBpg_background_18-1.5-1PGDG.rhel10.x86_64.rpm
pg_background_181.8el10.aarch64pgdg45.9 KiBpg_background_18-1.8-1PGDG.rhel10.1.aarch64.rpm
pg_background_181.6el10.aarch64pgdg40.7 KiBpg_background_18-1.6-1PGDG.rhel10.1.aarch64.rpm
pg_background_181.5el10.aarch64pgdg22.6 KiBpg_background_18-1.5-1PGDG.rhel10.aarch64.rpm
postgresql-18-pg-background1.8d12.x86_64pigsty77.3 KiBpostgresql-18-pg-background_1.8-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-background1.8d12.aarch64pigsty75.7 KiBpostgresql-18-pg-background_1.8-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-background1.8d13.x86_64pigsty77.1 KiBpostgresql-18-pg-background_1.8-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-background1.8d13.aarch64pigsty76.0 KiBpostgresql-18-pg-background_1.8-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-background1.8u22.x86_64pigsty82.6 KiBpostgresql-18-pg-background_1.8-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-background1.8u22.aarch64pigsty81.0 KiBpostgresql-18-pg-background_1.8-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-background1.8u24.x86_64pigsty79.9 KiBpostgresql-18-pg-background_1.8-1PIGSTY~noble_amd64.deb
postgresql-18-pg-background1.8u24.aarch64pigsty79.0 KiBpostgresql-18-pg-background_1.8-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_background_171.6el8.x86_64pgdg41.9 KiBpg_background_17-1.6-1PGDG.rhel8.10.x86_64.rpm
pg_background_171.3el8.x86_64pgdg21.9 KiBpg_background_17-1.3-1PGDG.rhel8.x86_64.rpm
pg_background_171.2el8.x86_64pgdg20.1 KiBpg_background_17-1.2-2PGDG.rhel8.x86_64.rpm
pg_background_171.8el8.aarch64pgdg45.8 KiBpg_background_17-1.8-1PGDG.rhel8.10.aarch64.rpm
pg_background_171.6el8.aarch64pgdg40.7 KiBpg_background_17-1.6-1PGDG.rhel8.10.aarch64.rpm
pg_background_171.3el8.aarch64pgdg21.3 KiBpg_background_17-1.3-1PGDG.rhel8.aarch64.rpm
pg_background_171.2el8.aarch64pgdg19.6 KiBpg_background_17-1.2-2PGDG.rhel8.aarch64.rpm
pg_background_171.8el9.x86_64pgdg46.4 KiBpg_background_17-1.8-1PGDG.rhel9.7.x86_64.rpm
pg_background_171.6el9.x86_64pgdg41.3 KiBpg_background_17-1.6-1PGDG.rhel9.7.x86_64.rpm
pg_background_171.3el9.x86_64pgdg22.3 KiBpg_background_17-1.3-1PGDG.rhel9.x86_64.rpm
pg_background_171.2el9.x86_64pgdg20.5 KiBpg_background_17-1.2-2PGDG.rhel9.x86_64.rpm
pg_background_171.8el9.aarch64pgdg45.4 KiBpg_background_17-1.8-1PGDG.rhel9.7.aarch64.rpm
pg_background_171.6el9.aarch64pgdg40.3 KiBpg_background_17-1.6-1PGDG.rhel9.7.aarch64.rpm
pg_background_171.3el9.aarch64pgdg21.6 KiBpg_background_17-1.3-1PGDG.rhel9.aarch64.rpm
pg_background_171.2el9.aarch64pgdg19.9 KiBpg_background_17-1.2-2PGDG.rhel9.aarch64.rpm
pg_background_171.8el10.x86_64pgdg46.8 KiBpg_background_17-1.8-1PGDG.rhel10.1.x86_64.rpm
pg_background_171.6el10.x86_64pgdg41.6 KiBpg_background_17-1.6-1PGDG.rhel10.1.x86_64.rpm
pg_background_171.3el10.x86_64pgdg22.8 KiBpg_background_17-1.3-3PGDG.rhel10.x86_64.rpm
pg_background_171.8el10.aarch64pgdg45.9 KiBpg_background_17-1.8-1PGDG.rhel10.1.aarch64.rpm
pg_background_171.6el10.aarch64pgdg40.7 KiBpg_background_17-1.6-1PGDG.rhel10.1.aarch64.rpm
pg_background_171.3el10.aarch64pgdg22.3 KiBpg_background_17-1.3-3PGDG.rhel10.aarch64.rpm
postgresql-17-pg-background1.8d12.x86_64pigsty77.1 KiBpostgresql-17-pg-background_1.8-1PIGSTY~bookworm_amd64.deb
postgresql-17-pg-background1.8d12.aarch64pigsty75.6 KiBpostgresql-17-pg-background_1.8-1PIGSTY~bookworm_arm64.deb
postgresql-17-pg-background1.8d13.x86_64pigsty77.0 KiBpostgresql-17-pg-background_1.8-1PIGSTY~trixie_amd64.deb
postgresql-17-pg-background1.8d13.aarch64pigsty75.9 KiBpostgresql-17-pg-background_1.8-1PIGSTY~trixie_arm64.deb
postgresql-17-pg-background1.8u22.x86_64pigsty87.2 KiBpostgresql-17-pg-background_1.8-1PIGSTY~jammy_amd64.deb
postgresql-17-pg-background1.8u22.aarch64pigsty85.7 KiBpostgresql-17-pg-background_1.8-1PIGSTY~jammy_arm64.deb
postgresql-17-pg-background1.8u24.x86_64pigsty79.7 KiBpostgresql-17-pg-background_1.8-1PIGSTY~noble_amd64.deb
postgresql-17-pg-background1.8u24.aarch64pigsty78.9 KiBpostgresql-17-pg-background_1.8-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_background_161.6el8.x86_64pgdg41.8 KiBpg_background_16-1.6-1PGDG.rhel8.10.x86_64.rpm
pg_background_161.3el8.x86_64pgdg21.9 KiBpg_background_16-1.3-1PGDG.rhel8.x86_64.rpm
pg_background_161.2el8.x86_64pgdg19.7 KiBpg_background_16-1.2-1PGDG.rhel8.x86_64.rpm
pg_background_161.8el8.aarch64pgdg45.7 KiBpg_background_16-1.8-1PGDG.rhel8.10.aarch64.rpm
pg_background_161.6el8.aarch64pgdg40.7 KiBpg_background_16-1.6-1PGDG.rhel8.10.aarch64.rpm
pg_background_161.3el8.aarch64pgdg21.3 KiBpg_background_16-1.3-1PGDG.rhel8.aarch64.rpm
pg_background_161.2el8.aarch64pgdg19.2 KiBpg_background_16-1.2-1PGDG.rhel8.aarch64.rpm
pg_background_161.8el9.x86_64pgdg46.4 KiBpg_background_16-1.8-1PGDG.rhel9.7.x86_64.rpm
pg_background_161.6el9.x86_64pgdg41.2 KiBpg_background_16-1.6-1PGDG.rhel9.7.x86_64.rpm
pg_background_161.3el9.x86_64pgdg22.3 KiBpg_background_16-1.3-1PGDG.rhel9.x86_64.rpm
pg_background_161.2el9.x86_64pgdg19.9 KiBpg_background_16-1.2-1PGDG.rhel9.x86_64.rpm
pg_background_161.8el9.aarch64pgdg45.3 KiBpg_background_16-1.8-1PGDG.rhel9.7.aarch64.rpm
pg_background_161.6el9.aarch64pgdg40.3 KiBpg_background_16-1.6-1PGDG.rhel9.7.aarch64.rpm
pg_background_161.3el9.aarch64pgdg21.6 KiBpg_background_16-1.3-1PGDG.rhel9.aarch64.rpm
pg_background_161.2el9.aarch64pgdg19.2 KiBpg_background_16-1.2-1PGDG.rhel9.aarch64.rpm
pg_background_161.8el10.x86_64pgdg46.7 KiBpg_background_16-1.8-1PGDG.rhel10.1.x86_64.rpm
pg_background_161.6el10.x86_64pgdg41.7 KiBpg_background_16-1.6-1PGDG.rhel10.1.x86_64.rpm
pg_background_161.3el10.x86_64pgdg22.8 KiBpg_background_16-1.3-3PGDG.rhel10.x86_64.rpm
pg_background_161.8el10.aarch64pgdg45.9 KiBpg_background_16-1.8-1PGDG.rhel10.1.aarch64.rpm
pg_background_161.6el10.aarch64pgdg40.7 KiBpg_background_16-1.6-1PGDG.rhel10.1.aarch64.rpm
pg_background_161.3el10.aarch64pgdg22.4 KiBpg_background_16-1.3-3PGDG.rhel10.aarch64.rpm
postgresql-16-pg-background1.8d12.x86_64pigsty77.1 KiBpostgresql-16-pg-background_1.8-1PIGSTY~bookworm_amd64.deb
postgresql-16-pg-background1.8d12.aarch64pigsty75.7 KiBpostgresql-16-pg-background_1.8-1PIGSTY~bookworm_arm64.deb
postgresql-16-pg-background1.8d13.x86_64pigsty77.0 KiBpostgresql-16-pg-background_1.8-1PIGSTY~trixie_amd64.deb
postgresql-16-pg-background1.8d13.aarch64pigsty76.0 KiBpostgresql-16-pg-background_1.8-1PIGSTY~trixie_arm64.deb
postgresql-16-pg-background1.8u22.x86_64pigsty87.2 KiBpostgresql-16-pg-background_1.8-1PIGSTY~jammy_amd64.deb
postgresql-16-pg-background1.8u22.aarch64pigsty85.7 KiBpostgresql-16-pg-background_1.8-1PIGSTY~jammy_arm64.deb
postgresql-16-pg-background1.8u24.x86_64pigsty79.7 KiBpostgresql-16-pg-background_1.8-1PIGSTY~noble_amd64.deb
postgresql-16-pg-background1.8u24.aarch64pigsty78.9 KiBpostgresql-16-pg-background_1.8-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_background_151.6el8.x86_64pgdg41.8 KiBpg_background_15-1.6-1PGDG.rhel8.10.x86_64.rpm
pg_background_151.3el8.x86_64pgdg21.9 KiBpg_background_15-1.3-1PGDG.rhel8.x86_64.rpm
pg_background_151.2el8.x86_64pgdg19.6 KiBpg_background_15-1.2-1PGDG.rhel8.x86_64.rpm
pg_background_151.0el8.x86_64pgdg39.3 KiBpg_background_15-1.0-1.rhel8.x86_64.rpm
pg_background_151.8el8.aarch64pgdg45.7 KiBpg_background_15-1.8-1PGDG.rhel8.10.aarch64.rpm
pg_background_151.6el8.aarch64pgdg40.7 KiBpg_background_15-1.6-1PGDG.rhel8.10.aarch64.rpm
pg_background_151.3el8.aarch64pgdg21.2 KiBpg_background_15-1.3-1PGDG.rhel8.aarch64.rpm
pg_background_151.2el8.aarch64pgdg19.2 KiBpg_background_15-1.2-1PGDG.rhel8.aarch64.rpm
pg_background_151.0el8.aarch64pgdg38.7 KiBpg_background_15-1.0-1.rhel8.aarch64.rpm
pg_background_151.8el9.x86_64pgdg46.4 KiBpg_background_15-1.8-1PGDG.rhel9.7.x86_64.rpm
pg_background_151.6el9.x86_64pgdg41.2 KiBpg_background_15-1.6-1PGDG.rhel9.7.x86_64.rpm
pg_background_151.3el9.x86_64pgdg22.2 KiBpg_background_15-1.3-1PGDG.rhel9.x86_64.rpm
pg_background_151.2el9.x86_64pgdg19.9 KiBpg_background_15-1.2-1PGDG.rhel9.x86_64.rpm
pg_background_151.0el9.x86_64pgdg40.6 KiBpg_background_15-1.0-1.rhel9.x86_64.rpm
pg_background_151.8el9.aarch64pgdg45.4 KiBpg_background_15-1.8-1PGDG.rhel9.7.aarch64.rpm
pg_background_151.6el9.aarch64pgdg40.3 KiBpg_background_15-1.6-1PGDG.rhel9.7.aarch64.rpm
pg_background_151.3el9.aarch64pgdg21.6 KiBpg_background_15-1.3-1PGDG.rhel9.aarch64.rpm
pg_background_151.2el9.aarch64pgdg19.1 KiBpg_background_15-1.2-1PGDG.rhel9.aarch64.rpm
pg_background_151.0el9.aarch64pgdg39.7 KiBpg_background_15-1.0-1.rhel9.aarch64.rpm
pg_background_151.8el10.x86_64pgdg46.8 KiBpg_background_15-1.8-1PGDG.rhel10.1.x86_64.rpm
pg_background_151.6el10.x86_64pgdg41.8 KiBpg_background_15-1.6-1PGDG.rhel10.1.x86_64.rpm
pg_background_151.3el10.x86_64pgdg22.8 KiBpg_background_15-1.3-3PGDG.rhel10.x86_64.rpm
pg_background_151.8el10.aarch64pgdg45.9 KiBpg_background_15-1.8-1PGDG.rhel10.1.aarch64.rpm
pg_background_151.6el10.aarch64pgdg40.7 KiBpg_background_15-1.6-1PGDG.rhel10.1.aarch64.rpm
pg_background_151.3el10.aarch64pgdg22.3 KiBpg_background_15-1.3-3PGDG.rhel10.aarch64.rpm
postgresql-15-pg-background1.8d12.x86_64pigsty77.1 KiBpostgresql-15-pg-background_1.8-1PIGSTY~bookworm_amd64.deb
postgresql-15-pg-background1.8d12.aarch64pigsty75.7 KiBpostgresql-15-pg-background_1.8-1PIGSTY~bookworm_arm64.deb
postgresql-15-pg-background1.8d13.x86_64pigsty77.1 KiBpostgresql-15-pg-background_1.8-1PIGSTY~trixie_amd64.deb
postgresql-15-pg-background1.8d13.aarch64pigsty75.9 KiBpostgresql-15-pg-background_1.8-1PIGSTY~trixie_arm64.deb
postgresql-15-pg-background1.8u22.x86_64pigsty87.1 KiBpostgresql-15-pg-background_1.8-1PIGSTY~jammy_amd64.deb
postgresql-15-pg-background1.8u22.aarch64pigsty85.6 KiBpostgresql-15-pg-background_1.8-1PIGSTY~jammy_arm64.deb
postgresql-15-pg-background1.8u24.x86_64pigsty79.8 KiBpostgresql-15-pg-background_1.8-1PIGSTY~noble_amd64.deb
postgresql-15-pg-background1.8u24.aarch64pigsty78.9 KiBpostgresql-15-pg-background_1.8-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_background_141.6el8.x86_64pgdg41.8 KiBpg_background_14-1.6-1PGDG.rhel8.10.x86_64.rpm
pg_background_141.3el8.x86_64pgdg21.9 KiBpg_background_14-1.3-1PGDG.rhel8.x86_64.rpm
pg_background_141.0el8.x86_64pgdg39.6 KiBpg_background_14-1.0-1.rhel8.x86_64.rpm
pg_background_141.8el8.aarch64pgdg45.6 KiBpg_background_14-1.8-1PGDG.rhel8.10.aarch64.rpm
pg_background_141.6el8.aarch64pgdg40.6 KiBpg_background_14-1.6-1PGDG.rhel8.10.aarch64.rpm
pg_background_141.3el8.aarch64pgdg21.2 KiBpg_background_14-1.3-1PGDG.rhel8.aarch64.rpm
pg_background_141.0el8.aarch64pgdg38.6 KiBpg_background_14-1.0-1.rhel8.aarch64.rpm
pg_background_141.8el9.x86_64pgdg46.3 KiBpg_background_14-1.8-1PGDG.rhel9.7.x86_64.rpm
pg_background_141.6el9.x86_64pgdg41.2 KiBpg_background_14-1.6-1PGDG.rhel9.7.x86_64.rpm
pg_background_141.3el9.x86_64pgdg22.2 KiBpg_background_14-1.3-1PGDG.rhel9.x86_64.rpm
pg_background_141.2el9.x86_64pgdg19.9 KiBpg_background_14-1.2-1PGDG.rhel9.x86_64.rpm
pg_background_141.8el9.aarch64pgdg45.4 KiBpg_background_14-1.8-1PGDG.rhel9.7.aarch64.rpm
pg_background_141.6el9.aarch64pgdg40.3 KiBpg_background_14-1.6-1PGDG.rhel9.7.aarch64.rpm
pg_background_141.3el9.aarch64pgdg21.6 KiBpg_background_14-1.3-1PGDG.rhel9.aarch64.rpm
pg_background_141.0el9.aarch64pgdg39.5 KiBpg_background_14-1.0-1.rhel9.aarch64.rpm
pg_background_141.8el10.x86_64pgdg46.7 KiBpg_background_14-1.8-1PGDG.rhel10.1.x86_64.rpm
pg_background_141.6el10.x86_64pgdg41.6 KiBpg_background_14-1.6-1PGDG.rhel10.1.x86_64.rpm
pg_background_141.3el10.x86_64pgdg22.8 KiBpg_background_14-1.3-3PGDG.rhel10.x86_64.rpm
pg_background_141.8el10.aarch64pgdg45.9 KiBpg_background_14-1.8-1PGDG.rhel10.1.aarch64.rpm
pg_background_141.6el10.aarch64pgdg40.7 KiBpg_background_14-1.6-1PGDG.rhel10.1.aarch64.rpm
pg_background_141.3el10.aarch64pgdg22.4 KiBpg_background_14-1.3-3PGDG.rhel10.aarch64.rpm
postgresql-14-pg-background1.8d12.x86_64pigsty76.8 KiBpostgresql-14-pg-background_1.8-1PIGSTY~bookworm_amd64.deb
postgresql-14-pg-background1.8d12.aarch64pigsty75.6 KiBpostgresql-14-pg-background_1.8-1PIGSTY~bookworm_arm64.deb
postgresql-14-pg-background1.8d13.x86_64pigsty76.8 KiBpostgresql-14-pg-background_1.8-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-background1.8d13.aarch64pigsty75.8 KiBpostgresql-14-pg-background_1.8-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-background1.8u22.x86_64pigsty87.0 KiBpostgresql-14-pg-background_1.8-1PIGSTY~jammy_amd64.deb
postgresql-14-pg-background1.8u22.aarch64pigsty85.5 KiBpostgresql-14-pg-background_1.8-1PIGSTY~jammy_arm64.deb
postgresql-14-pg-background1.8u24.x86_64pigsty79.6 KiBpostgresql-14-pg-background_1.8-1PIGSTY~noble_amd64.deb
postgresql-14-pg-background1.8u24.aarch64pigsty78.7 KiBpostgresql-14-pg-background_1.8-1PIGSTY~noble_arm64.deb

Source

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

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

Create this extension with:

CREATE EXTENSION pg_background;

Usage

pg_background: Execute SQL in background worker processes

Execute arbitrary SQL commands in background worker processes within PostgreSQL. Unlike dblink (which creates a separate connection), pg_background workers run inside the database server in independent transactions.

Use Cases:

  • Background maintenance (VACUUM, ANALYZE, REINDEX)
  • Asynchronous audit logging
  • Long-running ETL pipelines
  • Independent notification delivery
  • Parallel query patterns

Quick Start (V2 API)

CREATE EXTENSION pg_background;

-- Launch a background job
SELECT * FROM pg_background_launch_v2(
  'SELECT count(*) FROM large_table'
) AS handle;
--   pid  |      cookie
-- -------+-------------------
--  12345 | 1234567890123456

-- Retrieve results (one-time consumption)
SELECT * FROM pg_background_result_v2(12345, 1234567890123456) AS (count BIGINT);

-- Fire-and-forget (no result needed)
SELECT * FROM pg_background_submit_v2(
  'INSERT INTO audit_log (ts, event) VALUES (now(), ''system_check'')'
) AS handle;

V2 API Reference

FunctionReturnsDescription
pg_background_launch_v2(sql, queue_size)pg_background_handleLaunch worker, return cookie-protected handle
pg_background_submit_v2(sql, queue_size)pg_background_handleFire-and-forget (no result consumption)
pg_background_result_v2(pid, cookie)SETOF recordRetrieve results (one-time consumption)
pg_background_detach_v2(pid, cookie)voidStop tracking worker (worker continues)
pg_background_cancel_v2(pid, cookie)voidRequest cancellation
pg_background_cancel_v2_grace(pid, cookie, grace_ms)voidCancel with grace period
pg_background_wait_v2(pid, cookie)voidBlock until worker completes
pg_background_wait_v2_timeout(pid, cookie, timeout_ms)boolWait with timeout
pg_background_list_v2()SETOF recordList known workers in current session
pg_background_stats_v2()pg_background_statsSession statistics (v1.8+)
pg_background_progress(pct, msg)voidReport progress from worker (v1.8+)
pg_background_get_progress_v2(pid, cookie)pg_background_progressGet worker progress (v1.8+)

Cancel vs Detach

OperationStops ExecutionRemoves Tracking
cancel_v2()Yes (best-effort)No
detach_v2()NoYes
  • Use cancel_v2() to stop work (terminate execution, prevent commit)
  • Use detach_v2() to stop tracking (free bookkeeping while worker continues)

Worker Lifecycle

-- Cancel a running job
SELECT pg_background_cancel_v2(pid, cookie);

-- Wait for completion
SELECT pg_background_wait_v2(pid, cookie);

-- Wait with timeout (returns true if completed)
SELECT pg_background_wait_v2_timeout(pid, cookie, 5000);

-- List active workers
SELECT * FROM pg_background_list_v2() AS (
  pid int4, cookie int8, launched_at timestamptz,
  user_id oid, queue_size int4, state text,
  sql_preview text, last_error text, consumed bool
);

Worker states: running, stopped, canceled, error

Progress Reporting (v1.8+)

-- From within worker SQL
SELECT pg_background_progress(50, 'Halfway done');

-- From launcher (check progress)
SELECT * FROM pg_background_get_progress_v2(pid, cookie);

GUC Settings (v1.8+)

ParameterDefaultDescription
pg_background.max_workers16Max concurrent workers per session
pg_background.default_queue_size65536Default shared memory queue size
pg_background.worker_timeout0Worker execution timeout (0 = no limit)

V1 API (Legacy)

The v1 API is retained for backward compatibility but lacks cookie-based PID reuse protection:

SELECT pg_background_launch('VACUUM VERBOSE my_table') AS pid \gset
SELECT * FROM pg_background_result(:pid) AS (result TEXT);
SELECT pg_background_detach(:pid);

The V2 API is recommended for production use due to cookie-based PID reuse protection.

Security Model

  • Extension is installed by superusers, with no PUBLIC grants by default
  • A dedicated pg_background_worker NOLOGIN role is created
  • Helper functions manage privileges: grant_pg_background_privileges(role, include_v1)
  • Workers execute as the launching user (not superuser)
Last updated on