Entity / Operators

Failure and recovery

Every failure is a refusal by name, at the earliest moment that can see it:

WhatRefusedWhy there
a definedAs that reads a field it did not takewhen the operator is callednothing could see what the call reads
an argument of the wrong stored kindwhere the call is writtenSQL would coerce it silently (SQLite binds a number as a real)
text with no collation where one is requiredwhere the call or order term is writteneach database compares such text its own way
an operator a server's table lackswhere the query, invariant, write or rule is registerednot on the first request that needs it
an operator the client's table lacksnot judged on the client: an incomplete filter, a live row the server placesa client can be behind its server
text holding a NULthat row, or the run when the input holds itPostgres text cannot hold one; SQLite's like stops at it
a law an implementation breaksConformance.laws answers Counterexample with both sidesa declared law is a claim until tested
a law whose every call is refusedConformance.laws answers Unanswered, and records nothingtwo refusals agree, but show nothing of the law

A refusal never becomes an empty answer. A body the client cannot judge is "I could not tell" (skipped, complete: false, unknown), never "no rows".

Strict null means an operator needs no null cases in its laws or its implementation: a null argument makes the call null (unknown, for a predicate) before any implementation runs.