classShadowCteRenderer
final class ShadowCteRenderer
Restricted visibility: declared "@visibility ZtdQuery\Platform\Sqlite". Code outside that scope must not name this declaration.
Renders typed fixture rows as a named shadow-table CTE.
Methods§
public function __construct(
private CastRenderer $castRenderer,
private SqliteGeneratedColumnProjector $generatedColumnProjector,
private IdentifierQuoter $quoter,
private ValueRenderer $valueRenderer,
)Binds the collaborators used by this operation.
Parameters
$castRenderer | CastRenderer | |
$generatedColumnProjector | SqliteGeneratedColumnProjector | |
$quoter | IdentifierQuoter | |
$valueRenderer | ValueRenderer |
public function generateCte<TValue>(
string $tableName,
array<int, array<string, TValue>> $rows,
array<int, string> $columns,
array<string, ColumnDeclaration> $columnTypes,
array<string, string> $generatedExpressions,
): stringGenerate a CTE fragment for a single table.
Parameters
$tableName | string | |
$rows | array<int, array<string, TValue>> | |
$columns | array<int, string> | |
$columnTypes | array<string, ColumnDeclaration> | |
$generatedExpressions | array<string, string> |
Returns
stringThrows
RuntimeExceptionTest cases 2
Called from 1
Calls 7
- new
RuntimeExceptionline 52 - function-call
array_keysline 54 - method-call ShadowCteRenderer::renderRow() line 57
- method-call ShadowCteRenderer::renderEmptyTable() line 60
- function-call
implodeline 61 - method-call ShadowCteRenderer::wrapCte() line 63
- method-call IdentifierQuoter::quote() line 63
public function wrapCte(
string $quotedTable,
string $baseSql,
array<int, string> $columns,
array<string, string> $generatedExpressions,
): stringParameters
$quotedTable | string | |
$baseSql | string | |
$columns | array<int, string> | |
$generatedExpressions | array<string, string> |
Returns
stringTest cases 1
Called from 1
Calls 1
- method-call SqliteGeneratedColumnProjector::project() line 76
public function renderFallbackNullCast(): stringRenders typed fixture rows as a named shadow-table CTE.
Returns
stringTest cases 1
Called from 1
Calls 3
- method-call CastRenderer::renderNullCast() line 86
- new ColumnDeclaration line 87
- class-const ColumnTypeFamily::TEXT() line 87
public function renderRow<TValue>(
array<string, TValue> $row,
array<int, string> $columns,
array<string, ColumnDeclaration> $columnTypes,
): stringRenders fixture values in the declared column order.
Parameters
$row | array<string, TValue> | |
$columns | array<int, string> | |
$columnTypes | array<string, ColumnDeclaration> |
Returns
stringTest cases 1
Called from 1
Calls 3
- method-call ValueRenderer::renderValue() line 102
- method-call IdentifierQuoter::quote() line 103
- function-call
implodeline 106
public function renderEmptyTable(
array<int, string> $columns,
array<string, ColumnDeclaration> $columnTypes,
): stringRetains the declared column types even when a table has no fixture rows.
Parameters
$columns | array<int, string> | |
$columnTypes | array<string, ColumnDeclaration> |
Returns
stringTest cases 1
Called from 1
Calls 4
- method-call CastRenderer::renderNullCast() line 120
- method-call ShadowCteRenderer::renderFallbackNullCast() line 120
- method-call IdentifierQuoter::quote() line 121
- function-call
implodeline 124
Private surface 4§
Implementation details, listed for orientation only.
private CastRenderer $castRendererprivate SqliteGeneratedColumnProjector $generatedColumnProjectorprivate IdentifierQuoter $quoterprivate ValueRenderer $valueRendererTest cases 14§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 6
ShadowCteRendererTest::testGenerateCteRejectsEmptyUnknownSchemascallsShadowCteRendererTest::testGenerateCteRendersTypedFixturesExecutableBySqlitecallsShadowCteRendererTest::testRenderEmptyTableRetainsTypedZeroRowProjectioncallsShadowCteRendererTest::testRenderFallbackNullCastUsesTextcallsShadowCteRendererTest::testRenderRowPreservesColumnOrderAndMissingValuescallsShadowCteRendererTest::testWrapCteQuotesTheProvidedTableAndProjectsGeneratedColumnscalls
Other tests reaching this symbol 8
SqliteRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertTransformerTestcallsSelectTransformerTestcallsSqliteTransformerTestcallsUpdateTransformerTestcallsSqliteSessionFactoryTestcalls