classMySqlLoadDataProjector
final class MySqlLoadDataProjector
Projects LOAD DATA input into the regular simulated INSERT/REPLACE pipeline.
Methods§
public function __construct(private TableDefinitionRegistry $registry)Configure the dependencies used by this operation.
Parameters
$registry | TableDefinitionRegistry |
Calls 2
public function project(string $sql, LoadStatement $statement): stringProject for the supplied MySQL input.
Parameters
$sql | string | |
$statement | LoadStatement |
Returns
stringTest cases 18
MySqlLoadDataProjectorTest::testDecodesControlEscapesAndEscapedRecordTerminatorscallsMySqlLoadDataProjectorTest::testDefaultTargetsPreserveValuePositionsAroundGeneratedColumnscallsMySqlLoadDataProjectorTest::testDistinguishesQuotedNullAndDoubledEnclosurescallsMySqlLoadDataProjectorTest::testEmptyExplicitColumnListHasNoTargetColumnscallsMySqlLoadDataProjectorTest::testFieldStateHandlesFirstFieldEnclosuresAndFinalEscapeBoundariescallsMySqlLoadDataProjectorTest::testIgnoreRowsSkipsCompleteRecordsWithoutARequiredPrefixcallsMySqlLoadDataProjectorTest::testNoIgnoreClauseKeepsEveryRecordcallsMySqlLoadDataProjectorTest::testProjectsCsvPrefixesIgnoredRowsUserVariablesAndSetExpressionscallsMySqlLoadDataProjectorTest::testProjectsDefaultTabSeparatedInputAndNullMarkercallsMySqlLoadDataProjectorTest::testProjectsEmptyInputAsAnEmptySelectcallsMySqlLoadDataProjectorTest::testProjectsEverySetTargetcallsMySqlLoadDataProjectorTest::testProjectsReplaceAndMissingFieldsAsDefaultcallsMySqlLoadDataProjectorTest::testRejectsAMissingTargetBeforeReadingTheInputcallsMySqlLoadDataProjectorTest::testRejectsAReadableDirectoryAsANonFileInputcallsMySqlLoadDataProjectorTest::testRejectsGeneratedColumnTargetscallsMySqlLoadDataProjectorTest::testRejectsUnreadableInputBeforeProjectioncallsMySqlLoadDataProjectorTest::testRejectsUnsupportedLoadDataShapescallsMySqlLoadDataProjectorTest::testSetVariableSubstitutionIsForwardOnlyAndPreservesSystemVariablescalls
Called from 1
Calls 22
- function-call
is_stringline 39 - new UnsupportedSqlException line 40
- method-call TableDefinitionRegistry::get() line 45
- new UnknownSchemaException line 47
- method-call InputFile::read() line 56
- new InputFile line 56
- static-call InputFormat::fromStatement() line 58
- method-call ColumnMapping::inputTargets() line 60
- new ColumnMapping line 60
- method-call ColumnMapping::setOperations() line 61
- method-call ColumnMapping::ignoreRows() line 62
- method-call RecordParser::splitRecords() line 63
- new RecordParser line 63
- function-call
array_sliceline 64 - function-call
str_starts_withline 68 - function-call
substrline 72 - function-call
strlenline 72 - method-call RecordParser::parseFields() line 74
- method-call RowProjector::projectRow() line 75
- new RowProjector line 75
- method-call InsertQuery::buildInsertSql() line 78
- new InsertQuery line 78
Private surface 3§
Implementation details, listed for orientation only.
private MySqlIdentifierQuoter $quoterprivate MySqlValueRenderer $valueRendererprivate TableDefinitionRegistry $registryTest cases 20§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 18
MySqlLoadDataProjectorTest::testDecodesControlEscapesAndEscapedRecordTerminatorscallsMySqlLoadDataProjectorTest::testDefaultTargetsPreserveValuePositionsAroundGeneratedColumnscallsMySqlLoadDataProjectorTest::testDistinguishesQuotedNullAndDoubledEnclosurescallsMySqlLoadDataProjectorTest::testEmptyExplicitColumnListHasNoTargetColumnscallsMySqlLoadDataProjectorTest::testFieldStateHandlesFirstFieldEnclosuresAndFinalEscapeBoundariescallsMySqlLoadDataProjectorTest::testIgnoreRowsSkipsCompleteRecordsWithoutARequiredPrefixcallsMySqlLoadDataProjectorTest::testNoIgnoreClauseKeepsEveryRecordcallsMySqlLoadDataProjectorTest::testProjectsCsvPrefixesIgnoredRowsUserVariablesAndSetExpressionscallsMySqlLoadDataProjectorTest::testProjectsDefaultTabSeparatedInputAndNullMarkercallsMySqlLoadDataProjectorTest::testProjectsEmptyInputAsAnEmptySelectcallsMySqlLoadDataProjectorTest::testProjectsEverySetTargetcallsMySqlLoadDataProjectorTest::testProjectsReplaceAndMissingFieldsAsDefaultcallsMySqlLoadDataProjectorTest::testRejectsAMissingTargetBeforeReadingTheInputcallsMySqlLoadDataProjectorTest::testRejectsAReadableDirectoryAsANonFileInputcallsMySqlLoadDataProjectorTest::testRejectsGeneratedColumnTargetscallsMySqlLoadDataProjectorTest::testRejectsUnreadableInputBeforeProjectioncallsMySqlLoadDataProjectorTest::testRejectsUnsupportedLoadDataShapescallsMySqlLoadDataProjectorTest::testSetVariableSubstitutionIsForwardOnlyAndPreservesSystemVariablescalls
Other tests reaching this symbol 2
MySqlSessionFactoryTestcallsMySqlRewriterTestcalls