This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Affected surfaces
Summary
AI summaryWidens queue, statistics, and schedules primary key columns from INT4 to BIGINT, addressing ID exhaustion.
Full changelog
PgQueuer v1.1.1
Widens the id primary keys on queue, statistics, and schedules from
int4 to BIGINT (#676, closes #671).
Fixes
idcolumns widened toBIGINT: thequeue,statistics, and
schedulesprimary keys wereint4 SERIAL, capped at ~2.1 billion. The
sequence never reuses values, so a long-lived deployment could exhaust it and
fail everyenqueue. Fresh installs now useBIGSERIAL.pgq upgradewidens
existingint4columns and their sequences toBIGINTin place. The
migration is idempotent (guarded on column/sequence type) and safe to re-run.
Upgrade notes
⚠️ This migration takes an ACCESS EXCLUSIVE lock. Widening int4 to
BIGINT rewrites the table and rebuilds its indexes, blocking enqueues,
dequeues, and SELECTs until it finishes. Time scales with row count; on a
large or bloated queue this can stall the queue for seconds to minutes.
- Run
pgq upgradeduring a maintenance window or low-traffic period, or - Run
pgq upgrade --no-widen-idto apply the other migrations and skip the
widen, then widen out-of-band.
For a zero-downtime widen on a large table, see #671
and the postgres.ai runbook How to redefine a PK without
downtime.
Full Changelog: https://github.com/janbjorge/pgqueuer/compare/v1.1.0...v1.1.1
Breaking Changes
- Primary key columns `id` on tables `queue`, `statistics`, and `schedules` changed from INT4 to BIGINT, requiring migration.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About PgQueuer v1.0
All releases →Related context
Earlier breaking changes
- v1.0.0 QueueManager now requires Queries(driver) instead of driver directly; PgQueuer constructor unchanged
- v1.0.0 RetryWithBackoffEntrypointExecutor renamed to DatabaseRetryEntrypointExecutor and no longer depends on async-timeout
- v1.0.0 CLI flags --pg-host, --pg-user etc. removed; use libpq environment variables or --pg-dsn instead
- v1.0.0 Synchronous entrypoint handlers are rejected; only async def is allowed
- v1.0.0 Custom async Driver must implement notify(channel, payload) method
Beta — feedback welcome: [email protected]