final class SelectTransformer
    implements SqlTransformer
Public API: explicitly declared with @visibility public.

Applies CTE shadowing to SELECT statements for SQLite.

Generates WITH clauses that shadow referenced tables using in-memory data. Uses double-quote identifiers and SQLite-compatible CAST types.

Transform a table-free querydoctest
$transformer = new \ZtdQuery\Platform\Sqlite\Rewrite\Transformer\SelectTransformer();
    $transformer->transform("SELECT 1", []) // => 'SELECT 1'

Methods§

public function __construct(
    ?CastRenderer $castRenderer = null,
    ?IdentifierQuoter $quoter = null,
    ?ValueRenderer $valueRenderer = null,
)
Public API: explicitly declared with @visibility public.

Binds the dependencies used by this operation.

Parameters

$castRenderer?CastRenderer
$quoter?IdentifierQuoter
$valueRenderer?ValueRenderer
Use the SQLite renderers by defaultdoctest
$transformer = new \ZtdQuery\Platform\Sqlite\Rewrite\Transformer\SelectTransformer();
    $transformer->transform("SELECT 1", []) // => 'SELECT 1'
Calls 7
public function transform(string $sql, array $tables): string
Public API: explicitly declared with @visibility public.

{@inheritDoc}

Parameters

$sqlstring
$tablesarray

Returns

string
Read fixture rows through SQLite CTE shadowingdoctest
$tables = ['users' => ['columns' => ['id', 'name'], 'columnTypes' => [], 'rows' => [['id' => 1, 'name' => 'Alice']]]];
    $sql = (new \ZtdQuery\Platform\Sqlite\Rewrite\Transformer\SelectTransformer())->transform('SELECT name FROM users', $tables);
    $pdo = new \PDO('sqlite::memory:');
    $pdo->query($sql)->fetchColumn() // => 'Alice'
Test cases 84
Called from 4
Calls 8

Private surface 7§

Implementation details, listed for orientation only.

private CastRenderer $castRenderer
private IdentifierQuoter $quoter
private ValueRenderer $valueRenderer
private SqliteCteShadowComposer $cteComposer
private SqliteIndexHintStripper $indexHintStripper
private SqliteGeneratedColumnProjector $generatedColumnProjector
private SqliteFullTextSearchRewriter $fullTextSearchRewriter

Test cases 241§

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

Dedicated tests 84
Other tests reaching this symbol 157

Relations§

Instantiated in 1
Method calls 4
Type declarations 8