# v0.13.0 — Columnar Change Tracking, Shared Buffers, and TPC-H DIFFERENTIAL > **Full technical details:** [v0.13.0.md-full.md](v0.13.0.md-full.md) **Status: ✅ Released** | **Scope: Large** (~5–6 weeks) > Track exactly which columns changed (not just which rows), share change > buffers across multiple stream tables reading the same source, full TPC-H > DIFFERENTIAL pass at all 22 queries, and LIST and HASH partition type > support. --- ## What problem does this solve? The differential engine was treating every row change the same way regardless of which columns were actually affected. If a row in the `customers` table had only its `phone_number` column updated, but a stream table only uses `customer_name` and `customer_email`, the stream table was still being refreshed unnecessarily. Shared change buffers became important as more users defined multiple stream tables on the same source table. --- ## Columnar Change Tracking The change-capture triggers now record *which specific columns changed* alongside the row change. The differential engine uses this information to skip stream table refreshes when none of the columns a stream table reads were actually modified. *In plain terms:* if your stream table computes sales summaries and only reads `amount` and `product_id`, an UPDATE to a customer's phone number will not trigger any refresh at all — because no relevant column changed. This is especially impactful for tables with many columns where only a few are relevant to any given stream table. --- ## Shared Change Buffers Previously, each stream table maintained its own change buffer. If three stream tables all read from the same `orders` table, three separate change buffers were maintained with overlapping data. Shared change buffers consolidate this: all stream tables reading from the same source table share a single change buffer. The scheduler reads from the shared buffer and delivers the relevant changes to each stream table that needs them. *In plain terms:* three stream tables on the same source now use the same buffer instead of three copies. Memory usage drops significantly in deployments with many stream tables on the same source. --- ## LIST and HASH Partitioned Sources v0.6.0 added support for RANGE partitioned source tables (the most common type). v0.13.0 extends this to **LIST partitioning** (where each partition covers specific discrete values, like country codes) and **HASH partitioning** (where rows are distributed across partitions by hash of a key column). --- ## TPC-H 22/22 DIFFERENTIAL All 22 TPC-H benchmark queries now pass in **DIFFERENTIAL mode** — the incremental engine handles all of them correctly without falling back to full recomputation. This is a significant milestone: the industry-standard analytical benchmark is fully supported with incremental refresh. --- ## DVM Engine Improvements Several improvements to the internal differential view maintenance engine: - The EXCEPT ALL operator (used internally for delta computation) was optimised for the common case of small deltas - A new `MERGE` execution strategy was profiled and adopted for cases where the number of changed rows is large relative to the stream table size --- ## Scope v0.13.0 delivers meaningful performance improvements through column-aware filtering and shared buffers, and completes the TPC-H DIFFERENTIAL milestone. The partitioning extensions complete the coverage for all three PostgreSQL partition types.