classDefinitionFactory
final class DefinitionFactory
Declares scanner values, fixed spellings, contextual domains and spacing for each exact release. Source tags match every MySQL release in resources/version.php; lex.h links accompany the keyword declarations. Create_field::init is in field.cc for MySQL 5.6/5.7 and create_field.cc for MySQL 8.x/9.x.
Methods§
public function create(string $version): LexicalDefinitionComposes the selected release directly from the declarations in this file.
Parameters
$version | string |
Returns
Throws
RuntimeException When the exact release is unsupportedTest cases 31
CharsetValueLexemeGeneratorTest::testGenerateSamplesCharsetCompatibleBytesWithoutRestrictingOrdinaryBinaryValuescallsDefinitionFactoryTest::testBinaryAndStringsConstructCompleteAsciiValuesAfterIntroducersValuecallsDefinitionFactoryTest::testBinaryChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testBinaryDomainKeepsExplicitByteSpellingsAvailableForCompatibleCharsetsValuecallsDefinitionFactoryTest::testContextualValuesRestrictsTheDomaincallsDefinitionFactoryTest::testContextualWordPreservesExplicitCasecallsDefinitionFactoryTest::testCreateCombinesLexicalOutputAndBoundaryDecisionscallsDefinitionFactoryTest::testCreateConstructsCompleteDollarDelimitersAndUnescapedBodiesDollarStringcallsDefinitionFactoryTest::testCreateConstructsScannerBoundaryValuesValuecallsDefinitionFactoryTest::testCreateEnumeratesOnlySourceAcceptedTernaryValuesContextualValuecallsDefinitionFactoryTest::testCreateOffersACompleteCandidateForEverySourceValueTokenValuecallsDefinitionFactoryTest::testCreatePreservesTheVersionedParserValueDomainsContextualValuecallsDefinitionFactoryTest::testCreateRetainsContextualSpellingsAndTheirSourceDefinitioncallsDefinitionFactoryTest::testCreateRetainsValidSourceSpellingsAndRejectsMalformedOnesValuecallsDefinitionFactoryTest::testDollarStringsUsesTheFirstMatchingDelimitercallsDefinitionFactoryTest::testDollarVersionsDoesNotAssumeFutureCompatibilitycallsDefinitionFactoryTest::testJsonKeepsTheCompleteDeclaredOutputSymbolcallsDefinitionFactoryTest::testKeywordsKeepsAliasesFunctionCategoriesAndReleaseChangesExplicitcallsDefinitionFactoryTest::testLexemesKeepsParserNumericBoundariescallsDefinitionFactoryTest::testLexemesRejectsAnUnreviewedVersioncallsDefinitionFactoryTest::testLexemesUsesTheTwoByteKeyBlockSizeDomaincallsDefinitionFactoryTest::testNamesChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testNonOutputDoesNotMisclassifyAStatementKeywordAsAMarkerSymbolcallsDefinitionFactoryTest::testNumbersChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testPhraseKeepsBothWordsInTheSameOriginalOccurrenceSymbolcallsDefinitionFactoryTest::testPhrasesKeepsTheCompleteDeclaredOutputSymbolcallsDefinitionFactoryTest::testSelectorsKeepsTheCompleteDeclaredOutputSymbolcallsDefinitionFactoryTest::testStringsChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testStringsKeepsConstructedIntroducedValuesValidUnderAnExplicitAsciiCharsetValuecallsDefinitionFactoryTest::testSymbolsKeepsTheCompleteOutputcallsDefinitionFactoryTest::testValuesLeavesUnknownTerminalsUnclaimedcalls
Called from 1
Calls 33
- static-call SqlVersion::resolve() line 88
- new LexicalDefinition line 1114
- new ChoiceLexemeGenerator line 1117
- new VersionedLexemeGenerator line 1118
- new VersionCase line 1120
- new ValueLexemeGenerator line 1123
- new WordDomain line 1125
- new ReplicationTablePatternLexemeGenerator line 1130
- new FactorLexemeGenerator line 1138
- new IdentifierDomain line 1141
- new BoundedIntegerLexemeGenerator line 1150
- new IntegerLexemeGenerator line 1185
- new KeywordLexemeGenerator line 1210
- new SizeNumberLexemeGenerator line 1219
- new PrecisionLexemeGenerator line 1220
- new QuotedDomain line 1342
- new CharacterDomain line 1354
- new CharsetLexemeGenerator line 1369
- new CharsetValueLexemeGenerator line 1372
- new ChoiceDomain line 1469
- new SequenceDomain line 1470
- new RadixDomain line 1548
- function-call
sprintfline 1556 - new DollarQuotedDomain line 1613
- new MatchingLexemeGenerator line 1648
- new FixedLexemeGenerator line 1650
- new SequenceLexemeGenerator line 1784
- new CombinedSpacingRule line 1845
- new FunctionSpacingRule line 1846
- new VariableSpacingRule line 1847
- new QualifiedNameSpacingRule line 1848
- new CloneAddressSpacingRule line 1849
- new KeywordPhraseSpacingRule line 1850
Test cases 38§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 30
DefinitionFactoryTest::testBinaryAndStringsConstructCompleteAsciiValuesAfterIntroducersValuecallsDefinitionFactoryTest::testBinaryChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testBinaryDomainKeepsExplicitByteSpellingsAvailableForCompatibleCharsetsValuecallsDefinitionFactoryTest::testContextualValuesRestrictsTheDomaincallsDefinitionFactoryTest::testContextualWordPreservesExplicitCasecallsDefinitionFactoryTest::testCreateCombinesLexicalOutputAndBoundaryDecisionscallsDefinitionFactoryTest::testCreateConstructsCompleteDollarDelimitersAndUnescapedBodiesDollarStringcallsDefinitionFactoryTest::testCreateConstructsScannerBoundaryValuesValuecallsDefinitionFactoryTest::testCreateEnumeratesOnlySourceAcceptedTernaryValuesContextualValuecallsDefinitionFactoryTest::testCreateOffersACompleteCandidateForEverySourceValueTokenValuecallsDefinitionFactoryTest::testCreatePreservesTheVersionedParserValueDomainsContextualValuecallsDefinitionFactoryTest::testCreateRetainsContextualSpellingsAndTheirSourceDefinitioncallsDefinitionFactoryTest::testCreateRetainsValidSourceSpellingsAndRejectsMalformedOnesValuecallsDefinitionFactoryTest::testDollarStringsUsesTheFirstMatchingDelimitercallsDefinitionFactoryTest::testDollarVersionsDoesNotAssumeFutureCompatibilitycallsDefinitionFactoryTest::testJsonKeepsTheCompleteDeclaredOutputSymbolcallsDefinitionFactoryTest::testKeywordsKeepsAliasesFunctionCategoriesAndReleaseChangesExplicitcallsDefinitionFactoryTest::testLexemesKeepsParserNumericBoundariescallsDefinitionFactoryTest::testLexemesRejectsAnUnreviewedVersioncallsDefinitionFactoryTest::testLexemesUsesTheTwoByteKeyBlockSizeDomaincallsDefinitionFactoryTest::testNamesChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testNonOutputDoesNotMisclassifyAStatementKeywordAsAMarkerSymbolcallsDefinitionFactoryTest::testNumbersChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testPhraseKeepsBothWordsInTheSameOriginalOccurrenceSymbolcallsDefinitionFactoryTest::testPhrasesKeepsTheCompleteDeclaredOutputSymbolcallsDefinitionFactoryTest::testSelectorsKeepsTheCompleteDeclaredOutputSymbolcallsDefinitionFactoryTest::testStringsChecksSourceDelimiterOrValueBoundariesValuecallsDefinitionFactoryTest::testStringsKeepsConstructedIntroducedValuesValidUnderAnExplicitAsciiCharsetValuecallsDefinitionFactoryTest::testSymbolsKeepsTheCompleteOutputcallsDefinitionFactoryTest::testValuesLeavesUnknownTerminalsUnclaimedcalls