Parentheses are explicit authored group nodes.

highlighted = computed this step

Parentheses are an expression tree

Parentheses are modeled as an explicit authored group node.

explicit tree shape\text{explicit tree shape}

Read grouped rows

The grouped expression has 2 TRUE rows.

group TRUE rows=2\text{group TRUE rows}=2

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.

Parentheses are an expression tree: base rowsidagestatus130active217active3NULLactive440paused525NULL Boolean predicate evaluationsourcevaluestruthkepttrace0[1, 30, active]TRUEyes[age ge 18 -> TRUE, status eq active -> TRUE, status eq paused -> FALSE, OR(TRUE,FALSE) -> TRUE, AND(TRUE,TRUE) -> TRUE, GROUP -> TRUE]1[2, 17, active]FALSEno[age ge 18 -> FALSE, status eq active -> TRUE, status eq paused -> FALSE, OR(TRUE,FALSE) -> TRUE, AND(FALSE,TRUE) -> FALSE, GROUP -> FALSE]2[3, NULL, active]UNKNOWNno[age ge 18 -> UNKNOWN, status eq active -> TRUE, status eq paused -> FALSE, OR(TRUE,FALSE) -> TRUE, AND(UNKNOWN,TRUE) -> UNKNOWN, GROUP -> UNKNOWN]3[4, 40, paused]TRUEyes[age ge 18 -> TRUE, status eq active -> FALSE, status eq paused -> TRUE, OR(FALSE,TRUE) -> TRUE, AND(TRUE,TRUE) -> TRUE, GROUP -> TRUE]4[5, 25, NULL]UNKNOWNno[age ge 18 -> TRUE, status eq active -> UNKNOWN, status eq paused -> UNKNOWN, OR(UNKNOWN,UNKNOWN) -> UNKNOWN, AND(TRUE,UNKNOWN) -> UNKNOWN, GROUP -> UNKNOWN] Boolean filter output rowsidagestatus130active440paused Boolean filter factsfactvalueinputRowCount5outputRowCount2trueRows2falseRows1unknownRows2rootKindgrouptreeGROUP(AND(age ge 18, OR(status eq active, status eq paused)))rowOrdersource_order

No hidden precedence

The compiler follows the authored tree instead of guessing a different grouping.

authored grouping\text{authored grouping}

Summary

Grouping is data in the source, and the output is recomputed from it.

tree drives result\text{tree drives result}