v0.8.0 — Backup Support and Test Invariant Hardening

Full technical details: v0.8.0.md-full.md

Status: ✅ Released | Scope: Small (~2 weeks)

Stream tables are now fully included in pg_dump backups, and the test suite gained property-based invariant testing for the differential engine.


What problem does this solve?

Production deployments need reliable backup and restore. Before v0.8.0, pg_dump would capture the source tables but not the pg_trickle catalog metadata or stream table state — making a restored database unusable with pg_trickle without manual re-initialisation.


pg_dump Integration

PostgreSQL’s standard backup tool pg_dump now captures the complete pg_trickle state alongside the rest of the database:

  • The stream table definitions (queries, schedules, refresh modes)
  • The catalog metadata
  • The current content of each stream table
  • The frontier (the point in the change history up to which changes have been applied)

A database restored from a pg_dump backup will have fully functional stream tables — the background worker picks up exactly where it left off, with no full re-initialisation required.

In plain terms: your backups now include your stream tables. Restore works as expected.


pg_restore and Upgrade Path Testing

The backup/restore process was integrated into the upgrade test suite. Upgrading from one pg_trickle version to another, via a backup-and-restore cycle, is now tested on every release.


Multiset Invariant Testing

The differential engine’s core correctness property is the multiset invariant: the contents of a stream table should always match what you would get from running the defining query on the current source data.

v0.8.0 adds property-based testing (using the Rust proptest library) that generates random sequences of INSERT, UPDATE, and DELETE operations, applies them to source tables, refreshes the stream table differentially, and then verifies that the stream table result exactly matches a fresh full recomputation.

In plain terms: the test suite now automatically generates thousands of random scenarios to verify that differential refresh never diverges from the correct answer. Any subtle bug in the differential engine that produces even one wrong row will be caught.


Scope

v0.8.0 is a focused quality release. The pg_dump integration makes pg_trickle production-safe from a backup and disaster-recovery perspective. The multiset invariant testing provides ongoing confidence in differential correctness.