Contents
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2026-02-14
Added
pglock.lockstable withid,resource,locked,ttl,created_at, andupdated_atcolumnspglock.lock(id, resource)- Acquire a lock; returnstrueon success,falseif already lockedpglock.unlock(id, resource)- Release a lock; always returnstruepglock.ttl()- Expire stale locks whoseupdated_atexceeds their TTL (in minutes)pglock.set_serializable()- Set database default transaction isolation to serializable- Partial index
idx_pglock_locks_expiredfor efficient TTL cleanup queries - pg_cron job
pglock-ttlto run TTL expiration every minute (requires pg_cron extension)