OR is TRUE when at least one child predicate is TRUE.

highlighted = computed this step

OR needs at least one TRUE

OR is TRUE when at least one child predicate is TRUE.

one TRUE is enough\text{one TRUE is enough}

Read OR rows

The OR expression has 3 TRUE rows.

OR TRUE rows=3\text{OR 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.

OR needs at least one TRUE: base rowsidagestatus130active217active3NULLactive440paused525NULL Boolean predicate evaluationsourcevaluestruthkepttrace0[1, 30, active]TRUEyes[age ge 18 -> TRUE, status eq paused -> FALSE, OR(TRUE,FALSE) -> TRUE]1[2, 17, active]FALSEno[age ge 18 -> FALSE, status eq paused -> FALSE, OR(FALSE,FALSE) -> FALSE]2[3, NULL, active]UNKNOWNno[age ge 18 -> UNKNOWN, status eq paused -> FALSE, OR(UNKNOWN,FALSE) -> UNKNOWN]3[4, 40, paused]TRUEyes[age ge 18 -> TRUE, status eq paused -> TRUE, OR(TRUE,TRUE) -> TRUE]4[5, 25, NULL]TRUEyes[age ge 18 -> TRUE, status eq paused -> UNKNOWN, OR(TRUE,UNKNOWN) -> TRUE] Boolean filter output rowsidagestatus130active440paused525NULL Boolean filter factsfactvalueinputRowCount5outputRowCount3trueRows3falseRows1unknownRows1rootKindortreeOR(age ge 18, status eq paused)rowOrdersource_order

One side can carry it

A row does not need both children to be TRUE for OR.

either side TRUE\text{either side TRUE}

Summary

OR is the at-least-one-condition check.

any child TRUE\text{any child TRUE}