classMySqlVersion
final class MySqlVersion
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
A supported MySQL release and the lexical rules that changed between releases.
Constants§
public const DIALECT = 'mysql'The dialect name the resource record uses.
Properties§
public SqlVersion $releaseMethods§
public function __construct(public SqlVersion $release)Parameters
$release | SqlVersion | The release and its resources |
public static function resolve(
string|null $version = null,
VersionRegistry $registry = new \SqlParser\Resource\VersionRegistry(),
): selfResolves a release tag, the newest shipped release when none is given.
Parameters
$version | string|null | Tag such as `mysql-8.4.7`, or null for the default |
$registry | VersionRegistry | Record of shipped releases |
Returns
self The releaseThrows
RuntimeException When the release is not shippedTest cases 46
KeywordTableTest::testLoadcallsMySqlLexerTest::testMergedcallsMySqlLexerTest::testNextcallsMySqlLexerTest::testScanReadsAnEmptyHostNameAsTheServerDoescallsMySqlLexerTest::testScanReadsAStatementIntoTerminalscallsMySqlLexerTest::testScanRejectsAnUnreadableCharactercallsNumberScannerTest::testFractioncallsNumberScannerTest::testScancallsNumberScannerTest::testScanNotesAQualifiedIdentifierThatStartsWithADigitcallsOperatorScannerTest::testMultiCharactercallsOperatorScannerTest::testScancallsOperatorScannerTest::testScanRejectsAForeignCharactercallsOperatorScannerTest::testScanRejectsAParameterMarkerGluedToANamecallsOperatorScannerTest::testSeparatorcallsQuotedScannerTest::testQuotedIdentifiercallsQuotedScannerTest::testQuotedIdentifierRejectsAnUnterminatedIdentifiercallsQuotedScannerTest::testScanReadsPrefixedLiteralscallsQuotedScannerTest::testScanReadsStringsAndIdentifierscallsQuotedScannerTest::testScanRejectsAnOddHexadecimalLiteralcallsQuotedScannerTest::testStringcallsQuotedScannerTest::testStringRejectsAnUnterminatedStringcallsScanTest::testLexemecallsTriviaScannerTest::testBlockCommentcallsTriviaScannerTest::testBlockCommentRejectsAnUnterminatedCommentcallsTriviaScannerTest::testSkipDropsAVersionCommentForANewerReleasecallsTriviaScannerTest::testSkipPassesWhitespaceAndCommentscallsTriviaScannerTest::testSkipReadsAVersionCommentBodyAsSqlcallsVariableScannerTest::testAtcallsVariableScannerTest::testHostnamecallsVariableScannerTest::testIdentifierOrKeywordcallsVariableScannerTest::testIdentifierOrKeywordRejectsAMissingNamecallsVariableScannerTest::testSystemVariablecallsWordScannerTest::testDollarQuotedcallsWordScannerTest::testDollarQuotedRejectsAnUnterminatedStringcallsWordScannerTest::testIdentifiercallsWordScannerTest::testIdentifierLexemecallsWordScannerTest::testScancallsWordScannerTest::testWordKeepsAKeywordBeforeADotAsAnIdentifiercallsWordScannerTest::testWordLooksUpFunctionsAcrossSpacesUnderIgnoreSpacecallsMySqlVersionTest::testHasDollarQuotedStringscallsMySqlVersionTest::testHasJsonOperatorscallsMySqlVersionTest::testIdcallsMySqlVersionTest::testMergesWithCubecallsMySqlVersionTest::testNamecallsMySqlVersionTest::testResolvecallsMySqlVersionTest::testResolveRejectsAnUnknownReleasecalls
Called from 2
Calls 4
- new VersionRegistry line 40
- new
selfline 42 - method-call VersionRegistry::resolve() line 42
- class-const MySqlVersion::DIALECT() line 42
public function name(): stringAnswers the release tag.
Returns
string Tag such as `mysql-8.4.7`Called from 1
public function id(): intAnswers the release as MySQL numbers it, as in MYSQL_VERSION_ID.
Returns
int Major times ten thousand plus minor times a hundred plus patchCalled from 3
- method-call SqlParser\MySql\MySqlVersion::hasJsonOperators() packages/sql-parser/src/MySql/MySqlVersion.php:74
- method-call SqlParser\MySql\MySqlVersion::hasDollarQuotedStrings() packages/sql-parser/src/MySql/MySqlVersion.php:84
- method-call SqlParser\MySql\MySqlVersion::mergesWithCube() packages/sql-parser/src/MySql/MySqlVersion.php:94
public function hasJsonOperators(): boolReports whether -> and ->> are JSON operators, as they are from 5.7 on.
Returns
bool True from 5.7 onCalls 1
- method-call MySqlVersion::id() line 74
public function hasDollarQuotedStrings(): boolReports whether $$ ... $$ is a string literal, as it is from 8.1 on.
Returns
bool True from 8.1 onCalls 1
- method-call MySqlVersion::id() line 84
public function mergesWithCube(): boolReports whether WITH CUBE is read as one token, as it was before 8.0.
Returns
bool True for 5.6 and 5.7Called from 1
Calls 1
- method-call MySqlVersion::id() line 94
Test cases 47§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 7
Other tests reaching this symbol 40
KeywordTableTest::testLoadcallsMySqlLexerTest::testMergedcallsMySqlLexerTest::testNextcallsMySqlLexerTest::testScanReadsAnEmptyHostNameAsTheServerDoescallsMySqlLexerTest::testScanReadsAStatementIntoTerminalscallsMySqlLexerTest::testScanRejectsAnUnreadableCharactercallsNumberScannerTest::testFractioncallsNumberScannerTest::testScancallsNumberScannerTest::testScanNotesAQualifiedIdentifierThatStartsWithADigitcallsOperatorScannerTest::testMultiCharactercallsOperatorScannerTest::testScancallsOperatorScannerTest::testScanRejectsAForeignCharactercallsOperatorScannerTest::testScanRejectsAParameterMarkerGluedToANamecallsOperatorScannerTest::testSeparatorcallsQuotedScannerTest::testQuotedIdentifiercallsQuotedScannerTest::testQuotedIdentifierRejectsAnUnterminatedIdentifiercallsQuotedScannerTest::testScanReadsPrefixedLiteralscallsQuotedScannerTest::testScanReadsStringsAndIdentifierscallsQuotedScannerTest::testScanRejectsAnOddHexadecimalLiteralcallsQuotedScannerTest::testStringcallsQuotedScannerTest::testStringRejectsAnUnterminatedStringcallsScanTest::testLexemecallsTriviaScannerTest::testBlockCommentcallsTriviaScannerTest::testBlockCommentRejectsAnUnterminatedCommentcallsTriviaScannerTest::testSkipDropsAVersionCommentForANewerReleasecallsTriviaScannerTest::testSkipPassesWhitespaceAndCommentscallsTriviaScannerTest::testSkipReadsAVersionCommentBodyAsSqlcallsVariableScannerTest::testAtcallsVariableScannerTest::testHostnamecallsVariableScannerTest::testIdentifierOrKeywordcallsVariableScannerTest::testIdentifierOrKeywordRejectsAMissingNamecallsVariableScannerTest::testSystemVariablecallsWordScannerTest::testDollarQuotedcallsWordScannerTest::testDollarQuotedRejectsAnUnterminatedStringcallsWordScannerTest::testIdentifiercallsWordScannerTest::testIdentifierLexemecallsWordScannerTest::testScancallsWordScannerTest::testWordKeepsAKeywordBeforeADotAsAnIdentifiercallsWordScannerTest::testWordLooksUpFunctionsAcrossSpacesUnderIgnoreSpacecallsMySqlParserTestcalls