@NotThreadSafe public class MySqlDdlParser extends LegacyDdlParser
See the MySQL SQL Syntax documentation for the grammar supported by this parser.
LegacyDdlParser.TokenSet
Modifier and Type | Field and Description |
---|---|
private ConcurrentMap<String,String> |
charsetNameForDatabase |
private MySqlValueConverters |
converters |
private MySqlDefaultValuePreConverter |
defaultValuePreConverter |
private static String |
SERVER_CHARSET_NAME
The system variable name for the name of the character set that the server uses by default.
|
databaseTables, dataTypeParser, logger, tokens
ddlChanges, skipViews, systemVariables
Modifier | Constructor and Description |
---|---|
|
MySqlDdlParser()
Create a new DDL parser for MySQL that does not include view definitions.
|
|
MySqlDdlParser(boolean includeViews)
Create a new DDL parser for MySQL.
|
protected |
MySqlDdlParser(boolean includeViews,
MySqlValueConverters converters) |
addListener, canConsumeJoin, canConsumeJoinCondition, consumeDoubleQuotedString, consumeQuotedString, consumeRemainingStatement, consumeSingleQuotedString, consumeStatement, debugParsed, debugSkipped, determineTokenType, determineTypeNameForConstant, determineTypeNameForConstant, determineTypeNameForConstant, determineTypeNameForConstant, isNextTokenQuotedIdentifier, parse, parse, parseBitFieldLiteral, parseCharacterLiteral, parseCharacterSetName, parseColumnName, parseColumnsInSelectClause, parseComment, parseDateLiteral, parseLiteral, parseNumericLiteral, parseQualifiedTableName, parseQualifiedTableNames, parseSchemaQualifiedName, parseSelectFromClause, parseTimeLiteral, parseTimestampLiteral, parseUnknownStatement, parsingFailed, parsingFailed, parsingFailed, removeListener, removeListeners, signalAlterDatabase, signalAlterTable, signalAlterView, signalChangeEvent, signalCreateDatabase, signalCreateIndex, signalCreateTable, signalCreateView, signalDropDatabase, signalDropIndex, signalDropTable, signalDropView, statement
accumulateParsingFailure, accumulateParsingFailure, commentParsed, createColumnFromConstant, currentSchema, debugParsed, debugSkipped, getDdlChanges, removeLineFeeds, resolveTableId, setCurrentDatabase, setCurrentSchema, setTypeInfoForConstant, signalAlterDatabase, signalAlterTable, signalAlterView, signalCreateDatabase, signalCreateIndex, signalCreateTable, signalCreateView, signalDropDatabase, signalDropIndex, signalDropTable, signalDropView, signalSetVariable, signalTruncateTable, skipComments, systemVariables, terminator, withoutQuotes
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDdlChanges, setCurrentDatabase, setCurrentSchema, systemVariables, terminator
private static final String SERVER_CHARSET_NAME
private final ConcurrentMap<String,String> charsetNameForDatabase
private MySqlValueConverters converters
private final MySqlDefaultValuePreConverter defaultValuePreConverter
public MySqlDdlParser()
public MySqlDdlParser(boolean includeViews)
includeViews
- true
if view definitions should be included, or false
if they should be skippedprotected MySqlDdlParser(boolean includeViews, MySqlValueConverters converters)
protected SystemVariables createNewSystemVariablesInstance()
createNewSystemVariablesInstance
in class LegacyDdlParser
protected void initializeDataTypes(DataTypeParser dataTypes)
initializeDataTypes
in class LegacyDdlParser
protected void initializeKeywords(LegacyDdlParser.TokenSet keywords)
initializeKeywords
in class LegacyDdlParser
protected void initializeStatementStarts(LegacyDdlParser.TokenSet statementStartTokens)
initializeStatementStarts
in class LegacyDdlParser
protected void parseNextStatement(TokenStream.Marker marker)
parseNextStatement
in class LegacyDdlParser
protected void parseSet(TokenStream.Marker start)
protected void parseSetVariable(TokenStream.Marker start, AtomicReference<MySqlSystemVariables.MySqlScope> scope)
protected String parseVariableName()
protected String parseVariableValue()
protected void parseCreate(TokenStream.Marker marker)
parseCreate
in class LegacyDdlParser
protected void parseCreateDatabase(TokenStream.Marker start)
protected void parseAlterDatabase(TokenStream.Marker start)
protected void parseDropDatabase(TokenStream.Marker start)
protected void parseDatabaseOptions(TokenStream.Marker start, String dbName)
protected void parseCreateTable(TokenStream.Marker start)
protected void parseTableOptions(TokenStream.Marker start, TableEditor table)
protected boolean parseTableOption(TokenStream.Marker start, TableEditor table)
protected void parsePartitionOptions(TokenStream.Marker start, TableEditor table)
protected void parsePartitionDefinition(TokenStream.Marker start, TableEditor table)
protected void parseSubpartitionDefinition(TokenStream.Marker start, TableEditor table)
protected void parseAsSelectStatement(TokenStream.Marker start, TableEditor table)
protected void parseCreateDefinitionList(TokenStream.Marker start, TableEditor table)
protected void parseCreateDefinition(TokenStream.Marker start, TableEditor table, boolean isAlterStatement)
isAlterStatement
- whether this is an ALTER TABLE statement or not (i.e. CREATE TABLE)protected Column parseCreateColumn(TokenStream.Marker start, TableEditor table, String columnName, String newColumnName)
private void convertDefaultValueToSchemaType(ColumnEditor columnEditor)
public static List<String> parseSetAndEnumOptions(String typeExpression)
ENUM
or SET
data type expression to extract the character options, where the index(es) appearing
in the ENUM
or SET
values can be used to identify the acceptable characters.typeExpression
- the data type expressionENUM
or SET
; never nullprotected void parseColumnDefinition(TokenStream.Marker start, String columnName, TokenStream tokens, TableEditor table, ColumnEditor column, AtomicBoolean isPrimaryKey)
protected String parseDomainName(TokenStream.Marker start)
protected List<String> parseIndexColumnNames(TokenStream.Marker start)
protected void parseIndexType(TokenStream.Marker start)
protected void parseIndexOptions(TokenStream.Marker start)
protected void parseReferenceDefinition(TokenStream.Marker start)
protected void parseReferenceOption(TokenStream.Marker start)
protected void parseCreateView(TokenStream.Marker start)
protected void parseCreateIndex(TokenStream.Marker start)
protected void parseDefiner(TokenStream.Marker start)
protected void parseCreateProcedure(TokenStream.Marker start)
protected void parseCreateTrigger(TokenStream.Marker start)
protected void parseCreateEvent(TokenStream.Marker start)
protected void parseCreateUnknown(TokenStream.Marker start)
protected void parseAlter(TokenStream.Marker marker)
parseAlter
in class LegacyDdlParser
protected void parseAlterTable(TokenStream.Marker start)
protected void parseAlterSpecificationList(TokenStream.Marker start, TableEditor table, Consumer<TableId> newTableName)
protected void parseAlterSpecification(TokenStream.Marker start, TableEditor table, Consumer<TableId> newTableName)
protected void parseAlterUnknown(TokenStream.Marker start)
protected void parseDrop(TokenStream.Marker marker)
parseDrop
in class LegacyDdlParser
protected void parseDropTable(TokenStream.Marker start)
protected void parseDropView(TokenStream.Marker start)
protected void parseDropIndex(TokenStream.Marker start)
protected void parseDropUnknown(TokenStream.Marker start)
protected void parseRename(TokenStream.Marker start)
protected void parseRenameTable(TokenStream.Marker start)
protected void parseUse(TokenStream.Marker marker)
protected String currentDatabaseCharset()
protected List<String> parseColumnNameList(TokenStream.Marker start)
protected String parseColumnName()
protected void parsePartitionNames(TokenStream.Marker start)
protected void consumeCommaSeparatedValueList(TokenStream.Marker start)
protected void consumeValueList(TokenStream.Marker start)
protected void consumeExpression(TokenStream.Marker start)
start
- the start of the statementprotected void consumeBeginStatement(TokenStream.Marker start)
BEGIN...END
block that appears next in the token stream. This handles nested
BEGIN...END
blocks,
labeled statements,
and control blocks.consumeBeginStatement
in class LegacyDdlParser
start
- the marker at which the statement was begunprotected String getPrecedingBlockLabel()
NoSuchElementException
- if there is no previous tokenprotected void sequentially(Consumer<TokenStream.Marker>... functions)
functions
- the functionsprotected void parseDefaultClause(TokenStream.Marker start)
DEFAULT
clause. Currently, this method does not capture the default in any way,
since that will likely require parsing the default clause into a useful value (e.g., dealing with hexadecimals,
bit-set literals, date-time literals, etc.).start
- the marker at the beginning of the clauseprotected void parseDefaultClause(TokenStream.Marker start, ColumnEditor column)
DEFAULT
clause. Add default value in column;start
- the marker at the beginning of the clausecolumn
- column editorprotected void parseOnUpdateOrDelete(TokenStream.Marker start)
private void parseCurrentTimestampOrNow()
Copyright © 2018 JBoss by Red Hat. All rights reserved.