A WHERE filter starts with visible input rows.

highlighted = computed this step

Base rows

A WHERE filter starts with visible input rows.

base rows first\text{base rows first}

Read the input size

The table has 4 input rows.

input rows=4\text{input rows}=4

WHERE-filter examples are tiny finite-table transforms with SQL-style TRUE/FALSE/UNKNOWN logic; SQL dialect completeness, type coercion, optimizer behavior, indexing, and product claims are out of scope.

Base rows: base rowsitemqtystatuspen3opennotebook0openmug2closedstickerNULLopen predicate evaluationsourcevaluestruthkept0[pen, 3, open]TRUEyes1[notebook, 0, open]FALSEno2[mug, 2, closed]TRUEyes3[sticker, NULL, open]UNKNOWNno WHERE output rowsitemqtystatuspen3openmug2closed WHERE factsfactvalueinputRowCount4trueRows2falseRows1unknownRows1keptRows2droppedRows2rowOrdersource_orderunknownKeptno

Evaluate after seeing rows

The predicate evaluation table keeps the source row beside its TRUE, FALSE, or UNKNOWN result.

row then truth\text{row then truth}

Summary

Filtering is a row-by-row decision.

one row at a time\text{one row at a time}