Duplicate CTE names fail closed.

highlighted = computed this step

Duplicate CTE names are rejected

A scoped CTE name must point to exactly one result table.

one name only once\text{one name only once}

Read the valid name

The valid example has one CTE name: ActiveStudents.

duplicate name rejected\text{duplicate name rejected}

CTE examples are tiny finite-table transforms; recursive CTEs, materialization claims, optimizer behavior, SQL dialect completeness, and database-product claims are out of scope.

Duplicate CTE names are rejected: base Studentssidnamestatus1Adaactive2Beapaused3Calactive Duplicate CTE names are rejected: CTE ActiveStudentssidstudent1Ada3Cal Duplicate CTE names are rejected: body outputsidstudent1Ada3Cal CTE factsfactvaluebaseTableCount1cteCount1cteNames[ActiveStudents]bodyRowCount2bodyColumnCount2referencedCtes[ActiveStudents]rowOrdersource_orderrecursivenomaterializedClaimnot_modeled

Try the duplicate

A request with two CTEs named X fails before rendering.

fail closed\text{fail closed}

Summary

Failing on duplicate names keeps each reference unambiguous.

unambiguous reference\text{unambiguous reference}