public class OracleDdlParser extends StandardDdlParser implements OracleDdlConstants, OracleDdlConstants.OracleStatementStartPhrases
OracleDdlConstants.IndexTypes, OracleDdlConstants.OracleDataTypes, OracleDdlConstants.OracleStatementStartPhrases
DdlConstants.AstNodeNames, DdlConstants.DataTypes, DdlConstants.DropBehavior, DdlConstants.MatchType, DdlConstants.Problems, DdlConstants.ReferencialAction, DdlConstants.StatementStartPhrases
Modifier and Type | Field and Description |
---|---|
static String |
ID
The Oracle parser identifier.
|
CUSTOM_KEYWORDS, INLINE_COLUMN_PROPERTY_START
ALTER, CHECK, COLUMN, COMMA, CONSTRAINT, CONSTRAINT_C, CONSTRAINT_FK, CONSTRAINT_PK, CONSTRAINT_UC, CREATE, DECLARE, DEFAULT_TERMINATOR, DELETE, DROP, FOREIGN, FOREIGN_KEY, GIGA, GRANT, INDEX, INSERT, KEY, KILO, L_PAREN, L_SQUOTE, LS_BRACE, MEGA, MISSING_TERMINATOR_NODE_LITERAL, NOT, NULL, OFF, ON, PERIOD, PRIMARY, PRIMARY_KEY, R_PAREN, REVOKE, RS_BRACE, SCHEMA, SELECT, SEMICOLON, SET, SPACE, SQL_92_RESERVED_WORDS, TABLE, UNIQUE, UPDATE, VIEW
ALTER_PHRASES, COMPLEX_STMT_TYPES, CREATE_PHRASES, DROP_PHRASES, MISC_PHRASES, SET_PHRASES, SLASHED_STMT_PHRASES, STMT_ALTER_CLUSTER, STMT_ALTER_DATABASE, STMT_ALTER_DIMENSION, STMT_ALTER_DISKGROUP, STMT_ALTER_FUNCTION, STMT_ALTER_INDEX, STMT_ALTER_INDEXTYPE, STMT_ALTER_JAVA, STMT_ALTER_MATERIALIZED, STMT_ALTER_OPERATOR, STMT_ALTER_OUTLINE, STMT_ALTER_PACKAGE, STMT_ALTER_PROCEDURE, STMT_ALTER_PROFILE, STMT_ALTER_RESOURCE, STMT_ALTER_ROLE, STMT_ALTER_ROLLBACK, STMT_ALTER_SEQUENCE, STMT_ALTER_SESSION, STMT_ALTER_SYSTEM, STMT_ALTER_TABLESPACE, STMT_ALTER_TRIGGER, STMT_ALTER_TYPE, STMT_ALTER_USER, STMT_ALTER_VIEW, STMT_ANALYZE, STMT_ASSOCIATE_STATISTICS, STMT_AUDIT, STMT_COMMENT_ON, STMT_COMMIT, STMT_COMMIT_FORCE, STMT_COMMIT_WORK, STMT_COMMIT_WRITE, STMT_CREATE_BITMAP_INDEX, STMT_CREATE_CLUSTER, STMT_CREATE_CONTEXT, STMT_CREATE_CONTROLFILE, STMT_CREATE_DATABASE, STMT_CREATE_DIMENSION, STMT_CREATE_DIRECTORY, STMT_CREATE_DISKGROUP, STMT_CREATE_FUNCTION, STMT_CREATE_INDEX, STMT_CREATE_INDEXTYPE, STMT_CREATE_JAVA, STMT_CREATE_LIBRARY, STMT_CREATE_MATERIALIZED_VEIW_LOG, STMT_CREATE_MATERIALIZED_VIEW, STMT_CREATE_OPERATOR, STMT_CREATE_OR_REPLACE_DIRECTORY, STMT_CREATE_OR_REPLACE_FUNCTION, STMT_CREATE_OR_REPLACE_LIBRARY, STMT_CREATE_OR_REPLACE_OUTLINE, STMT_CREATE_OR_REPLACE_PACKAGE, STMT_CREATE_OR_REPLACE_PRIVATE_OUTLINE, STMT_CREATE_OR_REPLACE_PROCEDURE, STMT_CREATE_OR_REPLACE_PUBLIC_OUTLINE, STMT_CREATE_OR_REPLACE_PUBLIC_SYNONYM, STMT_CREATE_OR_REPLACE_SYNONYM, STMT_CREATE_OR_REPLACE_TRIGGER, STMT_CREATE_OR_REPLACE_TYPE, STMT_CREATE_OUTLINE, STMT_CREATE_PACKAGE, STMT_CREATE_PFILE, STMT_CREATE_PROCEDURE, STMT_CREATE_PROFILE, STMT_CREATE_PUBLIC_DATABASE, STMT_CREATE_PUBLIC_ROLLBACK, STMT_CREATE_PUBLIC_SYNONYM, STMT_CREATE_ROLE, STMT_CREATE_ROLLBACK, STMT_CREATE_SEQUENCE, STMT_CREATE_SPFILE, STMT_CREATE_SYNONYM, STMT_CREATE_TABLESPACE, STMT_CREATE_TRIGGER, STMT_CREATE_TYPE, STMT_CREATE_UNIQUE_INDEX, STMT_CREATE_USER, STMT_DISASSOCIATE_STATISTICS, STMT_DROP_CLUSTER, STMT_DROP_CONTEXT, STMT_DROP_DATABASE, STMT_DROP_DIMENSION, STMT_DROP_DIRECTORY, STMT_DROP_DISKGROUP, STMT_DROP_FUNCTION, STMT_DROP_INDEX, STMT_DROP_INDEXTYPE, STMT_DROP_JAVA, STMT_DROP_LIBRARY, STMT_DROP_MATERIALIZED, STMT_DROP_OPERATOR, STMT_DROP_OUTLINE, STMT_DROP_PACKAGE, STMT_DROP_PROCEDURE, STMT_DROP_PROFILE, STMT_DROP_PUBLIC_DATABASE, STMT_DROP_PUBLIC_SYNONYM, STMT_DROP_ROLE, STMT_DROP_ROLLBACK, STMT_DROP_SEQUENCE, STMT_DROP_SYNONYM, STMT_DROP_TABLESPACE, STMT_DROP_TRIGGER, STMT_DROP_TYPE, STMT_DROP_USER, STMT_EXPLAIN_PLAN, STMT_FLASHBACK, STMT_LOCK_TABLE, STMT_MERGE, STMT_NOAUDIT, STMT_PURGE, STMT_RENAME, STMT_ROLLBACK, STMT_ROLLBACK_TO_SAVEPOINT, STMT_ROLLBACK_WORK, STMT_SAVEPOINT, STMT_SET_CONSTRAINT, STMT_SET_CONSTRAINTS, STMT_SET_ROLE, STMT_SET_TRANSACTION, STMT_TRUNCATE, VALID_SCHEMA_CHILD_STMTS
SQL_92_ALL_PHRASES, STMT_ALTER_DOMAIN, STMT_ALTER_TABLE, STMT_CREATE_ASSERTION, STMT_CREATE_CHARACTER_SET, STMT_CREATE_COLLATION, STMT_CREATE_DOMAIN, STMT_CREATE_GLOBAL_TEMPORARY_TABLE, STMT_CREATE_LOCAL_TEMPORARY_TABLE, STMT_CREATE_OR_REPLACE_VIEW, STMT_CREATE_SCHEMA, STMT_CREATE_TABLE, STMT_CREATE_TRANSLATION, STMT_CREATE_VIEW, STMT_DROP_ASSERTION, STMT_DROP_CHARACTER_SET, STMT_DROP_COLLATION, STMT_DROP_DOMAIN, STMT_DROP_SCHEMA, STMT_DROP_TABLE, STMT_DROP_TRANSLATION, STMT_DROP_VIEW, STMT_GRANT, STMT_INSERT_INTO, STMT_REVOKE, STMT_SET_DEFINE, VALID_SCHEMA_CHILD_TYPES
Constructor and Description |
---|
OracleDdlParser() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
areNextTokensCreateTableOptions(DdlTokenStream tokens) |
protected String |
consumeIdentifier(DdlTokenStream tokens)
Consumes an token identifier which can be of the form of a simple string or a double-quoted string.
|
protected List<String> |
getCustomDataTypeStartWords()
Returns a list of custom data type start words which can be used to help identify a column definition sub-statement.
|
String |
getId()
Get the identifier for this parser.
|
String[] |
getIdentifyingKeywords() |
protected String[] |
getValidSchemaChildTypes() |
AstNode |
handleUnknownToken(DdlTokenStream tokens,
String tokenValue)
Utility method subclasses can override to check unknown tokens and perform additional node manipulation.
|
protected void |
initializeTokenStream(DdlTokenStream tokens)
Method called by
StandardDdlParser.score(String, String, DdlParserScorer) and StandardDdlParser.parse(String, AstNode, Object) to initialize
the token stream , giving subclasses a chance to register
key words and statement start phrases . |
protected boolean |
isColumnDefinitionStart(DdlTokenStream tokens,
String columnMixinType)
Utility method to additionally check if MODIFY definition without datatype
|
protected AstNode |
parseAlterStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL ALTER statement based on SQL 92 specifications.
|
protected AstNode |
parseAlterTableStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL ALTER TABLE
AstNode based on SQL 92 specifications. |
protected void |
parseColumnDefinition(DdlTokenStream tokens,
AstNode tableNode,
String columnMixinType)
Alternative StandardDdlParser method that can handle column definition without datatype (for MODIFY) and supports setting
mixin type of a column.
|
protected void |
parseColumns(DdlTokenStream tokens,
AstNode tableNode,
boolean isAlterTable)
Overloaded version of method with default mixin type set to
StandardDdlLexicon.TYPE_ADD_COLUMN_DEFINITION |
protected void |
parseColumns(DdlTokenStream tokens,
AstNode tableNode,
String columnMixinType)
Utility method designed to parse columns within an ALTER TABLE ADD/MODIFY statement.
|
protected AstNode |
parseCreateFunctionStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL CREATE FUNCTION statement
|
protected AstNode |
parseCreateProcedureStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL CREATE PROCEDURE statement
|
protected AstNode |
parseCreateSchemaStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL CREATE SCHEMA
AstNode based on SQL 92 specifications. |
protected AstNode |
parseCreateStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL CREATE statement based on SQL 92 specifications.
|
protected AstNode |
parseCreateViewStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL CREATE VIEW
AstNode basedregisterStatementStartPhrase on SQL 92 specifications. |
protected AstNode |
parseCustomStatement(DdlTokenStream tokens,
AstNode parentNode)
Catch-all method to parse unknown (not registered or handled by sub-classes) statements.
|
protected AstNode |
parseDropStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL DROP
AstNode based on SQL 92 specifications. |
protected AstNode |
parseGrantStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL GRANT statement
AstNode based on SQL 92 specifications. |
protected AstNode |
parseMaterializedViewStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL CREATE MATERIALIZED VIEW statement This could either be a standard view or a VIEW LOG ON statement.
|
protected void |
parseNextCreateTableOption(DdlTokenStream tokens,
AstNode tableNode) |
protected AstNode |
parseRevokeStatement(DdlTokenStream tokens,
AstNode parentNode) |
protected AstNode |
parseSetStatement(DdlTokenStream tokens,
AstNode parentNode)
Parses DDL SET
AstNode based on SQL 92 specifications. |
protected AstNode |
parseSlashedStatement(DdlTokenStream tokens,
String[] stmt_start_phrase,
AstNode parentNode,
String mixinType)
Utility method to parse a generic statement given a start phrase and statement mixin type.
|
protected void |
rewrite(DdlTokenStream tokens,
AstNode rootNode) |
addProblem, addProblem, attachNewProblem, computeScore, consumeComment, consumeParenBoundedTokens, doUseTerminator, equals, getCurrentMarkedPosition, getDatatypeParser, getDataTypeStartWords, getProblems, getRootNode, getStatementTypeName, getTableElementsString, getTerminator, hashCode, integer, isColumnDefinitionStart, isComment, isMissingTerminatorNode, isTableConstraint, isTerminator, isTestMode, isValidSchemaChild, markEndOfStatement, markStartOfStatement, mergeNodes, missingTerminatorNode, nodeFactory, parse, parseCollateClause, parseColumnConstraint, parseColumnDefinition, parseColumnNameList, parseColumnsAndConstraints, parseConstraintAttributes, parseCreateAssertionStatement, parseCreateCharacterSetStatement, parseCreateCollationStatement, parseCreateDomainStatement, parseCreateTableOptions, parseCreateTableStatement, parseCreateTranslationStatement, parseDefaultClause, parseGrantPrivileges, parseIgnorableStatement, parseIgnorableStatement, parseInsertStatement, parseName, parseNameList, parseNextStatement, parseReferences, parseSingleTerminatedColumnDefinition, parseStatement, parseTableConstraint, parseUntilCommaOrTerminator, parseUntilSemiColon, parseUntilTerminator, parseUntilTerminatorIgnoreEmbeddedStatements, postProcess, removeMissingTerminatorNodes, score, setAsSchemaChildNode, setDatatypeParser, setDoUseTerminator, setRootNode, setTerminator, setTestMode, testPrint, unknownTerminatedNode
public static final String ID
protected boolean areNextTokensCreateTableOptions(DdlTokenStream tokens) throws ParsingException
areNextTokensCreateTableOptions
in class StandardDdlParser
ParsingException
StandardDdlParser.areNextTokensCreateTableOptions(org.modeshape.sequencer.ddl.DdlTokenStream)
protected void parseNextCreateTableOption(DdlTokenStream tokens, AstNode tableNode) throws ParsingException
public String getId()
getId
in interface DdlParser
getId
in class StandardDdlParser
StandardDdlParser.getId()
public String[] getIdentifyingKeywords()
getIdentifyingKeywords
in class StandardDdlParser
StandardDdlParser.getIdentifyingKeywords()
protected void initializeTokenStream(DdlTokenStream tokens)
StandardDdlParser.score(String, String, DdlParserScorer)
and StandardDdlParser.parse(String, AstNode, Object)
to initialize
the token stream
, giving subclasses a chance to register
key words
and statement start phrases
.initializeTokenStream
in class StandardDdlParser
tokens
- the stream of tokensStandardDdlParser.initializeTokenStream(org.modeshape.sequencer.ddl.DdlTokenStream)
protected void rewrite(DdlTokenStream tokens, AstNode rootNode)
rewrite
in class StandardDdlParser
protected String consumeIdentifier(DdlTokenStream tokens) throws ParsingException
consumeIdentifier
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullParsingException
StandardDdlParser.consumeIdentifier(org.modeshape.sequencer.ddl.DdlTokenStream)
public AstNode handleUnknownToken(DdlTokenStream tokens, String tokenValue) throws ParsingException
handleUnknownToken
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nulltokenValue
- the string value of the unknown token; never nullParsingException
StandardDdlParser.handleUnknownToken(org.modeshape.sequencer.ddl.DdlTokenStream,
java.lang.String)
protected AstNode parseCreateSchemaStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
AstNode
based on SQL 92 specifications. Initial implementation here does not parse the
statement in detail. The CREATE SCHEMA statement can include CREATE TABLE, CREATE VIEW, and GRANT statements.parseCreateSchemaStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullParsingException
StandardDdlParser.parseCreateSchemaStatement(org.modeshape.sequencer.ddl.DdlTokenStream,
org.modeshape.sequencer.ddl.node.AstNode)
protected AstNode parseCustomStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
parseCustomStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullAstNode
ParsingException
StandardDdlParser.parseCustomStatement(org.modeshape.sequencer.ddl.DdlTokenStream,
org.modeshape.sequencer.ddl.node.AstNode)
protected AstNode parseCreateStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
StandardDdlParser
parseCreateStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullAstNode
ParsingException
protected AstNode parseCreateFunctionStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
tokens
- the tokenized DdlTokenStream
of the DDL input content; may not be nullparentNode
- the parent AstNode
node; may not be nullParsingException
protected AstNode parseCreateProcedureStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
tokens
- the tokenized DdlTokenStream
of the DDL input content; may not be nullparentNode
- the parent AstNode
node; may not be nullParsingException
protected AstNode parseMaterializedViewStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
tokens
- the tokenized DdlTokenStream
of the DDL input content; may not be nullparentNode
- the parent AstNode
node; may not be nullParsingException
protected AstNode parseGrantStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
StandardDdlParser
AstNode
based on SQL 92 specifications.parseGrantStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullAstNode
ParsingException
protected AstNode parseRevokeStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
protected AstNode parseAlterTableStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
StandardDdlParser
AstNode
based on SQL 92 specifications.parseAlterTableStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullAstNode
ParsingException
protected AstNode parseAlterStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
StandardDdlParser
parseAlterStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullAstNode
ParsingException
protected AstNode parseCreateViewStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
AstNode
basedregisterStatementStartPhrase on SQL 92 specifications. Initial implementation
here does not parse the statement in detail.parseCreateViewStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullParsingException
StandardDdlParser.parseCreateViewStatement(org.modeshape.sequencer.ddl.DdlTokenStream,
org.modeshape.sequencer.ddl.node.AstNode)
protected AstNode parseSetStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
StandardDdlParser
AstNode
based on SQL 92 specifications.parseSetStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullAstNode
ParsingException
protected AstNode parseDropStatement(DdlTokenStream tokens, AstNode parentNode) throws ParsingException
StandardDdlParser
AstNode
based on SQL 92 specifications.parseDropStatement
in class StandardDdlParser
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nullparentNode
- the parent AstNode
node; may not be nullAstNode
ParsingException
protected boolean isColumnDefinitionStart(DdlTokenStream tokens, String columnMixinType) throws ParsingException
tokens
- a DdlTokenStream
instance; may not be nullcolumnMixinType
- a String
; may not be nulltrue
if the given stream si at the start of the column defintion, false
otherwise.ParsingException
protected void parseColumns(DdlTokenStream tokens, AstNode tableNode, String columnMixinType) throws ParsingException
tokens
- the tokenized DdlTokenStream
of the DDL input content; may not be nulltableNode
- columnMixinType
- ParsingException
protected void parseColumns(DdlTokenStream tokens, AstNode tableNode, boolean isAlterTable) throws ParsingException
StandardDdlLexicon.TYPE_ADD_COLUMN_DEFINITION
tokens
- the tokenized DdlTokenStream
of the DDL input content; may not be nulltableNode
- isAlterTable
- ParsingException
protected void parseColumnDefinition(DdlTokenStream tokens, AstNode tableNode, String columnMixinType) throws ParsingException
tokens
- the DdlTokenStream
representing the tokenized DDL content; may not be nulltableNode
- columnMixinType
- ParsingException
protected AstNode parseSlashedStatement(DdlTokenStream tokens, String[] stmt_start_phrase, AstNode parentNode, String mixinType)
tokens
- the tokenized DdlTokenStream
of the DDL input content; may not be nullstmt_start_phrase
- the string array statement start phraseparentNode
- the parent AstNode
node; may not be nullmixinType
- the mixin type of the newly created statement nodeprotected String[] getValidSchemaChildTypes()
getValidSchemaChildTypes
in class StandardDdlParser
StandardDdlParser.getValidSchemaChildTypes()
protected List<String> getCustomDataTypeStartWords()
getCustomDataTypeStartWords
in class StandardDdlParser
StandardDdlParser.getDataTypeStartWords()
Copyright © 2008–2016 JBoss, a division of Red Hat. All rights reserved.