Revision history for pg_ttl_index

3.0.0   2026-03-20
        - NEW: Optional soft-delete mode via ttl_create_index(..., soft_delete_column)
        - NEW: ttl_runner() can mark rows as soft-deleted (timestamp) instead of hard delete
        - NEW: ttl_summary() now includes soft_delete_column and cleanup_mode
        - NEW: Validation for batch_size and expire_after_seconds in ttl_create_index()
        - NEW: Validation that soft_delete_column exists and is timestamp/timestamptz

2.0.1   (unreleased)
        - SECURITY: Added schema-aware TTL tracking (`schema_name`) and schema-qualified dynamic SQL
        - SECURITY: Hardened SQL/C function execution against search_path hijacking
        - NEW: `ttl_create_index` and `ttl_drop_index` now support schema-qualified table names
        - IMPROVED: `ttl_summary()` now returns `schema_name`
        - TESTS: Added multi-schema regression coverage

2.0.0   2026-01-01
        - BREAKING: API changed - ttl_create_index now takes batch_size parameter
        - NEW: Batch deletion with configurable batch_size (default 10000)
        - NEW: Auto-creates index on timestamp column for fast deletes
        - NEW: Stats tracking (rows_deleted_last_run, total_rows_deleted)
        - NEW: Advisory lock concurrency control (prevents overlapping runs)
        - IMPROVED: Per-table error handling in ttl_runner()
        - IMPROVED: ttl_summary() now returns all new fields
        - REMOVED: C-based ttl_create_index/ttl_drop_index (now PL/pgSQL)

1.0.2   (deprecated)
        - Initial stable release with background worker
        - Basic TTL functionality

1.0     (deprecated)
        - Initial development version
