sql parser refactor

This commit is contained in:
温少
2012-05-16 15:17:22 +08:00
13 changed files with 86 additions and 72 deletions
@@ -68,6 +68,7 @@ import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause;
import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource;
import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource.JoinType;
import com.alibaba.druid.sql.ast.statement.SQLAlterTableAddColumn;
import com.alibaba.druid.sql.ast.statement.SQLSelect;
import com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause;
import com.alibaba.druid.sql.ast.statement.SQLSelectItem;
@@ -1005,4 +1006,16 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
return false;
}
@Override
public boolean visit(SQLAlterTableAddColumn x) {
print("ADD (");
printAndAccept(x.getColumns(), ", ");
print(")");
return false;
}
@Override
public void endVisit(SQLAlterTableAddColumn x) {
}
}
@@ -51,6 +51,7 @@ import com.alibaba.druid.sql.ast.expr.SQLSomeExpr;
import com.alibaba.druid.sql.ast.expr.SQLUnaryExpr;
import com.alibaba.druid.sql.ast.expr.SQLVariantRefExpr;
import com.alibaba.druid.sql.ast.statement.NotNullConstraint;
import com.alibaba.druid.sql.ast.statement.SQLAlterTableAddColumn;
import com.alibaba.druid.sql.ast.statement.SQLAssignItem;
import com.alibaba.druid.sql.ast.statement.SQLCallStatement;
import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
@@ -336,4 +337,7 @@ public interface SQLASTVisitor {
boolean visit(SQLUseStatement x);
boolean visit(SQLAlterTableAddColumn x);
void endVisit(SQLAlterTableAddColumn x);
}
@@ -62,6 +62,7 @@ import com.alibaba.druid.sql.ast.statement.SQLDropTableStatement;
import com.alibaba.druid.sql.ast.statement.SQLExprTableSource;
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause;
import com.alibaba.druid.sql.ast.statement.SQLAlterTableAddColumn;
import com.alibaba.druid.sql.ast.statement.SQLJoinTableSource;
import com.alibaba.druid.sql.ast.statement.SQLSelect;
import com.alibaba.druid.sql.ast.statement.SQLSelectGroupByClause;
@@ -585,4 +586,13 @@ public class SQLASTVisitorAdapter implements SQLASTVisitor {
return true;
}
@Override
public boolean visit(SQLAlterTableAddColumn x) {
return true;
}
@Override
public void endVisit(SQLAlterTableAddColumn x) {
}
}
@@ -21,6 +21,8 @@ import com.alibaba.druid.sql.ast.expr.SQLInSubQueryExpr;
import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr;
import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr;
import com.alibaba.druid.sql.ast.statement.SQLAlterTableAddColumn;
import com.alibaba.druid.sql.ast.statement.SQLAlterTableStatement;
import com.alibaba.druid.sql.ast.statement.SQLCallStatement;
import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
import com.alibaba.druid.sql.ast.statement.SQLCommentStatement;
@@ -899,4 +901,21 @@ public class SchemaStatVisitor extends SQLASTVisitorAdapter {
public boolean visit(SQLCurrentOfCursorExpr x) {
return false;
}
@Override
public boolean visit(SQLAlterTableAddColumn x) {
SQLAlterTableStatement stmt = (SQLAlterTableStatement) x.getParent();
String table = stmt.getName().toString();
for (SQLColumnDefinition column : x.getColumns()) {
String columnName = column.getName().toString();
addColumn(table, columnName);
}
return false;
}
@Override
public void endVisit(SQLAlterTableAddColumn x) {
}
}