WithStatement.php
PHP
Path: src/Parsing/SQL/AST/WithStatement.php
<?php
namespace mini\Parsing\SQL\AST;
/**
* WITH clause wrapper (Common Table Expressions)
*
* Supports:
* - WITH cte AS (SELECT ...) SELECT ...
* - WITH RECURSIVE cte AS (...) SELECT ...
* - WITH cte1 AS (...), cte2 AS (...) SELECT ...
*/
class WithStatement extends ASTNode
{
public string $type = 'WITH_STATEMENT';
/**
* @param array $ctes Array of CTE definitions: ['name' => string, 'columns' => ?array, 'query' => ASTNode]
* @param bool $recursive Whether WITH RECURSIVE was specified
* @param ASTNode $query The main query (SelectStatement or UnionNode)
*/
public function __construct(
public array $ctes,
public bool $recursive,
public ASTNode $query
) {}
}