classPostgreSqlSchemaParser
final class PostgreSqlSchemaParser
implements SchemaParserInterface
Regex-based parser for PostgreSQL CREATE TABLE statements.
Handles PostgreSQL-specific features:
- SERIAL/BIGSERIAL/SMALLSERIAL auto-incrementing types
- Schema-qualified names (e.g., public.users)
- PostgreSQL-specific types (UUID, JSONB, BYTEA, INET, TIMESTAMPTZ, etc.)
- Array types (INT[], TEXT[])
- CONSTRAINT syntax
Methods§
public function parse(string $createTableSql): TableSchemaParses the supplied declaration into its normalized representation.
Parameters
$createTableSql | string |
Returns
Test cases 112
SchemaParsingBench::benchPostgreSqlcallsPostgreSqlSchemaParserTest::testParseArrayTypecallsPostgreSqlSchemaParserTest::testParseBigSerialTypecallsPostgreSqlSchemaParserTest::testParseBlockCommentcallsPostgreSqlSchemaParserTest::testParseByteaTypecallsPostgreSqlSchemaParserTest::testParseCharacterVaryingcallsPostgreSqlSchemaParserTest::testParseCharWithLengthcallsPostgreSqlSchemaParserTest::testParseCidrTypecallsPostgreSqlSchemaParserTest::testParseColumnDefinitionTrimsRestcallsPostgreSqlSchemaParserTest::testParseColumnNotAutoIncrementByDefaultcallsPostgreSqlSchemaParserTest::testParseColumnTypescallsPostgreSqlSchemaParserTest::testParseColumnWithEmptyTypecallsPostgreSqlSchemaParserTest::testParseColumnWithNoTypeGetsTextDefaultcallsPostgreSqlSchemaParserTest::testParseColumnWithNoTypeReturnsTextViaExtractTypecallsPostgreSqlSchemaParserTest::testParseCommentscallsPostgreSqlSchemaParserTest::testParseConstraintBeforeColumncallsPostgreSqlSchemaParserTest::testParseDecimalWithPrecisionOnlycallsPostgreSqlSchemaParserTest::testParseDecPrecisionOnlycallsPostgreSqlSchemaParserTest::testParseDefaultBooleancallsPostgreSqlSchemaParserTest::testParseDefaultCurrentDateValuecallsPostgreSqlSchemaParserTest::testParseDefaultCurrentTimestampcallsPostgreSqlSchemaParserTest::testParseDefaultCurrentTimestampNotPartOfLargerWordcallsPostgreSqlSchemaParserTest::testParseDefaultCurrentTimeValuecallsPostgreSqlSchemaParserTest::testParseDefaultExpressionOnlyClosingParencallsPostgreSqlSchemaParserTest::testParseDefaultExpressionParenthesizedcallsPostgreSqlSchemaParserTest::testParseDefaultExpressionWithOnlyOpeningParencallsPostgreSqlSchemaParserTest::testParseDefaultExpressionWrappedInParenscallsPostgreSqlSchemaParserTest::testParseDefaultFalseValuecallsPostgreSqlSchemaParserTest::testParseDefaultFloatValuecallsPostgreSqlSchemaParserTest::testParseDefaultFunctionCallcallsPostgreSqlSchemaParserTest::testParseDefaultFunctionCallPreservedcallsPostgreSqlSchemaParserTest::testParseDefaultIntegercallsPostgreSqlSchemaParserTest::testParseDefaultIntegerValuecallsPostgreSqlSchemaParserTest::testParseDefaultLocaltimestampValuecallsPostgreSqlSchemaParserTest::testParseDefaultLocaltimeValuecallsPostgreSqlSchemaParserTest::testParseDefaultNowcallsPostgreSqlSchemaParserTest::testParseDefaultNullcallsPostgreSqlSchemaParserTest::testParseDefaultNullValueExplicitcallsPostgreSqlSchemaParserTest::testParseDefaultReferencesConstraintcallsPostgreSqlSchemaParserTest::testParseDefaultStringcallsPostgreSqlSchemaParserTest::testParseDefaultStringDoubleQuotescallsPostgreSqlSchemaParserTest::testParseDefaultStringWithConstraintsAftercallsPostgreSqlSchemaParserTest::testParseDefaultStringWithDoubleQuotescallsPostgreSqlSchemaParserTest::testParseDefaultStringWithTrailingConstraintscallsPostgreSqlSchemaParserTest::testParseDefaultTrimsValuecallsPostgreSqlSchemaParserTest::testParseDefaultTypeCastcallsPostgreSqlSchemaParserTest::testParseDefaultTypeCastIsPreservedcallsPostgreSqlSchemaParserTest::testParseDefaultWithGeneratedKeywordcallsPostgreSqlSchemaParserTest::testParseDoublePrecisioncallsPostgreSqlSchemaParserTest::testParseEnumValuesAlwaysNullcallsPostgreSqlSchemaParserTest::testParseExcludeConstraintSkippedcallsPostgreSqlSchemaParserTest::testParseGeneratedColumncallsPostgreSqlSchemaParserTest::testParseIfNotExistscallsPostgreSqlSchemaParserTest::testParseInetTypecallsPostgreSqlSchemaParserTest::testParseInlineCommentcallsPostgreSqlSchemaParserTest::testParseIntegerArrayTypecallsPostgreSqlSchemaParserTest::testParseIntervalTypecallsPostgreSqlSchemaParserTest::testParseIsDecimalTypeCaseInsensitivecallsPostgreSqlSchemaParserTest::testParseIsTableConstraintWithLeadingWhitespacecallsPostgreSqlSchemaParserTest::testParseJsonbTypecallsPostgreSqlSchemaParserTest::testParseLowercaseArrayTypescallsPostgreSqlSchemaParserTest::testParseLowercaseBigserialTypecallsPostgreSqlSchemaParserTest::testParseLowercaseConstraintscallsPostgreSqlSchemaParserTest::testParseLowercaseCreateTablecallsPostgreSqlSchemaParserTest::testParseLowercaseDecimalTypecallsPostgreSqlSchemaParserTest::testParseLowercaseDecTypecallsPostgreSqlSchemaParserTest::testParseLowercaseDefaultValuescallsPostgreSqlSchemaParserTest::testParseLowercaseDefaultWithTrailingConstraintscallsPostgreSqlSchemaParserTest::testParseLowercaseGeneratedColumncallsPostgreSqlSchemaParserTest::testParseLowercaseIfNotExistscallsPostgreSqlSchemaParserTest::testParseLowercaseMultiWordTypescallsPostgreSqlSchemaParserTest::testParseLowercaseNumericTypecallsPostgreSqlSchemaParserTest::testParseLowercaseSerialTypecallsPostgreSqlSchemaParserTest::testParseLowercaseSmallserialTypecallsPostgreSqlSchemaParserTest::testParseLowercaseTablePrimaryKeycallsPostgreSqlSchemaParserTest::testParseMacaddrTypecallsPostgreSqlSchemaParserTest::testParseMixedCaseKeywordscallsPostgreSqlSchemaParserTest::testParseMoneyTypecallsPostgreSqlSchemaParserTest::testParseMultilineWithWhitespacecallsPostgreSqlSchemaParserTest::testParseMultipleConstraintsBetweenColumnscallsPostgreSqlSchemaParserTest::testParseMultipleSerialColumnscallsPostgreSqlSchemaParserTest::testParseNonAutoIncrementColumncallsPostgreSqlSchemaParserTest::testParseNonGeneratedColumncallsPostgreSqlSchemaParserTest::testParseNoParenthesescallsPostgreSqlSchemaParserTest::testParseNormalizeSqlRemovesBlockCommentscallsPostgreSqlSchemaParserTest::testParseNormalizeSqlTrimsWhitespacecallsPostgreSqlSchemaParserTest::testParseNotNullConstraintcallsPostgreSqlSchemaParserTest::testParseNumericWithPrecisionAndScalecallsPostgreSqlSchemaParserTest::testParseNumericWithPrecisionOnlycallsPostgreSqlSchemaParserTest::testParseParensEqualStartReturnsNullcallsPostgreSqlSchemaParserTest::testParsePrimaryKeycallsPostgreSqlSchemaParserTest::testParseQuotedPrimaryKeyColumnscallsPostgreSqlSchemaParserTest::testParseQuotedTableNamecallsPostgreSqlSchemaParserTest::testParseSchemaQualifiedTableNamecallsPostgreSqlSchemaParserTest::testParseSerialTypecallsPostgreSqlSchemaParserTest::testParseSerialWithPrecisioncallsPostgreSqlSchemaParserTest::testParseSimpleTablecallsPostgreSqlSchemaParserTest::testParseSkipsTableConstraintscallsPostgreSqlSchemaParserTest::testParseSmallSerialTypecallsPostgreSqlSchemaParserTest::testParseTableLevelPrimaryKeycallsPostgreSqlSchemaParserTest::testParseTimestampWithoutTimeZonecallsPostgreSqlSchemaParserTest::testParseTimestampWithTimeZonecallsPostgreSqlSchemaParserTest::testParseTimeWithoutTimeZonecallsPostgreSqlSchemaParserTest::testParseTimeWithTimeZonecallsPostgreSqlSchemaParserTest::testParseTrimsDefinitionsInSplitColumnDefinitionscallsPostgreSqlSchemaParserTest::testParseUnsignedAlwaysFalsecallsPostgreSqlSchemaParserTest::testParseUuidTypecallsPostgreSqlSchemaParserTest::testParseVarcharWithLengthcallsPostgreSqlSchemaParserTest::testParseWithLeadingTrailingWhitespacecallsPostgreSqlSchemaParserTest::testParseXmlTypecallsPostgreSqlSchemaParserTest::testThrowsExceptionForEmptyTablecallsPostgreSqlSchemaParserTest::testThrowsExceptionForInvalidSqlcalls
Called from 1
Calls 10
- method-call TableSyntax::normalizeSql() line 29
- new TableSyntax line 29
- method-call TableSyntax::extractTableName() line 31
- new InvalidSqlException line 33
- method-call TableSyntax::extractColumnsBlock() line 36
- new MissingColumnDefinitionsException line 38
- method-call TableSyntax::extractTablePrimaryKeys() line 41
- method-call DefinitionList::parseColumns() line 42
- new DefinitionList line 42
- new TableSchema line 48
Test cases 120§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 111
PostgreSqlSchemaParserTest::testParseArrayTypecallsPostgreSqlSchemaParserTest::testParseBigSerialTypecallsPostgreSqlSchemaParserTest::testParseBlockCommentcallsPostgreSqlSchemaParserTest::testParseByteaTypecallsPostgreSqlSchemaParserTest::testParseCharacterVaryingcallsPostgreSqlSchemaParserTest::testParseCharWithLengthcallsPostgreSqlSchemaParserTest::testParseCidrTypecallsPostgreSqlSchemaParserTest::testParseColumnDefinitionTrimsRestcallsPostgreSqlSchemaParserTest::testParseColumnNotAutoIncrementByDefaultcallsPostgreSqlSchemaParserTest::testParseColumnTypescallsPostgreSqlSchemaParserTest::testParseColumnWithEmptyTypecallsPostgreSqlSchemaParserTest::testParseColumnWithNoTypeGetsTextDefaultcallsPostgreSqlSchemaParserTest::testParseColumnWithNoTypeReturnsTextViaExtractTypecallsPostgreSqlSchemaParserTest::testParseCommentscallsPostgreSqlSchemaParserTest::testParseConstraintBeforeColumncallsPostgreSqlSchemaParserTest::testParseDecimalWithPrecisionOnlycallsPostgreSqlSchemaParserTest::testParseDecPrecisionOnlycallsPostgreSqlSchemaParserTest::testParseDefaultBooleancallsPostgreSqlSchemaParserTest::testParseDefaultCurrentDateValuecallsPostgreSqlSchemaParserTest::testParseDefaultCurrentTimestampcallsPostgreSqlSchemaParserTest::testParseDefaultCurrentTimestampNotPartOfLargerWordcallsPostgreSqlSchemaParserTest::testParseDefaultCurrentTimeValuecallsPostgreSqlSchemaParserTest::testParseDefaultExpressionOnlyClosingParencallsPostgreSqlSchemaParserTest::testParseDefaultExpressionParenthesizedcallsPostgreSqlSchemaParserTest::testParseDefaultExpressionWithOnlyOpeningParencallsPostgreSqlSchemaParserTest::testParseDefaultExpressionWrappedInParenscallsPostgreSqlSchemaParserTest::testParseDefaultFalseValuecallsPostgreSqlSchemaParserTest::testParseDefaultFloatValuecallsPostgreSqlSchemaParserTest::testParseDefaultFunctionCallcallsPostgreSqlSchemaParserTest::testParseDefaultFunctionCallPreservedcallsPostgreSqlSchemaParserTest::testParseDefaultIntegercallsPostgreSqlSchemaParserTest::testParseDefaultIntegerValuecallsPostgreSqlSchemaParserTest::testParseDefaultLocaltimestampValuecallsPostgreSqlSchemaParserTest::testParseDefaultLocaltimeValuecallsPostgreSqlSchemaParserTest::testParseDefaultNowcallsPostgreSqlSchemaParserTest::testParseDefaultNullcallsPostgreSqlSchemaParserTest::testParseDefaultNullValueExplicitcallsPostgreSqlSchemaParserTest::testParseDefaultReferencesConstraintcallsPostgreSqlSchemaParserTest::testParseDefaultStringcallsPostgreSqlSchemaParserTest::testParseDefaultStringDoubleQuotescallsPostgreSqlSchemaParserTest::testParseDefaultStringWithConstraintsAftercallsPostgreSqlSchemaParserTest::testParseDefaultStringWithDoubleQuotescallsPostgreSqlSchemaParserTest::testParseDefaultStringWithTrailingConstraintscallsPostgreSqlSchemaParserTest::testParseDefaultTrimsValuecallsPostgreSqlSchemaParserTest::testParseDefaultTypeCastcallsPostgreSqlSchemaParserTest::testParseDefaultTypeCastIsPreservedcallsPostgreSqlSchemaParserTest::testParseDefaultWithGeneratedKeywordcallsPostgreSqlSchemaParserTest::testParseDoublePrecisioncallsPostgreSqlSchemaParserTest::testParseEnumValuesAlwaysNullcallsPostgreSqlSchemaParserTest::testParseExcludeConstraintSkippedcallsPostgreSqlSchemaParserTest::testParseGeneratedColumncallsPostgreSqlSchemaParserTest::testParseIfNotExistscallsPostgreSqlSchemaParserTest::testParseInetTypecallsPostgreSqlSchemaParserTest::testParseInlineCommentcallsPostgreSqlSchemaParserTest::testParseIntegerArrayTypecallsPostgreSqlSchemaParserTest::testParseIntervalTypecallsPostgreSqlSchemaParserTest::testParseIsDecimalTypeCaseInsensitivecallsPostgreSqlSchemaParserTest::testParseIsTableConstraintWithLeadingWhitespacecallsPostgreSqlSchemaParserTest::testParseJsonbTypecallsPostgreSqlSchemaParserTest::testParseLowercaseArrayTypescallsPostgreSqlSchemaParserTest::testParseLowercaseBigserialTypecallsPostgreSqlSchemaParserTest::testParseLowercaseConstraintscallsPostgreSqlSchemaParserTest::testParseLowercaseCreateTablecallsPostgreSqlSchemaParserTest::testParseLowercaseDecimalTypecallsPostgreSqlSchemaParserTest::testParseLowercaseDecTypecallsPostgreSqlSchemaParserTest::testParseLowercaseDefaultValuescallsPostgreSqlSchemaParserTest::testParseLowercaseDefaultWithTrailingConstraintscallsPostgreSqlSchemaParserTest::testParseLowercaseGeneratedColumncallsPostgreSqlSchemaParserTest::testParseLowercaseIfNotExistscallsPostgreSqlSchemaParserTest::testParseLowercaseMultiWordTypescallsPostgreSqlSchemaParserTest::testParseLowercaseNumericTypecallsPostgreSqlSchemaParserTest::testParseLowercaseSerialTypecallsPostgreSqlSchemaParserTest::testParseLowercaseSmallserialTypecallsPostgreSqlSchemaParserTest::testParseLowercaseTablePrimaryKeycallsPostgreSqlSchemaParserTest::testParseMacaddrTypecallsPostgreSqlSchemaParserTest::testParseMixedCaseKeywordscallsPostgreSqlSchemaParserTest::testParseMoneyTypecallsPostgreSqlSchemaParserTest::testParseMultilineWithWhitespacecallsPostgreSqlSchemaParserTest::testParseMultipleConstraintsBetweenColumnscallsPostgreSqlSchemaParserTest::testParseMultipleSerialColumnscallsPostgreSqlSchemaParserTest::testParseNonAutoIncrementColumncallsPostgreSqlSchemaParserTest::testParseNonGeneratedColumncallsPostgreSqlSchemaParserTest::testParseNoParenthesescallsPostgreSqlSchemaParserTest::testParseNormalizeSqlRemovesBlockCommentscallsPostgreSqlSchemaParserTest::testParseNormalizeSqlTrimsWhitespacecallsPostgreSqlSchemaParserTest::testParseNotNullConstraintcallsPostgreSqlSchemaParserTest::testParseNumericWithPrecisionAndScalecallsPostgreSqlSchemaParserTest::testParseNumericWithPrecisionOnlycallsPostgreSqlSchemaParserTest::testParseParensEqualStartReturnsNullcallsPostgreSqlSchemaParserTest::testParsePrimaryKeycallsPostgreSqlSchemaParserTest::testParseQuotedPrimaryKeyColumnscallsPostgreSqlSchemaParserTest::testParseQuotedTableNamecallsPostgreSqlSchemaParserTest::testParseSchemaQualifiedTableNamecallsPostgreSqlSchemaParserTest::testParseSerialTypecallsPostgreSqlSchemaParserTest::testParseSerialWithPrecisioncallsPostgreSqlSchemaParserTest::testParseSimpleTablecallsPostgreSqlSchemaParserTest::testParseSkipsTableConstraintscallsPostgreSqlSchemaParserTest::testParseSmallSerialTypecallsPostgreSqlSchemaParserTest::testParseTableLevelPrimaryKeycallsPostgreSqlSchemaParserTest::testParseTimestampWithoutTimeZonecallsPostgreSqlSchemaParserTest::testParseTimestampWithTimeZonecallsPostgreSqlSchemaParserTest::testParseTimeWithoutTimeZonecallsPostgreSqlSchemaParserTest::testParseTimeWithTimeZonecallsPostgreSqlSchemaParserTest::testParseTrimsDefinitionsInSplitColumnDefinitionscallsPostgreSqlSchemaParserTest::testParseUnsignedAlwaysFalsecallsPostgreSqlSchemaParserTest::testParseUuidTypecallsPostgreSqlSchemaParserTest::testParseVarcharWithLengthcallsPostgreSqlSchemaParserTest::testParseWithLeadingTrailingWhitespacecallsPostgreSqlSchemaParserTest::testParseXmlTypecallsPostgreSqlSchemaParserTest::testThrowsExceptionForEmptyTablecallsPostgreSqlSchemaParserTest::testThrowsExceptionForInvalidSqlcalls
Other tests reaching this symbol 9
SchemaParsingBench::benchPostgreSqlcallsPostgreSqlEndToEndTestcallsSqliteIntegrationTestcallsDatabaseFixtureProviderTestcallsFileFixtureProviderTestcallsFixtureProviderTestcallsPlatformFactoryTest::testCreateSchemaParserForPgsqlcallsPostgreSqlSchemaFetcherTestcallsSqlSchemaProviderTestcalls