From dd8f7d2e9be56b7c55c13c8f3251ceccb77c4638 Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 11 Jul 2017 23:32:16 +0800 Subject: [PATCH] add testcase for issue #1818 --- .../bvt/sql/schemaStat/SchemaStatTest14.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest14.java diff --git a/src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest14.java b/src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest14.java new file mode 100644 index 0000000000..70e5ce2d95 --- /dev/null +++ b/src/test/java/com/alibaba/druid/bvt/sql/schemaStat/SchemaStatTest14.java @@ -0,0 +1,46 @@ +package com.alibaba.druid.bvt.sql.schemaStat; + +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.parser.SQLParserUtils; +import com.alibaba.druid.sql.parser.SQLStatementParser; +import com.alibaba.druid.sql.visitor.SchemaStatVisitor; +import com.alibaba.druid.stat.TableStat; +import com.alibaba.druid.util.JdbcConstants; +import junit.framework.TestCase; +import org.junit.Assert; + +import java.util.Set; + +public class SchemaStatTest14 extends TestCase { + + public void test_schemaStat() throws Exception { + String sql = "delete r from t_res r where id=1 "; + + String dbType = JdbcConstants.MYSQL; + SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType); + SQLStatement stmt = parser.parseStatementList().get(0); + + SchemaStatVisitor statVisitor = SQLUtils.createSchemaStatVisitor(dbType); + stmt.accept(statVisitor); + + Set relationships = statVisitor.getRelationships(); + for (TableStat.Relationship relationship : relationships) { + System.out.println(relationship); // table1.id = table2.id + } + + System.out.println("Tables : " + statVisitor.getTables()); + System.out.println(statVisitor.getColumns()); +// System.out.println(statVisitor.getGroupByColumns()); // group by + System.out.println("relationships : " + statVisitor.getRelationships()); // group by + System.out.println(statVisitor.getConditions()); + assertEquals(0, relationships.size()); + + assertEquals(1, statVisitor.getColumns().size()); + assertEquals(1, statVisitor.getConditions().size()); + assertEquals(0, statVisitor.getFunctions().size()); + + assertTrue(statVisitor.containsTable("t_res")); + assertTrue(statVisitor.containsColumn("t_res", "id")); + } +}