Expected DISTINCT facts are assertions only.

highlighted = computed this step

Honest by construction

Expected DISTINCT facts are assertions only.

compiler is source of truth\text{compiler is source of truth}

Render checked rows

The guarded DISTINCT pipeline renders 3 output rows after recomputation.

checked rows=3\text{checked rows}=3

DISTINCT examples are tiny finite bag-to-table transforms; this model shows first-seen representatives for deterministic display and does not claim product SQL output ordering.

Honest by construction: bag input rowsidcitystatus1Austinopen2Austinopen3Bostonclosed4Austinclosed5NULLopen6NULLopen WHERE then SELECT projectionsourceinputwhereTruthprojectedRowdistinctRole0[1, Austin, open]TRUE[Austin]representative1[2, Austin, open]TRUE[Austin]duplicate2[3, Boston, closed]TRUE[Boston]representative3[4, Austin, closed]TRUE[Austin]duplicate4[5, NULL, open]TRUE[NULL]representative5[6, NULL, open]TRUE[NULL]duplicate DISTINCT groupskeysourcesrepresentativeSourceduplicateCount[Austin][0, 1, 3]02[Boston][2]20[NULL][4, 5]41 DISTINCT output rowscityAustinBostonNULL DISTINCT factsfactvalueinputRowCount6whereKeptRows6whereDroppedRows0projectedRowCount6distinctRowCount3duplicateDropCount3nullKeyRows2selectColumnCount1representativeOrderfirst_seen_model_order_not_sql_order_claim

Try to tamper

Wrong expected facts, derived sidecars, missing columns, duplicate selected columns, bools, floats, and unsupported keys fail closed.

tamper rejected\text{tamper rejected}

Summary

The book shows exact finite DISTINCT behavior only; product SQL behavior is outside the model.

scoped DISTINCT model\text{scoped DISTINCT model}