pg_tre (3.0.2-1) unstable; urgency=medium

  * Vendor sparsemap 3.0.2 (wire-compatible; no reindex required).
  * Fix tre_version() reporting a stale "1.5.6" string.
  * CI: pgspot PS017 ignore, autopoint for the TRE autoconf build,
    drop the bogus postgresql-NN-pgwalinspect package, ASan ASLR
    workaround; mark never-passing ASan jobs informational.

 -- Greg Burd <greg@burd.me>  Wed, 03 Jun 2026 12:00:00 +0000

pg_tre (1.5.0-1) unstable; urgency=medium

  * Multi-leaf range tier (format v5 for range pages): full heap
    coverage in tier-1 selectivity at scale.  Was capped at ~30
    entries before truncation.
  * Hoist pg_tre_upper_lookup out of tier-3 inner loop: per-scan
    cache replaces per-candidate B-tree probes.  ~1.84x cold-cache
    speedup on the 1M-row 'connection refused' reproducer.
  * Backward-compatible read for v4 range pages; pg_tre_upgrade_index
    rewrites them to v5 in place when run.
  * Variable-width per-tuple blooms prototyped on variable-width-v6
    branch but did not deliver a size win on natural-text 1M-row
    corpora; parked for short-text corpus targets.

 -- Greg Burd <greg@burd.me>  Tue, 27 May 2026 00:00:00 +0000

pg_tre (1.5.0-1) unstable; urgency=medium

  * Fix two production-blocking bugs surfaced by the 1M-row benchmark:
    palloc 1 GB cap in ambuild.c (use _huge variants), and
    single-level upper-tree internals in upper.c (recurse).
  * Latent correctness bug surfaced by the multi-level descent fix:
    test/expected/utf8.out and test/expected/order_by.out refreshed.
  * No on-disk format changes; no re-index required.

 -- Greg Burd <greg@burd.me>  Mon, 26 May 2026 00:00:00 +0000

pg_tre (1.5.0-1) unstable; urgency=medium

  * Index-side ORDER BY <@>: distance-ordered scans via amcanorderbyop
    + amgettuple. EXPLAIN shows Index Scan with Order By, no Sort node.
  * Delta-aware WAL redo for pending_insert: ~370x reduction in FPI
    bytes on the high-volume insert path; wal_consistency_checking still
    passes.
  * In-place format-upgrade infrastructure: pg_tre_upgrade_index() and
    pg_tre_index_format_status() let users upgrade across format
    versions without REINDEX.
  * libFuzzer harness uses real libpgcommon (palloc, MemoryContext,
    StringInfo) instead of stubs.
  * PostgreSQL 17 build compatibility (PG_VERSION_NUM guards).
  * PG_TRE_INLINE_POSTING_MAX raised from 256 to 2048 bytes.
  * Three not-yet-implemented WAL redo PANICs replaced with FPI-fallthrough
    (correct because those record types aren't emitted yet).
  * No on-disk format changes; no re-index required.

 -- Greg Burd <greg@burd.me>  Mon, 25 May 2026 21:00:00 +0000

pg_tre (1.3.0-1) unstable; urgency=medium

  * Vendor sparsemap 2.3.0 (drop-in compatible upgrade from 2.2.0).
    Hardening-only release: bounds clamping in __sm_chunk_get_position
    and sm_contains, bounds-safe chunk walker in __sm_get_size_impl,
    NULL tolerance in sm_contains, UBSan fix in the diagnostic path.
  * No on-disk format changes; no re-index required.

 -- Greg Burd <greg@burd.me>  Thu, 14 May 2026 14:00:00 +0000

pg_tre (1.1.0-1) unstable; urgency=medium

  * Vendor sparsemap 2.2.0 (drop-in compatible upgrade from 3.0.2).
  * Adopt sparsemap's allocator-friendly APIs: sm_open_copy,
    sm_add_grow, sm_next_member.
  * Fix multi-leaf right-link sm_union reversed-logic bug that
    silently dropped every leaf past the first.  Same on-disk
    format as 1.0.0; no re-index required.
  * Gate per-tuple bloom and positional filter on
    pg_tre.tuple_bloom_enable until the chain-rank lookup is
    repaired; executor recheck remains authoritative.

 -- Greg Burd <greg@burd.me>  Thu, 14 May 2026 10:00:00 +0000

pg_tre (1.0.0-1) unstable; urgency=medium

  * Initial release candidate.
  * Native PostgreSQL 18+ index access method for approximate regex.
  * Three-tier filter funnel: range bloom, sparsemap trigram postings,
    per-tuple bloom.
  * Ships legacy tre_amatch() UDFs for compatibility.

 -- Greg Burd <greg@burd.me>  Tue, 12 May 2026 10:00:00 +0000
