improved SchemaStatVisitor, TableStatColumn support dataType

This commit is contained in:
高铁
2016-05-21 02:28:47 +08:00
parent fb7bdd9b3d
commit 56a65c838f
3 changed files with 26 additions and 1 deletions
@@ -1291,7 +1291,8 @@ public class SchemaStatVisitor extends SQLASTVisitorAdapter {
}
String columnName = x.getName().toString();
addColumn(tableName, columnName);
Column column = addColumn(tableName, columnName);
column.setDataType(x.getDataType().getName());
return false;
}
@@ -409,6 +409,11 @@ public class TableStat {
private transient String fullName;
/**
* @since 1.0.20
*/
private String dataType;
public Column(){
}
@@ -487,6 +492,20 @@ public class TableStat {
this.name = name;
this.fullName = null;
}
/**
* @since 1.0.20
*/
public String getDataType() {
return dataType;
}
/**
* @since 1.0.20
*/
public void setDataType(String dataType) {
this.dataType = dataType;
}
public Map<String, Object> getAttributes() {
return attributes;
@@ -23,6 +23,7 @@ import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor;
import com.alibaba.druid.stat.TableStat.Column;
public class MySqlCreateTableTest70 extends MysqlTest {
@@ -53,6 +54,10 @@ public class MySqlCreateTableTest70 extends MysqlTest {
MySqlSchemaStatVisitor visitor = new MySqlSchemaStatVisitor();
stmt.accept(visitor);
Column column = visitor.getColumn("app_customer_license", "version");
Assert.assertNotNull(column);
Assert.assertEquals("bigint", column.getDataType());
{
String output = SQLUtils.toMySqlString(stmt);