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 61
SchemaParsingBench::benchMySqlcallsMySqlSchemaParserTest::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 1
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 77§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 60
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::testTruncationIsFoundEvenAfterAColumnWithItsOwnBracketscalls
Other tests reaching this symbol 17
SchemaParsingBench::benchMySqlcallsPostgreSqlEndToEndTestcallsSqliteIntegrationTestcallsRowMaterializerTestcallsPlanGeneratorTestcallsPlanSchemaValidatorTestcallsRowGenerationTestcallsConstructorHydrationTestcallsPropertyHydrationTestcallsMySqlSchemaFetcherTestcallsDatabaseFixtureProviderTestcallsFileFixtureProviderTestcallsFixtureGeneratorTest::testConfigureWithCustomDependenciescallsFixtureGeneratorTest::testGetSchemaParsercallsFixtureProviderTest::testFixtureWithCustomSchemaParsercallsPlatformFactoryTest::testCreateSchemaParserForMysqlcallsSqlSchemaProviderTestcalls
Relations§
Instantiated in 3
- new SqlFixture\Platform\MySql\MySqlSchemaFetcher::__construct() packages/sql-fixture/src/Platform/MySql/MySqlSchemaFetcher.php:23
- new SqlFixture\Provider\FixtureGenerator::__construct() packages/sql-fixture/src/Provider/FixtureGenerator.php:37
- new SqlFixture\Provider\PlatformFactory::createSchemaParser() packages/sql-fixture/src/Provider/PlatformFactory.php:65