WindowFunctionNode.php
PHP
Path: src/Parsing/SQL/AST/WindowFunctionNode.php
<?php
namespace mini\Parsing\SQL\AST;
/**
* Window function node - func() OVER (...)
*
* SQL:2003 window functions with OVER clause:
* - ROW_NUMBER() OVER (ORDER BY col)
* - RANK() OVER (PARTITION BY cat ORDER BY col DESC)
* - DENSE_RANK(), etc.
*/
class WindowFunctionNode extends ASTNode implements ValueNodeInterface
{
public string $type = 'WINDOW_FUNCTION';
/**
* @param FunctionCallNode $function The window function (ROW_NUMBER, RANK, etc.)
* @param ASTNode[] $partitionBy PARTITION BY expressions (optional)
* @param array $orderBy ORDER BY clauses [{expr: ASTNode, direction: 'ASC'|'DESC'}, ...]
*/
public function __construct(
public FunctionCallNode $function,
public array $partitionBy = [],
public array $orderBy = []
) {}
}