Changing the visible cells makes the same rules pass.

highlighted = computed this step

Repair the row

Repair means changing the visible cells so the same rules pass.

same rules, fixed cells\text{same rules, fixed cells}

Compare before and after

Before repair, failed rows are 2. After repair, failed rows are 0.

after fail rows=0\text{after fail rows}=0

Check examples are tiny finite row-rule validations; SQL dialects, DDL timing, CHECK expression languages, enforcement strategy, performance, and product behavior are out of scope.

Before repair: tableidstatusqty1new22NULL43bad9 row rulesnamekindcolumndetailstatus_requirednot_nullstatusnot NULLstatus_domainallowed_valuesstatus[done, new]qty_rangebetweenqty1..5 row pass/failrowstatusfailed rules0pass[]1fail[status_required, status_domain]2fail[status_domain, qty_range] violationsrowrulecolumnvaluereason1status_requiredstatusNULLNULL1status_domainstatusNULLnot_allowed2status_domainstatusbadnot_allowed2qty_rangeqty9above_max check factsfactvaluerowCount3ruleCount3passCount1failCount2violationCount4allRowsPassnonullMeansMissingyes
After repair: tableidstatusqty1new22done43done5 row rulesnamekindcolumndetailstatus_requirednot_nullstatusnot NULLstatus_domainallowed_valuesstatus[done, new]qty_rangebetweenqty1..5 row pass/failrowstatusfailed rules0pass[]1pass[]2pass[] violationsrowrulecolumnvaluereasonnonenonenonenonenone check factsfactvaluerowCount3ruleCount3passCount3failCount0violationCount0allRowsPassyesnullMeansMissingyes

Read the repaired table

The repaired status values are allowed and the quantities stay inside the range.

all rows pass\text{all rows pass}

Summary

The allRowsPass fact becomes yes only after recompiling the repaired rows.

allRowsPass=yes\text{allRowsPass}=\text{yes}