ctes property

List<MssqlTypedCte> ctes
final

Common table expressions this query's statement has to declare.

SQL Server allows WITH only at the start of a statement, so a recursive walk cannot be nested inside IN (…). Carrying the expression on the state instead lets a generated descendantsOf filter by the walk's keys and still be an ordinary query — with its scopes, ordering, includes and paging all applied by the same code as every other query — because the terminal that builds the statement is the one that puts the WITH in front of it.

Each expression carries its own MAXRECURSION ceiling.

Implementation

final List<MssqlTypedCte> ctes;