| database_name | TEXT | The database containing the CDC table. |
| schema_name | TEXT | The schema containing the CDC table. |
| table_name | TEXT | The CDC table. |
| stream_schema | TEXT | The schema containing the attached stream. |
| stream_name | TEXT | The stream feeding the table. |
| state | TEXT | Persisted attachment state: enabled after RESUME, paused after ATTACH or SUSPEND (an attachment in error stays in error), or error after a permanent stop. enabled does not prove that a worker is running; see has_worker. |
| phase | TEXT | The matching worker’s phase, backfilling or streaming; NULL without a matching worker (has_worker = false), while paused, after a permanent stop (state = 'error', even while has_worker is true during the final drain), or until the worker has determined its phase. A retried failure does not change it. |
| apply_count | BIGINT | Progress ticks since the worker started, not rows. For a Postgres stream one tick can cover several source transactions. 0 without a matching worker. |
| last_commit_time | TIMESTAMPTZ | When the matching worker last committed a batch or completed the initial load. |
| live_lag_ms | BIGINT | Milliseconds since last_commit_time. It grows on an idle source that has nothing to send, so treat it as time since the last applied batch rather than as a measure of lag. |
| source_lag_ms | BIGINT | Always NULL. Source-side lag measurement is not implemented. |
| last_error | TEXT | The recorded reason when state is error; otherwise the most recent failure not yet cleared by success of the same pipeline step. NULL when neither exists. |
| error_count | BIGINT | Failure incidents recorded by the matching worker, across all pipeline steps; a step that keeps failing counts once. 0 without one. |
| last_cascade_time | TIMESTAMPTZ | When background maintenance last applied staged changes into the base table. |
| cascade_lag_ms | BIGINT | Milliseconds since last_cascade_time. It grows on an idle table whose base is already current. |
| cascade_leftover_tablets | BIGINT | Tablets the last maintenance run left for the next one. |
| cascade_count | BIGINT | Maintenance runs that applied something, since the worker started. NULL without a matching worker. |
| last_cascade_error | TEXT | The most recent maintenance failure not yet cleared by a successful run. |
| has_worker | BOOLEAN | Whether the node serving this query runs the worker started by the latest RESUME. A worker still winding down after a later RESUME or DETACH STREAM does not count. After a SUSPEND run on another Engine, its worker still counts, with state = 'paused', until it stops at its next reconcile; on the Engine that ran SUSPEND, it no longer counts once SUSPEND returns. |