提交 a87e697a 编写于 作者: T terrymanu

refactor DropParser

上级 4721b13f
......@@ -34,12 +34,12 @@ public final class MySQLDropParser extends AbstractDropParser {
}
@Override
protected Keyword[] getSkipWordsBetweenDropAndTable() {
protected Keyword[] getSkipKeywordsBetweenDropAndTable() {
return new Keyword[] {DefaultKeyword.TEMPORARY};
}
@Override
protected Keyword[] getSkipWordsBetweenKeywordAndTableName() {
protected Keyword[] getSkipKeywordsBetweenDropTableAndTableName() {
return new Keyword[] {DefaultKeyword.IF, DefaultKeyword.EXISTS};
}
}
......@@ -33,7 +33,7 @@ public final class OracleDropParser extends AbstractDropParser {
}
@Override
protected Keyword[] getSkipWordsBetweenKeywordAndTableName() {
protected Keyword[] getSkipKeywordsBetweenDropTableAndTableName() {
return new Keyword[] {};
}
}
......@@ -34,7 +34,7 @@ public final class PostgreSQLDropParser extends AbstractDropParser {
}
@Override
protected Keyword[] getSkipWordsBetweenKeywordAndTableName() {
protected Keyword[] getSkipKeywordsBetweenDropTableAndTableName() {
return new Keyword[] {DefaultKeyword.IF, DefaultKeyword.EXISTS};
}
}
......@@ -34,7 +34,7 @@ public final class SQLServerDropParser extends AbstractDropParser {
}
@Override
protected Keyword[] getSkipWordsBetweenKeywordAndTableName() {
protected Keyword[] getSkipKeywordsBetweenDropTableAndTableName() {
return new Keyword[] {DefaultKeyword.IF, DefaultKeyword.EXISTS};
}
}
......@@ -48,18 +48,18 @@ public abstract class AbstractDropParser implements SQLStatementParser {
@Override
public DDLStatement parse() {
sqlParser.getLexer().nextToken();
getSqlParser().skipAll(getSkipWordsBetweenDropAndTable());
getSqlParser().skipAll(getSkipKeywordsBetweenDropAndTable());
if (!sqlParser.skipIfEqual(DefaultKeyword.TABLE)) {
throw new SQLParsingUnsupportedException(sqlParser.getLexer().getCurrentToken().getType());
}
getSqlParser().skipAll(getSkipWordsBetweenKeywordAndTableName());
getSqlParser().skipAll(getSkipKeywordsBetweenDropTableAndTableName());
sqlParser.parseSingleTable(dropStatement);
return dropStatement;
}
protected Keyword[] getSkipWordsBetweenDropAndTable() {
protected Keyword[] getSkipKeywordsBetweenDropAndTable() {
return new Keyword[0];
}
protected abstract Keyword[] getSkipWordsBetweenKeywordAndTableName();
protected abstract Keyword[] getSkipKeywordsBetweenDropTableAndTableName();
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册