classMySqlSchemaParser
final class MySqlSchemaParser
implements SchemaParserInterface
Reads MySQL CREATE TABLE statements into table schemas.
Methods§
public function parse(string $createTableSql): TableSchemaParses the supplied declaration into its normalized representation.
Parameters
$createTableSql | string |
Returns
Test cases 62
SchemaParsingBench::benchMySqlcallsCreateTableTarget::__invokecallsMySqlSchemaParserTest::testACreateTableWithNoDefinitionListIsReportedAsHavingNoColumnscallsMySqlSchemaParserTest::testAnUnclosedDefinitionListIsRejectedcallsMySqlSchemaParserTest::testAnUnknownKeywordDoesNotSilentlyDropLaterColumnscallsMySqlSchemaParserTest::testASingleColumnTableIsNotMistakenForATruncatedOnecallsMySqlSchemaParserTest::testATypeTheParserCallsUnrecognisedIsStillReadWhenNothingIsLostcallsMySqlSchemaParserTest::testCommasInsideStringsAndEnumsAreNotCountedAsSeparatorscallsMySqlSchemaParserTest::testDdlTheParserCannotFinishReadingIsRejectedcallsMySqlSchemaParserTest::testParseAllNumericTypescallsMySqlSchemaParserTest::testParseAllStringTypescallsMySqlSchemaParserTest::testParseAutoIncrementWithoutPrimaryKeyInDefinitioncallsMySqlSchemaParserTest::testParseAutoIncrementWithPrimaryKeycallsMySqlSchemaParserTest::testParseBacktickedColumnNamescallsMySqlSchemaParserTest::testParseBacktickedColumnNamesStrippedcallsMySqlSchemaParserTest::testParseBacktickedPrimaryKeyColumnsStrippedcallsMySqlSchemaParserTest::testParseBacktickedTableNameStrippedcallsMySqlSchemaParserTest::testParseBitDefaultLengthcallsMySqlSchemaParserTest::testParseBitTypeIsBitcallsMySqlSchemaParserTest::testParseBitWithoutLengthcallsMySqlSchemaParserTest::testParseCompositePrimaryKeyWithBacktickscallsMySqlSchemaParserTest::testParseConstraintBeforeColumncallsMySqlSchemaParserTest::testParseDecimalAllVariantscallsMySqlSchemaParserTest::testParseDecimalWithoutParameterscallsMySqlSchemaParserTest::testParseDecimalWithPrecisionOnlycallsMySqlSchemaParserTest::testParseDecWithPrecisionOnlycallsMySqlSchemaParserTest::testParseDefaultBooleanFalseValuecallsMySqlSchemaParserTest::testParseDefaultBooleanTrueValuecallsMySqlSchemaParserTest::testParseDefaultFloatValuecallsMySqlSchemaParserTest::testParseDefaultIntegerValuecallsMySqlSchemaParserTest::testParseDefaultNonStringValuecallsMySqlSchemaParserTest::testParseDefaultNullValuecallsMySqlSchemaParserTest::testParseDefaultStringValuecallsMySqlSchemaParserTest::testParseDefaultStringWithQuotescallsMySqlSchemaParserTest::testParseDefaultWithNoDefaultReturnsNullcallsMySqlSchemaParserTest::testParseEnumOrSetExtractsValuescallsMySqlSchemaParserTest::testParseEnumValuescallsMySqlSchemaParserTest::testParseFixedWithPrecisionOnlycallsMySqlSchemaParserTest::testParseGeneratedColumncallsMySqlSchemaParserTest::testParseLowercaseDefaultFalsecallsMySqlSchemaParserTest::testParseLowercaseDefaultNullcallsMySqlSchemaParserTest::testParseLowercaseDefaultTruecallsMySqlSchemaParserTest::testParseLowercaseTypeNamecallsMySqlSchemaParserTest::testParseMultipleConstraintsBetweenColumnscallsMySqlSchemaParserTest::testParseNoDefaultReturnsNullcallsMySqlSchemaParserTest::testParseNonAutoIncrementColumncallsMySqlSchemaParserTest::testParseNonEnumTypeHasNullEnumValuescallsMySqlSchemaParserTest::testParseNonGeneratedColumncallsMySqlSchemaParserTest::testParseNonUnsignedColumncallsMySqlSchemaParserTest::testParseNullableDefaultscallsMySqlSchemaParserTest::testParseNumericWithPrecisionOnlycallsMySqlSchemaParserTest::testParsePartitionedCreateAsValuesReadsTheExplicitColumncallsMySqlSchemaParserTest::testParsePrimaryKeyColumnDefinitionLevelcallsMySqlSchemaParserTest::testParseSetValuescallsMySqlSchemaParserTest::testParseSimpleTablecallsMySqlSchemaParserTest::testParseTableLevelPrimaryKeyMakesColumnsNonNullablecallsMySqlSchemaParserTest::testParseUnsignedInColumnOptionscallsMySqlSchemaParserTest::testParseUnsignedInTypeOptionscallsMySqlSchemaParserTest::testTableConstraintsAndOptionsDoNotLookLikeLostColumnscallsMySqlSchemaParserTest::testThrowsOnEmptyInputcallsMySqlSchemaParserTest::testThrowsOnNonCreateTableStatementcallsMySqlSchemaParserTest::testTruncationIsFoundEvenAfterAColumnWithItsOwnBracketscalls
Called from 2
Calls 12
- new
Parserline 25 - method-call TableDefinitionInput::withoutPartitioning() line 25
- new TableDefinitionInput line 25
- new InvalidSqlException line 28
- new ExpectedCreateTableException line 33
- method-call DefinitionIntegrity::assertNothingWasLost() line 36
- new DefinitionIntegrity line 36
- method-call TableDefinition::extractTableName() line 38
- new TableDefinition line 38
- method-call TableDefinition::extractColumns() line 39
- method-call TableDefinition::extractPrimaryKeys() line 40
- new TableSchema line 42
Test cases 79§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 61
MySqlSchemaParserTest::testACreateTableWithNoDefinitionListIsReportedAsHavingNoColumnscallsMySqlSchemaParserTest::testAnUnclosedDefinitionListIsRejectedcallsMySqlSchemaParserTest::testAnUnknownKeywordDoesNotSilentlyDropLaterColumnscallsMySqlSchemaParserTest::testASingleColumnTableIsNotMistakenForATruncatedOnecallsMySqlSchemaParserTest::testATypeTheParserCallsUnrecognisedIsStillReadWhenNothingIsLostcallsMySqlSchemaParserTest::testCommasInsideStringsAndEnumsAreNotCountedAsSeparatorscallsMySqlSchemaParserTest::testDdlTheParserCannotFinishReadingIsRejectedcallsMySqlSchemaParserTest::testParseAllNumericTypescallsMySqlSchemaParserTest::testParseAllStringTypescallsMySqlSchemaParserTest::testParseAutoIncrementWithoutPrimaryKeyInDefinitioncallsMySqlSchemaParserTest::testParseAutoIncrementWithPrimaryKeycallsMySqlSchemaParserTest::testParseBacktickedColumnNamescallsMySqlSchemaParserTest::testParseBacktickedColumnNamesStrippedcallsMySqlSchemaParserTest::testParseBacktickedPrimaryKeyColumnsStrippedcallsMySqlSchemaParserTest::testParseBacktickedTableNameStrippedcallsMySqlSchemaParserTest::testParseBitDefaultLengthcallsMySqlSchemaParserTest::testParseBitTypeIsBitcallsMySqlSchemaParserTest::testParseBitWithoutLengthcallsMySqlSchemaParserTest::testParseCompositePrimaryKeyWithBacktickscallsMySqlSchemaParserTest::testParseConstraintBeforeColumncallsMySqlSchemaParserTest::testParseDecimalAllVariantscallsMySqlSchemaParserTest::testParseDecimalWithoutParameterscallsMySqlSchemaParserTest::testParseDecimalWithPrecisionOnlycallsMySqlSchemaParserTest::testParseDecWithPrecisionOnlycallsMySqlSchemaParserTest::testParseDefaultBooleanFalseValuecallsMySqlSchemaParserTest::testParseDefaultBooleanTrueValuecallsMySqlSchemaParserTest::testParseDefaultFloatValuecallsMySqlSchemaParserTest::testParseDefaultIntegerValuecallsMySqlSchemaParserTest::testParseDefaultNonStringValuecallsMySqlSchemaParserTest::testParseDefaultNullValuecallsMySqlSchemaParserTest::testParseDefaultStringValuecallsMySqlSchemaParserTest::testParseDefaultStringWithQuotescallsMySqlSchemaParserTest::testParseDefaultWithNoDefaultReturnsNullcallsMySqlSchemaParserTest::testParseEnumOrSetExtractsValuescallsMySqlSchemaParserTest::testParseEnumValuescallsMySqlSchemaParserTest::testParseFixedWithPrecisionOnlycallsMySqlSchemaParserTest::testParseGeneratedColumncallsMySqlSchemaParserTest::testParseLowercaseDefaultFalsecallsMySqlSchemaParserTest::testParseLowercaseDefaultNullcallsMySqlSchemaParserTest::testParseLowercaseDefaultTruecallsMySqlSchemaParserTest::testParseLowercaseTypeNamecallsMySqlSchemaParserTest::testParseMultipleConstraintsBetweenColumnscallsMySqlSchemaParserTest::testParseNoDefaultReturnsNullcallsMySqlSchemaParserTest::testParseNonAutoIncrementColumncallsMySqlSchemaParserTest::testParseNonEnumTypeHasNullEnumValuescallsMySqlSchemaParserTest::testParseNonGeneratedColumncallsMySqlSchemaParserTest::testParseNonUnsignedColumncallsMySqlSchemaParserTest::testParseNullableDefaultscallsMySqlSchemaParserTest::testParseNumericWithPrecisionOnlycallsMySqlSchemaParserTest::testParsePartitionedCreateAsValuesReadsTheExplicitColumncallsMySqlSchemaParserTest::testParsePrimaryKeyColumnDefinitionLevelcallsMySqlSchemaParserTest::testParseSetValuescallsMySqlSchemaParserTest::testParseSimpleTablecallsMySqlSchemaParserTest::testParseTableLevelPrimaryKeyMakesColumnsNonNullablecallsMySqlSchemaParserTest::testParseUnsignedInColumnOptionscallsMySqlSchemaParserTest::testParseUnsignedInTypeOptionscallsMySqlSchemaParserTest::testTableConstraintsAndOptionsDoNotLookLikeLostColumnscallsMySqlSchemaParserTest::testThrowsOnEmptyInputcallsMySqlSchemaParserTest::testThrowsOnNonCreateTableStatementcallsMySqlSchemaParserTest::testTruncationIsFoundEvenAfterAColumnWithItsOwnBracketscallsMySqlSchemaParserTestcalls
Other tests reaching this symbol 18
SchemaParsingBench::benchMySqlcallsCreateTableTarget::__invokecallsPostgreSqlEndToEndTestcallsSqliteIntegrationTestcallsDatabaseFixtureProviderTestcallsFileFixtureProviderTestcallsRowMaterializerTestcallsPlanGeneratorTestcallsPlanSchemaValidatorTestcallsRowGenerationTestcallsFixtureGeneratorTest::testConfigureWithCustomDependenciescallsFixtureGeneratorTest::testGetSchemaParsercallsFixtureProviderTest::testFixtureWithCustomSchemaParsercallsConstructorHydrationTestcallsPropertyHydrationTestcallsMySqlSchemaFetcherTestcallsPlatformFactoryTest::testCreateSchemaParserForMysqlcallsSqlSchemaProviderTestcalls
Relations§
Instantiated in 4
- new SqlFixture\FixtureGenerator::__construct() packages/sql-fixture/src/FixtureGenerator.php:36
- new SqlFixture\Platform\MySql\MySqlSchemaFetcher::__construct() packages/sql-fixture/src/Platform/MySql/MySqlSchemaFetcher.php:23
- new SqlFixture\Platform\PlatformFactory::createSchemaParser() packages/sql-fixture/src/Platform/PlatformFactory.php:49
- new SqlFixture\Schema\MySqlSchemaParser::__construct() packages/sql-fixture/src/Schema/MySqlSchemaParser.php:21
Method calls 2
Type declarations 3
- type SqlFixture\Platform\MySql\MySqlSchemaFetcher packages/sql-fixture/src/Platform/MySql/MySqlSchemaFetcher.php:16
- type SqlFixture\Platform\MySql\MySqlSchemaFetcher packages/sql-fixture/src/Platform/MySql/MySqlSchemaFetcher.php:21
- type SqlFixture\Schema\MySqlSchemaParser packages/sql-fixture/src/Schema/MySqlSchemaParser.php:14