classBuilderQueries
final class BuilderQueries
implements QueryModelInterface
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Derives receiver state and arguments together, then compiles at the existing sink.
Methods§
public function __construct(
private ProgramIndex $index,
private Dialects $dialects = new \SqlCatalog\Core\Sql\Dialects(),
)Configures the source metadata and SQL grammar used by this model.
Parameters
$index | ProgramIndex | |
$dialects | Dialects |
public function inputs(CallLike $call): list<Expr>Parameters
$call | CallLike |
Returns
list<Expr> The receiver and arguments must be derived together.public function statements(CallLike $call, list<Domain> $values): list<QueryOutput>Parameters
$call | CallLike | |
$values | list<Domain> | Values derived by the core, without losing branch correspondence. |
Returns
list<QueryOutput> The SQL compiled by this extension for each receiver alternative.Calls 14
- method-call SinkFinder::nameOf() line 51
- new SinkFinder line 51
- function-call
array_shiftline 52 - static-call Domain::unknown() line 52
- static-call QueryState::from() line 55
- method-call QueryState::reject() line 55
- new QueryState line 55
- method-call BuilderCalls::positional() line 56
- new BuilderCalls line 56
- function-call
array_valuesline 56 - method-call
CallLike::getArgs()line 56 - method-call BuilderQueries::outputs() line 59
- function-call
strtolowerline 59 - new QueryOutput line 60
public function outputs(
QueryState $state,
string $method,
list<Domain> $arguments,
): list<array{Domain, Domain}>Parameters
$state | QueryState | |
$method | string | |
$arguments | list<Domain> |
Returns
Called from 1
Calls 12
- method-call BuilderQueries::prepare() line 73
- new Grammar line 74
- method-call Dialects::find() line 74
- static-call Domain::unknown() line 76
- method-call SelectCompiler::total() line 80
- new SelectCompiler line 80
- method-call BuilderQueries::dispatch() line 82
- function-call
in_arrayline 83 - class-const SelectCompiler::READS() line 83
- static-call Domain::opaque() line 84
- static-call TypeShape::of() line 84
- class-const Origin::Call() line 84
public function compile(
QueryState $state,
string $method,
list<Domain> $arguments,
): array{Domain, Domain}Parameters
$state | QueryState | |
$method | string | |
$arguments | list<Domain> |
Test cases 4
BuilderQueriesTest::testCompileAppliesSoftDeletesOnlyAtExecutioncallsBuilderQueriesTest::testCompileGroupsDisjunctionsBeforeApplyingSoftDeletescallsBuilderQueriesTest::testCompileKeepsUnknownEffectsAndMissingDialectsOpencallsBuilderQueriesTest::testCompileRequiresADialectEvenWhenEveryIdentifierIsRawcalls
Calls 5
- method-call BuilderQueries::prepare() line 96
- static-call Domain::unknown() line 98
- method-call BuilderQueries::dispatch() line 101
- new Grammar line 101
- method-call Dialects::find() line 101
public function prepare(QueryState $state, string $method): QueryStateThe state with the dialect checked, global scopes applied and unmodelled writes marked.
Parameters
$state | QueryState | |
$method | string |
Returns
Test cases 1
Called from 2
Calls 8
- method-call Dialects::find() line 109
- method-call QueryState::string() line 109
- new Grammar line 112
- method-call Predicates::groupDisjunction() line 114
- new Predicates line 114
- static-call Domain::literal() line 115
- method-call Predicates::nulls() line 116
- function-call
in_arrayline 121
public function dispatch(
QueryState $state,
string $method,
list<Domain> $arguments,
Grammar $grammar,
): array{Domain, Domain}Parameters
$state | QueryState | |
$method | string | |
$arguments | list<Domain> | |
$grammar | Grammar |
Test cases 1
Called from 2
Calls 6
- function-call
in_arrayline 134 - class-const SelectCompiler::READS() line 134
- method-call SelectCompiler::compile() line 135
- new SelectCompiler line 135
- method-call WriteCompiler::compile() line 138
- new WriteCompiler line 138
Private surface 2§
Implementation details, listed for orientation only.
private ProgramIndex $indexprivate Dialects $dialects = new \SqlCatalog\Core\Sql\Dialects()Test cases 14§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 9
BuilderQueriesTest::testCompileAppliesSoftDeletesOnlyAtExecutioncallsBuilderQueriesTest::testCompileGroupsDisjunctionsBeforeApplyingSoftDeletescallsBuilderQueriesTest::testCompileKeepsUnknownEffectsAndMissingDialectsOpencallsBuilderQueriesTest::testCompileRequiresADialectEvenWhenEveryIdentifierIsRawcallsBuilderQueriesTest::testDispatchRoutesReadsAndWritesToTheirCompilerscallsBuilderQueriesTest::testInputsUsesTheReceiverOrModelFactoryBeforeTheArgumentscallsBuilderQueriesTest::testOutputsListsEveryStatementAPaginatedOrEagerReadIssuescallsBuilderQueriesTest::testPrepareAppliesScopesAndMarksUnmodelledWritescallsBuilderQueriesTest::testStatementsCompilesReceiverAndBindingsDerivedFromTheSameBranchcalls
Other tests reaching this symbol 5
CallbackEffectsTestcallsCallbackModelTestcallsCallModelTestcallsLaravelExtensionTestcallsAnalyzerTestcalls