A Boolean filter starts by assigning row truth values.

highlighted = computed this step

Base predicate facts

A Boolean filter starts by giving each row a truth value.

row truth first\text{row truth first}

Read row truth

The base comparison has 3 TRUE rows and 1 UNKNOWN row.

TRUE rows=3\text{TRUE rows}=3

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

Base predicate facts: base rowsidagestatus130active217active3NULLactive440paused525NULL Boolean predicate evaluationsourcevaluestruthkepttrace0[1, 30, active]TRUEyes[age ge 18 -> TRUE]1[2, 17, active]FALSEno[age ge 18 -> FALSE]2[3, NULL, active]UNKNOWNno[age ge 18 -> UNKNOWN]3[4, 40, paused]TRUEyes[age ge 18 -> TRUE]4[5, 25, NULL]TRUEyes[age ge 18 -> TRUE] Boolean filter output rowsidagestatus130active440paused525NULL Boolean filter factsfactvalueinputRowCount5outputRowCount3trueRows3falseRows1unknownRows1rootKindcomparetreeage ge 18rowOrdersource_order

One predicate per row

The same authored comparison is recomputed for every source row.

same predicate each row\text{same predicate each row}

Summary

The rest of the book combines these exact truth values.

combine truth values\text{combine truth values}