mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
refactor
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
package com.alibaba.druid.sql.ast.statement;
|
||||
|
||||
import com.alibaba.druid.sql.ast.SQLObject;
|
||||
|
||||
public interface SQLAlterTableItem extends SQLObject {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.alibaba.druid.sql.ast.statement;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.ast.SQLStatementImpl;
|
||||
|
||||
public class SQLAlterTableStatement extends SQLStatementImpl {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SQLExprTableSource tableSource;
|
||||
private List<SQLAlterTableItem> items = new ArrayList<SQLAlterTableItem>();
|
||||
|
||||
public List<SQLAlterTableItem> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<SQLAlterTableItem> items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public SQLExprTableSource getTableSource() {
|
||||
return tableSource;
|
||||
}
|
||||
|
||||
public void setTableSource(SQLExprTableSource tableSource) {
|
||||
this.tableSource = tableSource;
|
||||
}
|
||||
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package com.alibaba.druid.sql.dialect.mysql.ast.statement;
|
||||
|
||||
|
||||
public class MySqlAlterTableStatement extends MySqlStatementImpl {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
}
|
||||
@@ -1785,4 +1785,9 @@ public class MySqlStatementParser extends SQLStatementParser {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public SQLSetStatement parseAlter() {
|
||||
accept(Token.ALTER);
|
||||
throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,8 +1,9 @@
|
||||
package com.alibaba.druid.sql.dialect.oracle.ast.stmt;
|
||||
|
||||
import com.alibaba.druid.sql.ast.statement.SQLAlterTableItem;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
|
||||
|
||||
public abstract class OracleAlterTableItem extends OracleSQLObjectImpl {
|
||||
public abstract class OracleAlterTableItem extends OracleSQLObjectImpl implements SQLAlterTableItem {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
+14
-30
@@ -1,26 +1,27 @@
|
||||
package com.alibaba.druid.sql.dialect.oracle.ast.stmt;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.ast.SQLName;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLAlterTableStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLExprTableSource;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
|
||||
|
||||
public class OracleAlterTableStatement extends OracleStatementImpl {
|
||||
public class OracleAlterTableStatement extends SQLAlterTableStatement implements OracleStatement {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private SQLExprTableSource tableSource;
|
||||
private List<OracleAlterTableItem> items = new ArrayList<OracleAlterTableItem>();
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private boolean updateGlobalIndexes = false;
|
||||
private boolean invalidateGlobalIndexes = false;
|
||||
private boolean updateGlobalIndexes = false;
|
||||
private boolean invalidateGlobalIndexes = false;
|
||||
|
||||
protected void accept0(SQLASTVisitor visitor) {
|
||||
accept0((OracleASTVisitor) visitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept0(OracleASTVisitor visitor) {
|
||||
if (visitor.visit(this)) {
|
||||
acceptChild(visitor, tableSource);
|
||||
acceptChild(visitor, items);
|
||||
acceptChild(visitor, getTableSource());
|
||||
acceptChild(visitor, getItems());
|
||||
}
|
||||
visitor.endVisit(this);
|
||||
}
|
||||
@@ -42,30 +43,13 @@ public class OracleAlterTableStatement extends OracleStatementImpl {
|
||||
}
|
||||
|
||||
public SQLName getName() {
|
||||
if (tableSource == null) {
|
||||
if (getTableSource() == null) {
|
||||
return null;
|
||||
}
|
||||
return (SQLName) tableSource.getExpr();
|
||||
return (SQLName) getTableSource().getExpr();
|
||||
}
|
||||
|
||||
public void setName(SQLName name) {
|
||||
this.setTableSource(new SQLExprTableSource(name));
|
||||
}
|
||||
|
||||
public SQLExprTableSource getTableSource() {
|
||||
return tableSource;
|
||||
}
|
||||
|
||||
public void setTableSource(SQLExprTableSource tableSource) {
|
||||
this.tableSource = tableSource;
|
||||
}
|
||||
|
||||
public List<OracleAlterTableItem> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<OracleAlterTableItem> items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.alibaba.druid.sql.ast.expr.SQLLiteralExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLObjectCreateExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLAlterTableItem;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
|
||||
@@ -90,7 +91,6 @@ import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterSynonymStatement
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableAddColumn;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableAddConstaint;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableDropPartition;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableItem;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableModify;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableMoveTablespace;
|
||||
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableRenameTo;
|
||||
@@ -2045,7 +2045,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
|
||||
print("ALTER TABLE ");
|
||||
x.getName().accept(this);
|
||||
incrementIndent();
|
||||
for (OracleAlterTableItem item : x.getItems()) {
|
||||
for (SQLAlterTableItem item : x.getItems()) {
|
||||
println();
|
||||
item.accept(this);
|
||||
}
|
||||
|
||||
@@ -109,7 +109,8 @@ public class SQLStatementParser extends SQLParser {
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.ALTER) {
|
||||
throw new ParserException("TODO");
|
||||
statementList.add(parseAlter());
|
||||
continue;
|
||||
}
|
||||
|
||||
if (lexer.token() == Token.DROP) {
|
||||
@@ -162,6 +163,11 @@ public class SQLStatementParser extends SQLParser {
|
||||
stmt.setDatabase(this.exprParser.name());
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLSetStatement parseAlter() {
|
||||
accept(Token.ALTER);
|
||||
throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
|
||||
}
|
||||
|
||||
protected SQLDropTableStatement parseDropTable(boolean acceptDrop) {
|
||||
if (acceptDrop) {
|
||||
@@ -185,7 +191,9 @@ public class SQLStatementParser extends SQLParser {
|
||||
|
||||
public SQLStatement parseTruncate() {
|
||||
accept(Token.TRUNCATE);
|
||||
accept(Token.TABLE);
|
||||
if (lexer.token() == Token.TABLE) {
|
||||
lexer.nextToken();
|
||||
}
|
||||
SQLTruncateStatement stmt = new SQLTruncateStatement();
|
||||
|
||||
for (;;) {
|
||||
|
||||
Reference in New Issue
Block a user