classGenericExecuteResult
final class GenericExecuteResult
implements ExecuteResult
Generic implementation of ExecuteResult.
This implementation handles all result types:
- Passthrough: signals that original statement should be executed
- Rewritten SELECT: wraps a StatementInterface for fetching
- Simulated WRITE: buffers rows and provides iteration
- Failure: represents execution failure
Type Aliases§
Row = import from TableDefinitionMethods§
public function __construct(
bool $passthrough,
bool $success,
QueryKind $kind,
?StatementInterface $rewrittenStatement = null,
array<int, Row>|null $bufferedRows = null,
?int $rowCountOverride = null,
bool $resultSet = false,
)Binds a result to everything it will answer from.
Every way of building one goes through a named constructor, because what a result is depends on which of them was used.
Parameters
$passthrough | bool | |
$success | bool | |
$kind | QueryKind | |
$rewrittenStatement | ?StatementInterface | |
$bufferedRows | array<int, Row>|null | |
$rowCountOverride | ?int | |
$resultSet | bool |
public static function passthrough(QueryKind $kind = QueryKind::READ): selfCreate a passthrough result (original statement should be executed).
Parameters
$kind | QueryKind |
Returns
selfTest cases 6
ExecuteResultTest::testIsPassthroughSaysWhetherTheOriginalStatementStillHasToRuncallsGenericExecuteResultTest::testIsPassthroughIsTrueOnlyWhereTheOriginalStatementStillHasToRuncallsGenericExecuteResultTest::testPassthroughFetchAllReturnsEmptycallsGenericExecuteResultTest::testPassthroughFetchReturnsFalsecallsGenericExecuteResultTest::testPassthroughResultcallsGenericExecuteResultTest::testPassthroughRowCountIsZerocalls
Calls 2
- class-const QueryKind::READ() line 77
- new
selfline 79
public static function failure(QueryKind $kind): selfpublic static function fromStatement(
StatementInterface $statement,
QueryKind $kind = QueryKind::READ,
): selfCreate a result wrapping a rewritten statement (for SELECT queries).
Parameters
$statement | StatementInterface | |
$kind | QueryKind |
Returns
selfTest cases 5
GenericExecuteResultTest::testFetchFromEmptyStatementReturnsFalsecallsGenericExecuteResultTest::testFetchFromStatementcallsGenericExecuteResultTest::testFetchFromStatementReturnsSecondRowOnSubsequentCallcallsGenericExecuteResultTest::testFromStatementcallsGenericExecuteResultTest::testRowCountFromStatementcalls
Called from 1
Calls 2
- class-const QueryKind::READ() line 101
- new
selfline 103
public static function fromBufferedRows(
array<int, Row> $rows,
QueryKind $kind = QueryKind::WRITE_SIMULATED,
?int $affectedRowCount = null,
bool $hasResultSet = false,
): selfCreate a result with buffered rows (for simulated WRITE queries).
Returns
selfTest cases 17
ExecuteResultTest::testFetchAllAnswersEveryRowLeftcallsExecuteResultTest::testFetchAnswersEachRowInTurnAndThenNothingcallsExecuteResultTest::testHasResultSetSaysWhetherThereIsAnythingToFetchcallsExecuteResultTest::testIsPassthroughSaysWhetherTheOriginalStatementStillHasToRuncallsExecuteResultTest::testIsSuccessSaysWhetherTheStatementGotAsFarAsAResultcallsExecuteResultTest::testKindSaysWhatWasRuncallsExecuteResultTest::testRowCountAnswersHowManyRowsTheStatementCameTocallsGenericExecuteResultTest::testBufferedReturningUsesIndependentAffectedCountcallsGenericExecuteResultTest::testFetchAllAfterPartialFetchcallsGenericExecuteResultTest::testFetchAllFromBufferedRowscallsGenericExecuteResultTest::testFetchFromBufferedRowscallsGenericExecuteResultTest::testFromBufferedRowscallsGenericExecuteResultTest::testHasResultSetForWriteIsFalsecallsGenericExecuteResultTest::testIsPassthroughIsTrueOnlyWhereTheOriginalStatementStillHasToRuncallsGenericExecuteResultTest::testIsSuccessIsFalseOnlyForAResultThatFailedcallsGenericExecuteResultTest::testKindAnswersWhatWasRuncallsGenericExecuteResultTest::testResetBuffercalls
Called from 2
Calls 3
- class-const QueryKind::WRITE_SIMULATED() line 118
- new
selfline 122 - function-call
countline 128
public static function fromStatementAndRows(
StatementInterface $statement,
array<int, Row> $rows,
QueryKind $kind = QueryKind::WRITE_SIMULATED,
): selfCreate a result with both a statement and buffered rows.
Parameters
$statement | StatementInterface | |
$rows | array<int, Row> | |
$kind | QueryKind |
Returns
selfTest cases 1
Calls 3
- class-const QueryKind::WRITE_SIMULATED() line 141
- new
selfline 143 - function-call
countline 149
public function isPassthrough(): bool{@inheritDoc}
Returns
boolpublic function isSuccess(): bool{@inheritDoc}
Returns
boolpublic function fetch(): array|falsepublic function fetchAll(): arraypublic function rowCount(): int{@inheritDoc}
Returns
intpublic function hasResultSet(): boolpublic function resetBuffer(): voidReset the buffer index for re-iteration.
Private surface 8§
Implementation details, listed for orientation only.
private bool $passthroughprivate bool $successprivate QueryKind $kindprivate ?StatementInterface $rewrittenStatementprivate ?RowSet $bufferedRowsprivate int $bufferIndex = 0private ?int $rowCountOverrideprivate bool $resultSetTest cases 29§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 21
GenericExecuteResultTest::testBufferedReturningUsesIndependentAffectedCountcallsGenericExecuteResultTest::testFailureResultcallsGenericExecuteResultTest::testFetchAllAfterPartialFetchcallsGenericExecuteResultTest::testFetchAllFromBufferedRowscallsGenericExecuteResultTest::testFetchFromBufferedRowscallsGenericExecuteResultTest::testFetchFromEmptyStatementReturnsFalsecallsGenericExecuteResultTest::testFetchFromStatementcallsGenericExecuteResultTest::testFetchFromStatementReturnsSecondRowOnSubsequentCallcallsGenericExecuteResultTest::testFromBufferedRowscallsGenericExecuteResultTest::testFromStatementcallsGenericExecuteResultTest::testFromStatementAndRowscallsGenericExecuteResultTest::testHasResultSetForWriteIsFalsecallsGenericExecuteResultTest::testIsPassthroughIsTrueOnlyWhereTheOriginalStatementStillHasToRuncallsGenericExecuteResultTest::testIsSuccessIsFalseOnlyForAResultThatFailedcallsGenericExecuteResultTest::testKindAnswersWhatWasRuncallsGenericExecuteResultTest::testPassthroughFetchAllReturnsEmptycallsGenericExecuteResultTest::testPassthroughFetchReturnsFalsecallsGenericExecuteResultTest::testPassthroughResultcallsGenericExecuteResultTest::testPassthroughRowCountIsZerocallsGenericExecuteResultTest::testResetBuffercallsGenericExecuteResultTest::testRowCountFromStatementcalls
Other tests reaching this symbol 8
ExecuteResultTest::testFetchAllAnswersEveryRowLeftcallsExecuteResultTest::testFetchAnswersEachRowInTurnAndThenNothingcallsExecuteResultTest::testHasResultSetSaysWhetherThereIsAnythingToFetchcallsExecuteResultTest::testIsPassthroughSaysWhetherTheOriginalStatementStillHasToRuncallsExecuteResultTest::testIsSuccessSaysWhetherTheStatementGotAsFarAsAResultcallsExecuteResultTest::testKindSaysWhatWasRuncallsExecuteResultTest::testRowCountAnswersHowManyRowsTheStatementCameTocallsSessionTestcalls