final class PlanValidation
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.

Validates relation bindings and orders tables by dependency.

Methods§

public function rejectColumnsBoundTwice(list<Relation> $relations): void

A column set references one parent, so binding it twice is a mistake whether the two relations agree or not.

Parameters

$relationslist<Relation>
Test cases 1
Called from 1
Calls 1
public function rejectUnboundedSelfReferences(list<Relation> $relations): void
public function sortByDependency(list<string> $tables, list<Relation> $relations): list<string>

Order the tables so every parent comes before its children.

Self references are left out of the ordering: a table cannot precede itself, and an optional one terminates on its own.

Parameters

$tableslist<string>
$relationslist<Relation>

Returns

list<string>
Test cases 3
Called from 1
Calls 2
public function waitsForAny(
    string $table,
    list<Relation> $relations,
    list<string> $pending,
): bool

Parameters

$tablestring
$relationslist<Relation>
$pendinglist<string>

Returns

bool
Test cases 1
Called from 1
Calls 1

Test cases 34§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 4
Other tests reaching this symbol 30

Relations§

Instantiated in 3
Method calls 3