AND keeps rows only when every child predicate is TRUE.

highlighted = computed this step

AND requires both TRUE

AND keeps a row only when every child predicate is TRUE.

both TRUE\text{both TRUE}

Read AND rows

The AND expression has 1 TRUE row.

AND TRUE rows=1\text{AND TRUE rows}=1

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.

AND requires both TRUE: base rowsidagestatus130active217active3NULLactive440paused525NULL Boolean predicate evaluationsourcevaluestruthkepttrace0[1, 30, active]TRUEyes[age ge 18 -> TRUE, status eq active -> TRUE, AND(TRUE,TRUE) -> TRUE]1[2, 17, active]FALSEno[age ge 18 -> FALSE, status eq active -> TRUE, AND(FALSE,TRUE) -> FALSE]2[3, NULL, active]UNKNOWNno[age ge 18 -> UNKNOWN, status eq active -> TRUE, AND(UNKNOWN,TRUE) -> UNKNOWN]3[4, 40, paused]FALSEno[age ge 18 -> TRUE, status eq active -> FALSE, AND(TRUE,FALSE) -> FALSE]4[5, 25, NULL]UNKNOWNno[age ge 18 -> TRUE, status eq active -> UNKNOWN, AND(TRUE,UNKNOWN) -> UNKNOWN] Boolean filter output rowsidagestatus130active Boolean filter factsfactvalueinputRowCount5outputRowCount1trueRows1falseRows2unknownRows2rootKindandtreeAND(age ge 18, status eq active)rowOrdersource_order

A FALSE child stops the row

If either child is FALSE, the AND result is FALSE.

FALSE child blocks AND\text{FALSE child blocks AND}

Summary

AND is the both-conditions check.

all children TRUE\text{all children TRUE}