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.locks table with id, resource, locked, ttl, created_at, and updated_at columns
  • pglock.lock(id, resource) - Acquire a lock; returns true on success, false if already locked
  • pglock.unlock(id, resource) - Release a lock; always returns true
  • pglock.ttl() - Expire stale locks whose updated_at exceeds their TTL (in minutes)
  • pglock.set_serializable() - Set database default transaction isolation to serializable
  • Partial index idx_pglock_locks_expired for efficient TTL cleanup queries
  • pg_cron job pglock-ttl to run TTL expiration every minute (requires pg_cron extension)