Package io.debezium.relational.ddl
Class AbstractDdlParser
java.lang.Object
io.debezium.relational.ddl.AbstractDdlParser
- All Implemented Interfaces:
DdlParser
- Author:
- Roman Kuchár <kucharrom@gmail.com>.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Stringprotected DdlChangesprotected final org.slf4j.Loggerprotected final booleanprotected final booleanprotected SystemVariables -
Constructor Summary
ConstructorsConstructorDescriptionAbstractDdlParser(boolean includeViews, boolean includeComments) Create a new parser. -
Method Summary
Modifier and TypeMethodDescriptionprotected Collection<ParsingException>Utility method to accumulate a parsing exception.static Collection<ParsingException>Utility method to accumulate a parsing exception.protected voidcommentParsed(String comment) protected ColumncreateColumnFromConstant(String columnName, String constantValue) protected abstract SystemVariablesGet the name of the current schema.protected voiddebugParsed(String statement) protected voiddebugSkipped(String statement) static booleanisQuote(char c) Check if the char is quote.static booleanCheck if the string is enclosed in quotes.protected StringremoveLineFeeds(String input) Removes line feeds from input string.resolveTableId(String schemaName, String tableName) Create aTableIdfrom the supplied schema and table names.voidsetCurrentDatabase(String databaseName) voidsetCurrentSchema(String schemaName) Set the name of the current schema.protected voidsetTypeInfoForConstant(String constantValue, ColumnEditor column) protected voidsignalAlterDatabase(String databaseName, String previousDatabaseName, String statement) Signal an alter database event to ddl changes listener.protected voidsignalAlterTable(TableId id, TableId previousId, String statement) Signal an alter table event to ddl changes listener.protected voidsignalAlterView(TableId id, TableId previousId, String statement) Signal an alter view event to ddl changes listener.protected voidSignal an event to ddl changes listener.protected voidsignalCreateDatabase(String databaseName, String statement) Signal a create database event to ddl changes listener.protected voidsignalCreateIndex(String indexName, TableId id, String statement) Signal a create index event to ddl changes listener.protected voidsignalCreateTable(TableId id, String statement) Signal a create table event to ddl changes listener.protected voidsignalCreateView(TableId id, String statement) Signal a create view event to ddl changes listener.protected voidsignalDropDatabase(String databaseName, String statement) Signal a drop database event to ddl changes listener.protected voidsignalDropIndex(String indexName, TableId id, String statement) Signal a drop index event to ddl changes listener.protected voidsignalDropTable(TableId id, String statement) Signal a drop table event to ddl changes listener.protected voidsignalDropView(TableId id, String statement) Signal a drop view event to ddl changes listener.protected voidsignalSetVariable(String variableName, String variableValue, int order, String statement) protected voidsignalTruncateTable(TableId id, String statement) Signal a truncate table event to ddl changes listener.protected voidsignalUseDatabase(String statement) protected booleanDetermine whether parsing should exclude comments from the token stream.static StringwithoutQuotes(String possiblyQuoted) Cut out the string surrounded with single, double and reversed quotes.
-
Field Details
-
skipViews
protected final boolean skipViews -
skipComments
protected final boolean skipComments -
ddlChanges
-
systemVariables
-
logger
protected final org.slf4j.Logger logger -
currentSchema
-
-
Constructor Details
-
AbstractDdlParser
public AbstractDdlParser(boolean includeViews, boolean includeComments) Create a new parser.- Parameters:
includeViews-trueif view definitions should be included, orfalseif they should be skippedincludeComments-trueif table and column's comment definitions should be included, orfalseif they should be skipped
-
-
Method Details
-
setCurrentSchema
Description copied from interface:DdlParserSet the name of the current schema.- Specified by:
setCurrentSchemain interfaceDdlParser- Parameters:
schemaName- the name of the current schema; may be null
-
setCurrentDatabase
- Specified by:
setCurrentDatabasein interfaceDdlParser
-
getDdlChanges
- Specified by:
getDdlChangesin interfaceDdlParser
-
systemVariables
- Specified by:
systemVariablesin interfaceDdlParser
-
createNewSystemVariablesInstance
-
currentSchema
Get the name of the current schema.- Returns:
- the current schema name, or null if the current schema name has not been
set
-
resolveTableId
Create aTableIdfrom the supplied schema and table names. By default, this method uses the supplied schema name as the TableId's catalog, which often matches the catalog name in JDBC database metadata.- Parameters:
schemaName- the name of the schema; may be null if not specifiedtableName- the name of the table; should not be null- Returns:
- the table identifier; never null
-
skipComments
protected boolean skipComments()Determine whether parsing should exclude comments from the token stream. By default, this method returnstrue.- Returns:
trueif comments should be skipped/excluded, orfalseif they should not be skipped
-
signalChangeEvent
Signal an event to ddl changes listener.- Parameters:
event- the event; may not be null
-
signalSetVariable
-
signalUseDatabase
-
signalCreateDatabase
Signal a create database event to ddl changes listener.- Parameters:
databaseName- the database name; may not be nullstatement- the DDL statement; may not be null
-
signalAlterDatabase
protected void signalAlterDatabase(String databaseName, String previousDatabaseName, String statement) Signal an alter database event to ddl changes listener.- Parameters:
databaseName- the database name; may not be nullpreviousDatabaseName- the previous name of the database if it was renamed, or null if it was not renamedstatement- the DDL statement; may not be null
-
signalDropDatabase
Signal a drop database event to ddl changes listener.- Parameters:
databaseName- the database name; may not be nullstatement- the DDL statement; may not be null
-
signalCreateTable
Signal a create table event to ddl changes listener.- Parameters:
id- the table identifier; may not be nullstatement- the DDL statement; may not be null
-
signalAlterTable
Signal an alter table event to ddl changes listener.- Parameters:
id- the table identifier; may not be nullpreviousId- the previous name of the view if it was renamed, or null if it was not renamedstatement- the DDL statement; may not be null
-
signalDropTable
Signal a drop table event to ddl changes listener.- Parameters:
id- the table identifier; may not be nullstatement- the statement; may not be null
-
signalTruncateTable
Signal a truncate table event to ddl changes listener.- Parameters:
id- the table identifier; may not be nullstatement- the statement; may not be null
-
signalCreateView
Signal a create view event to ddl changes listener.- Parameters:
id- the table identifier; may not be nullstatement- the DDL statement; may not be null
-
signalAlterView
Signal an alter view event to ddl changes listener.- Parameters:
id- the table identifier; may not be nullpreviousId- the previous name of the view if it was renamed, or null if it was not renamedstatement- the DDL statement; may not be null
-
signalDropView
Signal a drop view event to ddl changes listener.- Parameters:
id- the table identifier; may not be nullstatement- the statement; may not be null
-
signalCreateIndex
Signal a create index event to ddl changes listener.- Parameters:
indexName- the name of the index; may not be nullid- the table identifier; may be null if the index does not apply to a single tablestatement- the DDL statement; may not be null
-
signalDropIndex
Signal a drop index event to ddl changes listener.- Parameters:
indexName- the name of the index; may not be nullid- the table identifier; may not be nullstatement- the DDL statement; may not be null
-
removeLineFeeds
Removes line feeds from input string.- Parameters:
input- input with possible line feeds- Returns:
- input string without line feeds
-
withoutQuotes
Cut out the string surrounded with single, double and reversed quotes.- Parameters:
possiblyQuoted- string with possible quotes- Returns:
- string without quotes
-
isQuoted
Check if the string is enclosed in quotes.- Parameters:
possiblyQuoted- string with possible quotes- Returns:
- true if the string is quoted, false otherwise
-
isQuote
public static boolean isQuote(char c) Check if the char is quote.- Parameters:
c- possible quote char- Returns:
- true if the char is quote false otherwise
-
accumulateParsingFailure
public static Collection<ParsingException> accumulateParsingFailure(ParsingException e, Collection<ParsingException> list) Utility method to accumulate a parsing exception.- Parameters:
e- the parsing exceptionlist- the list of previous parsing exceptions; may be null- Returns:
- the list of previous and current parsing exceptions; if
eis null then alwayslist, but otherwise non-null list
-
accumulateParsingFailure
protected Collection<ParsingException> accumulateParsingFailure(MultipleParsingExceptions e, Collection<ParsingException> list) Utility method to accumulate a parsing exception.- Parameters:
e- the multiple parsing exceptionslist- the list of previous parsing exceptions; may be null- Returns:
- the list of previous and current parsing exceptions; if
eis null then alwayslist, but otherwise non-null list
-
createColumnFromConstant
-
setTypeInfoForConstant
-
debugParsed
-
debugSkipped
-
commentParsed
-