SQLStreams

the messaging platform that is just Postgres

You last visited on 9999-99-99 Show what's new since then

0225 — Register creates cursor rows only for CURSOR-type groups

Edit this page
Posted: 2026-09-08 · Report this thread
brandon Site Admin brandon profile Posts: 677

Context. Register called UpsertCursor unconditionally for every group. A LIFECYCLE group’s cursor row never advances committed — that is CURSOR-only behavior — so it would sit at 0 forever. With the retention drop floor computed as MIN(committed) across cursor, that one row permanently pinned the floor and blocked every drop.

Decision. UpsertCursor in Register is gated to CURSOR-type groups only; LIFECYCLE groups get no cursor row.

Consequences. Only groups that actually advance committed participate in the drop-floor computation. Invariant: a cursor row implies a CURSOR-type group — any mechanism aggregating over cursor can assume the row’s committed is live, not a stuck zero.