# Changelog All notable changes to the dbt-pgtrickle package will be documented in this file. ## [Unreleased] ### Added - `pgtrickle_create_or_replace_stream_table()` adapter macro — wraps pg_trickle 0.6.0's idempotent DDL function - `pgtrickle_has_create_or_replace()` utility macro — detects pg_trickle ≥ 0.6.0 - `pgtrickle_stream_table_status()` utility macro — returns health status (healthy/stale/erroring/paused/not_found) with staleness and error counts for a stream table (DBT-1) - `stream_table_healthy` generic dbt test — fails if a stream table is stale, erroring, or paused; configurable `warn_seconds` threshold (DBT-1) - `refresh_all_stream_tables` run-operation — refreshes all dbt-managed stream tables in dependency order using pg_trickle's catalog for topological ordering; designed for CI pipelines (DBT-2) - Integration tests for alter flow — `order_extremes` (FULL mode) and `customer_stats` (config change) models exercise create, no-op idempotent re-run, config-only alter, and full-refresh paths (DBT-3) ### Changed - `stream_table` materialization now uses `create_or_replace_stream_table()` when pg_trickle ≥ 0.6.0 is detected, with automatic fallback to the legacy check-then-decide pattern for older versions - Integration test suite expanded: tests `stream_table_healthy` generic test, `refresh_all_stream_tables` operation, idempotent no-op re-run, and multiple stream table models ## [0.1.0] - 2026-XX-XX ### Added - Custom `stream_table` materialization - SQL API wrapper macros (create, alter, drop, refresh) - Utility macros (stream_table_exists, get_stream_table_info) - Freshness monitoring via `pgtrickle_check_freshness` run-operation (raises error on breach) - CDC health check via `pgtrickle_check_cdc_health` run-operation - `pgtrickle_refresh` and `drop_all_stream_tables` run-operations - `drop_all_stream_tables_force` for dropping all stream tables (including non-dbt) - Integration test suite with seed data, polling helper, and query-change test - CI pipeline (dbt 1.9–1.11 version matrix in main repo workflow)