pg_extension_updater
pg_lake : Automatic extension updater
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 2562 | pg_extension_updater
|
pg_lake
|
3.4 |
OLAP
|
Apache-2.0
|
C
|
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--sLd--
|
No
|
Yes
|
Yes
|
Yes
|
no
|
no
|
| Relationships | |
|---|---|
| Schemas | extension_updater pg_catalog |
| Requires | pg_extension_base
|
| Siblings | pg_lake
pg_extension_base
pg_map
pg_lake_engine
pg_lake_iceberg
pg_lake_table
pg_lake_copy
|
Optional packaged component. It runs installed extension updates at database start through pg_extension_base; it is not part of CREATE EXTENSION pg_lake CASCADE dependency closure.
Extension SQL/control version is 3.4; source and DEB/RPM package version is 3.4.0.
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PIGSTY
|
3.4 |
18
17
16
15
14
|
pg_lake |
pg_extension_base |
| RPM | PIGSTY
|
3.4.0 |
18
17
16
15
14
|
pg_lake_$v |
- |
| DEB | PIGSTY
|
3.4.0 |
18
17
16
15
14
|
postgresql-$v-pg-lake |
- |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
el8.x86_64
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
el8.aarch64
|
N/A
|
N/A
|
N/A
|
N/A
|
N/A
|
el9.x86_64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
el9.aarch64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
el10.x86_64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
el10.aarch64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
d12.x86_64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
d12.aarch64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
d13.x86_64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
d13.aarch64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
u22.x86_64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
u22.aarch64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
u24.x86_64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
u24.aarch64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
u26.x86_64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
u26.aarch64
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
PIGSTY 3.4.0
|
N/A
|
N/A
|
Source
pig build pkg pg_lake; # build rpm/debInstall
Make sure PGDG and PIGSTY repo available:
pig repo add pgsql -u # add both repo and update cacheInstall this extension with pig:
pig install pg_lake; # install via package name, for the active PG version
pig install pg_extension_updater; # install by extension name, for the current active PG version
pig install pg_extension_updater -v 18; # install for PG 18
pig install pg_extension_updater -v 17; # install for PG 17
pig install pg_extension_updater -v 16; # install for PG 16Config this extension to shared_preload_libraries:
shared_preload_libraries = 'pg_extension_base';Create this extension with:
CREATE EXTENSION pg_extension_updater CASCADE; -- requires pg_extension_baseUsage
Sources:
- Official pg_extension_updater README
- Version 3.4 control file
- Worker registration SQL
- Updater implementation and configuration
- pg_extension_base preload documentation
pg_extension_updater runs ALTER EXTENSION ... UPDATE for each extension whose installed version differs from its available default version when the database lifecycle worker starts. It is intended to reduce SQL/binary version mismatches after new extension files are deployed; it does not install missing extensions or replace release testing.
Enable Automatic Updates
The updater depends on pg_extension_base, which must be preloaded cluster-wide:
shared_preload_libraries = 'pg_extension_base'After restarting PostgreSQL, create the updater in every database where automatic updates are desired:
CREATE EXTENSION pg_extension_updater CASCADE;Creating it in template1 causes new databases cloned from that template to contain the updater. The worker does not update extensions inside the template database itself, but starts in a newly cloned database.
Runtime Behavior
- The
#!shared_preload_librariesdirective in the updater’s control file letspg_extension_baseload its library. - Installation registers the internal
extension_updater.main(internal)lifecycle worker. - At worker startup, it reads
pg_available_extensionsand updates entries whoseinstalled_versiondiffers fromdefault_version. - A failed
ALTER EXTENSIONis logged as a warning and is attempted only once during that worker run. pg_extension_updater.enableis a postmaster setting, defaults toon, and disables the worker’s updates when set tooff; changing it requires a restart.
Caveats
- Automatic migration can execute arbitrary upgrade SQL supplied by every installed extension. Validate packages and upgrade paths before enabling it on production databases.
- Review extension dependency changes and take application-specific backups independently; a warning does not roll back unrelated successful extension updates.
- There is no user-facing force-update function or per-extension allowlist in version
3.4. - Version
3.4changes no updater SQL API relative to3.3.