diff --git a/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java b/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java index c70f7fc4f7..ecbf86b657 100644 --- a/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java +++ b/src/main/java/com/alibaba/druid/filter/stat/StatFilter.java @@ -470,7 +470,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean { String sql = resultSet.getSql(); if (sql != null) { - JdbcSqlStat sqlStat = getSqlCounter(sql); + JdbcSqlStat sqlStat = getSqlStat(sql); if (sqlStat != null) { sqlStat.addFetchRowCount(fetchCount); } @@ -657,7 +657,12 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean { return (JdbcSqlStat) statement.getAttributes().get(ATTR_SQL); } + @Deprecated public JdbcSqlStat getSqlCounter(String sql) { + return getSqlStat(sql); + } + + public JdbcSqlStat getSqlStat(String sql) { return dataSourceStat.getSqlStatMap().get(sql); } diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java index cd8c2bafdf..1decc67cb3 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLCreateTableStatement.java @@ -26,7 +26,7 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor; public class SQLCreateTableStatement extends SQLStatementImpl { protected Type type; - protected SQLName name; + protected SQLExprTableSource tableSource; protected List tableElementList = new ArrayList(); @@ -35,11 +35,23 @@ public class SQLCreateTableStatement extends SQLStatementImpl { } public SQLName getName() { - return name; + if (tableSource == null) { + return null; + } + + return (SQLName) tableSource.getExpr(); } public void setName(SQLName name) { - this.name = name; + this.setTableSource(new SQLExprTableSource(name)); + } + + public SQLExprTableSource getTableSource() { + return tableSource; + } + + public void setTableSource(SQLExprTableSource tableSource) { + this.tableSource = tableSource; } public Type getType() { @@ -67,7 +79,7 @@ public class SQLCreateTableStatement extends SQLStatementImpl { buf.append("LOCAL TEMPORARY "); } - this.name.output(buf); + this.tableSource.output(buf); buf.append(" "); buf.append("("); @@ -83,7 +95,7 @@ public class SQLCreateTableStatement extends SQLStatementImpl { @Override protected void accept0(SQLASTVisitor visitor) { if (visitor.visit(this)) { - this.acceptChild(visitor, name); + this.acceptChild(visitor, tableSource); this.acceptChild(visitor, tableElementList); } visitor.endVisit(this); diff --git a/src/main/java/com/alibaba/druid/sql/dialect/hive/ast/stmt/HiveCreateTableStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/hive/ast/stmt/HiveCreateTableStatement.java index aaa217164a..ec2340d83e 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/hive/ast/stmt/HiveCreateTableStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/hive/ast/stmt/HiveCreateTableStatement.java @@ -29,7 +29,7 @@ public class HiveCreateTableStatement extends SQLCreateTableStatement implements @Override public void accept0(HiveASTVisitor visitor) { if (visitor.visit(this)) { - this.acceptChild(visitor, name); + this.acceptChild(visitor, tableSource); this.acceptChild(visitor, tableElementList); this.acceptChild(visitor, partitionedBy); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java index 487f1ebc68..ab021430c5 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/statement/MySqlCreateTableStatement.java @@ -69,7 +69,7 @@ public class MySqlCreateTableStatement extends SQLCreateTableStatement { buf.append("IF NOT EXISTS "); } - this.name.output(buf); + this.tableSource.output(buf); buf.append(" "); buf.append("("); for (int i = 0, size = tableElementList.size(); i < size; ++i) { diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java index c95f5c86cb..73cfa9a3ee 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/stmt/OracleCreateTableStatement.java @@ -184,7 +184,7 @@ public class OracleCreateTableStatement extends SQLCreateTableStatement implemen public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { - this.acceptChild(visitor, name); + this.acceptChild(visitor, tableSource); this.acceptChild(visitor, tableElementList); this.acceptChild(visitor, tablespace); this.acceptChild(visitor, select);